it-swarm.com.de

Keine sha256sum in MacOS

Ich habe versucht, sha256sum in High Sierra; Ich habe versucht, es mit MacPorts zu installieren, als:

Sudo port install sha256sum

Es hat nicht funktioniert.

Was ist zu tun?

17
Rui F Ribeiro

Nachdem ich ein wenig nachgeforscht hatte, fand ich ein Ticket in einer nicht verwandten Software in GitHub Befehl sha256sum fehlt in MacOSX , mit mehreren Lösungen:

  • installation von Coreutils

    Sudo port install coreutils
    

    Es installiert sha256sum beim /opt/local/libexec/gnubin/sha256sum

  • Als weitere mögliche Lösung verwenden Sie openssl:

function sha256sum() { openssl sha256 "[email protected]" | awk '{print $2}'; }
  • Wie noch einer, der den in MacOS nativen Befehl shasum verwendet:
function sha256sum() { shasum -a 256 "[email protected]" ; } && export -f sha256sum
15
Rui F Ribeiro

Das CoreUtils-Paket wird ebenfalls veröffentlicht als Brauformeln . Wenn Sie Brew installiert haben, können Sie auch einfach Folgendes ausführen:

brew install coreutils

Dann füge hinzu PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH" bis ~/.bashrc, Lauf source ~/.bashrc und du bist fertig.

38
Mig82

Ergänzende Antwort auf Mig82, dessen Antwort das g-Präfix für alle ausführbaren Dateien in coreutils behandelt. Ich biete eine eng gefasste Lösung an.

Nach der Installation von coreutils mit

brew install coreutils

Ergebnisse in ls /usr/local/bin/gsha* listet die ausführbaren Dateien mit dem Präfix g auf:

  • /usr/local/bin/gsha1sum
  • /usr/local/bin/gsha224sum
  • /usr/local/bin/gsha256sum
  • /usr/local/bin/gsha384sum
  • /usr/local/bin/gsha512sum

Die Lösung besteht darin, einen symbolischen Link zu den gewünschten zu erstellen, indem Sie einen Namen ohne Präfix verwenden (oder das Risiko eingehen, einige Programme zu beschädigen, die auf ausführbaren BSD-Dateien basieren und die Homebrew-Option ohne Präfix verwenden).

Beispiel

shaarray=(\
/usr/local/bin/gsha1sum
/usr/local/bin/gsha224sum
/usr/local/bin/gsha256sum
/usr/local/bin/gsha384sum
/usr/local/bin/gsha512sum
)
function installsha() {
  for i in "${shaarray[@]}"
  do
    printf "$i\n" | Perl -pe 'printf $_; s/gsha/sha/' | xargs -n 2 ln -s
  done
}
1
Jonathan Komar