Pas de sha256sum sous MacOS


Réponses:


38

Le package CoreUtils est également publié sous forme de formules Brew . Donc, si vous avez installé Brew, vous pouvez également exécuter:

brew install coreutils

Puis ajouter PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"à ~/.bashrc, exécuter source ~/.bashrcet vous avez terminé.


Félicitations pour votre première réponse en U&L. Je préfère MacPorts à Brew, mais oui, c'est une alternative viable.
Rui F Ribeiro

1
Cela devrait être la réponse acceptée!
Milkncookiez

1
@Milkncokiez Si quelqu'un parvient à me convaincre pourquoi une question macports devrait avoir comme réponse correcte une solution de brassage, je suis à l'écoute.
Rui F Ribeiro

16

Après avoir enquêté un peu, j'ai trouvé un ticket dans un logiciel sans rapport avec la commande GitHub sha256sum manquante dans MacOSX , avec plusieurs solutions:

  • installation de coreutils

    sudo port install coreutils
    

    Il s'installe sha256sumà/opt/local/libexec/gnubin/sha256sum

  • Comme autre solution possible, en utilisant openssl:

function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
  • Encore une autre, en utilisant la shasumcommande native de MacOS:
function sha256sum() { shasum -a 256 "$@" ; } && export -f sha256sum

1

Réponse supplémentaire à Mig82, dont la réponse gère le préfixe g pour tous les exécutables dans coreutils. J'offre une solution à portée limitée.

Après l'installation de coreutils avec

brew install coreutils

Les résultats dans ls /usr/local/bin/gsha* listeront les exécutables préfixés en g:

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

La solution consiste à créer un lien symbolique vers ceux que vous souhaitez en utilisant un nom non préfixé (ou prendre le risque de casser certains programmes qui s'appuient sur les exécutables BSD et utilisent l'option no g prefix Homebrew)

Exemple

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
}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.