Lösung ist der Link zur Version von shasum
mit der perl
angefügten Version:
cd /usr/local/bin ln -s /usr/bin/shasum5.18 sha1sum
Oder zu einem Alias dazu:
alias sha1sum=shasum5.18
Ich habe einen Test, der auf mehreren Plattformen laufen muss. Auf allen anderen Plattformen, die der Test verwendet sha1sum
, ist auf meinem Mac OSX El Capitan kein solches Programm installiert, es shasum
funktioniert jedoch gut als Ersatz.
Ich habe versucht, einen Link von /usr/bin/sha1sum
nach zu erstellen /usr/bin/shasum
, aber das schlägt selbst als root fehl:
bash-3.2$ cd /usr/bin bash-3.2$ sudo ln shasum sha1sum ln: sha1sum: Operation not permitted
Ich stecke es dann in /usr/local/bin
:
bash-3.2$ cd /usr/local/bin bash-3.2$ ln -s /usr/bin/shasum sha1sum
Und es scheint zu funktionieren:
bash-3.2$ sha1sum -c files.sha1sum smallData.txt: OK
Aber mein Testgeschirr, das jetzt sha1sum findet, schlägt immer noch fehl:
perl version 5.18.2 can't run /usr/local/bin/sha1sum. Try the alternative(s): (Error: no alternatives found) Run "man perl" for more information about multiple version support in Mac OS X.
Ich habe es auch probiert, alias sha1sum=shasum
aber das Geschirr schlägt fehl mit:
sh: line 1: sha1sum: command not found
Ich habe festgestellt, dass mein Geschirr fehlschlägt, weil es sh
statt verwendet wird bash
.
sh-3.2$ sha1sum -c files.sha1sum perl version 5.18.2 can't run /usr/local/bin/sha1sum. Try the alternative(s): (Error: no alternatives found) Run "man perl" for more information about multiple version support in Mac OS X. sh-3.2$ shasum -c files.sha1sum smallData.txt: OK
Also warum ist es, dass sha1sum
unter nicht ausgeführt werden kann, sh
sondern shasum
arbeitet und sha1sum
arbeitet unter bash
und wie kann ich sha1sum
unter laufen sh
?
Ich bin auch verwirrt, warum dies fehlschlägt:
bash-3.2$ echo "sha1sum -c files.sha1sum" | bash perl version 5.18.2 can't run /usr/local/bin/sha1sum. Try the alternative(s): (Error: no alternatives found) Run "man perl" for more information about multiple version support in Mac OS X.
Ich merke jetzt diesen Kommentar in der /usr/bin/shasum
Datei:
The contents of this script should normally never run! The perl wrapper should pick the correct script in /usr/bin by appending the appropriate version. You can try appending the appropriate perl version number. See perlmacosx.pod for more information about multiple version support in Mac OS X.
Lösung ist der Link zur Version von shasum
mit der perl
angefügten Version:
cd /usr/local/bin ln -s /usr/bin/shasum5.18 sha1sum
Oder zu einem Alias dazu:
alias sha1sum=shasum5.18
echo "" | $(which shasum 2>/dev/null || which sha1sum 2>/dev/null)
Ausgabe:
adc83b19e793491b1c6ea0fd8b46cd9f32e592fc -
unter MacOS / Darwin oder Linux