Próbowałem użyć sha256sum
w High Sierra; Próbowałem go zainstalować MacPorts
, ponieważ:
sudo port install sha256sum
To nie działało.
Co robić?
Próbowałem użyć sha256sum
w High Sierra; Próbowałem go zainstalować MacPorts
, ponieważ:
sudo port install sha256sum
To nie działało.
Co robić?
Odpowiedzi:
Pakiet CoreUtils jest również publikowany jako formuła Brew . Więc jeśli masz zainstalowany Brew, możesz także uruchomić:
brew install coreutils
Następnie dodaj PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
do ~/.bashrc
, uruchom source ~/.bashrc
i gotowe.
Po krótkiej analizie znalazłem bilet w niepowiązanym oprogramowaniu w GitHub w MacOSX brakuje polecenia sha256sum z kilkoma rozwiązaniami:
instalowanie coreutils
sudo port install coreutils
Instaluje się sha256sum
w/opt/local/libexec/gnubin/sha256sum
Jako inne możliwe rozwiązanie przy użyciu openssl
:
function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
shasum
polecenia natywnego dla MacOS:function sha256sum() { shasum -a 256 "$@" ; } && export -f sha256sum
Uzupełniająca odpowiedź na Mig82, których odpowiedź obsługuje prefiks g dla wszystkich plików wykonywalnych w coreutils. Oferuję ciasne rozwiązanie.
Po zainstalowaniu coreutils
brew install coreutils
Wyniki w ls /usr/local/bin/gsha*
pokażą pliki wykonywalne z prefiksem g:
/usr/local/bin/gsha1sum
/usr/local/bin/gsha224sum
/usr/local/bin/gsha256sum
/usr/local/bin/gsha384sum
/usr/local/bin/gsha512sum
Rozwiązaniem jest utworzenie dowiązania symbolicznego do tych, które chcesz, używając nazwy bez prefiksu (lub zaryzykuj uszkodzenie niektórych programów, które opierają się na plikach wykonywalnych BSD i używają opcji Homebrew no prefiks g)
Przykład
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
}
md5
narzędzie.