No sha256sum in MacOS


Risposte:


38

Il pacchetto CoreUtils è anche pubblicato come formule Brew . Quindi se hai installato Brew puoi anche solo eseguire:

brew install coreutils

Quindi aggiungi PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"a ~/.bashrc, esegui source ~/.bashrce il gioco è fatto.


Complimenti per la tua prima risposta in U&L. Preferisco MacPorts a Brew, ma sì, è una valida alternativa.
Rui F Ribeiro,

1
Questa dovrebbe essere la risposta accettata!
Milkncookiez,

1
@Milkncokiez Se qualcuno riesce a convincermi perché una domanda sui macports dovrebbe avere come risposta corretta una soluzione per la birra, sono tutto orecchi.
Rui F Ribeiro,

16

Dopo aver indagato un po ', ho trovato un ticket in un software non correlato nel comando sha256sum di GitHub mancante in MacOSX , con diverse soluzioni:

  • installazione di coreutils

    sudo port install coreutils
    

    Si installa sha256sumsu/opt/local/libexec/gnubin/sha256sum

  • Come altra possibile soluzione, usando openssl:

function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
  • Ancora un altro, usando il shasumcomando nativo di MacOS:
function sha256sum() { shasum -a 256 "$@" ; } && export -f sha256sum

1

Risposta supplementare a Mig82, la cui risposta gestisce il prefisso g per tutti gli eseguibili in coreutils. Offro una soluzione strettamente mirata.

Dopo l'installazione di coreutils con

brew install coreutils

I risultati in ls /usr/local/bin/gsha* elencheranno gli eseguibili con prefisso g:

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

La soluzione è quella di creare un collegamento simbolico a quelli desiderati utilizzando un nome senza prefisso (o correre il rischio di interrompere alcuni programmi che si basano su eseguibili BSD e utilizzare l'opzione Homebrew con prefisso no g)

Esempio

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
}
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.