Keine sha256sum in MacOS

15

Ich habe versucht, sha256sumin High Sierra zu verwenden; Ich habe versucht, es zu installieren mit MacPorts:

sudo port install sha256sum

Es hat nicht funktioniert.

Was ist zu tun?

Rui F Ribeiro
quelle
macOS hat wie alle BSDs ein natives md5Dienstprogramm.
Kusalananda

Antworten:

36

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

brew install coreutils

Dann fügen Sie PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"zu ~/.bashrclaufen source ~/.bashrcund du bist fertig.

Mig82
quelle
Herzlichen Glückwunsch zu Ihrer ersten Antwort in U & L. Ich bevorzuge MacPorts gegenüber Brew, aber ja, es ist eine praktikable Alternative.
Rui F Ribeiro
1
Dies sollte die akzeptierte Antwort sein!
Milkncookiez
@Milkncokiez Wenn es jemand schafft, mich zu überzeugen, warum eine Macport-Frage als richtige Antwort eine Braulösung haben sollte, bin ich ganz Ohr.
Rui F Ribeiro
15

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

  • Installation von Coreutils

    sudo port install coreutils
    

    Es wird installiert sha256sumbei/opt/local/libexec/gnubin/sha256sum

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

function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
  • Wie noch ein shasumBefehl, der den für MacOS nativen Befehl verwendet:
function sha256sum() { shasum -a 256 "$@" ; } && export -f sha256sum
Rui F Ribeiro
quelle
1

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

In den Ergebnissen ls /usr/local/bin/gsha* werden die ausführbaren Dateien mit dem Präfix g aufgelistet:

  • /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
}
Jonathan Komar
quelle