web-dev-qa-db-fra.com

Pas de sha256sum sous MacOS

J'ai essayé d'utiliser sha256sum à High Sierra; J'ai essayé de l'installer avec MacPorts, comme:

Sudo port install sha256sum

Cela n'a pas fonctionné.

Que faire?

17
Rui F Ribeiro

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

  • installation de coreutils

    Sudo port install coreutils
    

    Il 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 commande shasum native de MacOS:
function sha256sum() { shasum -a 256 "$@" ; } && export -f sha256sum
15
Rui F Ribeiro

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

brew install coreutils

Puis ajouter PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH" à ~/.bashrc, courir source ~/.bashrc et tu as fini.

38
Mig82

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

Résulte en ls /usr/local/bin/gsha* listera 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 est de créer un lien symbolique vers ceux que vous voulez 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 Homebrew no g prefix)

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
}
1
Jonathan Komar