У меня есть тест, который должен работать на нескольких платформах. На всех других платформах в тесте используется sha1sum
, но на моем Mac OSX El Capitan такая программа не установлена, но shasum
отлично работает в качестве замены.
Я пытался создать ссылку из /usr/bin/sha1sum
на /usr/bin/shasum
, но это не удалось , даже с правами root:
bash-3.2$ cd /usr/bin
bash-3.2$ sudo ln shasum sha1sum
ln: sha1sum: Operation not permitted
Затем я помещаю его в /usr/local/bin
:
bash-3.2$ cd /usr/local/bin
bash-3.2$ ln -s /usr/bin/shasum sha1sum
И это похоже на работу:
bash-3.2$ sha1sum -c files.sha1sum
smallData.txt: OK
Но мой тестовый жгут, теперь находящий 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.
Я также попытался использовать alias sha1sum=shasum
но проводка не работает с:
sh: line 1: sha1sum: command not found
Я обнаружил, что моя подвеска выходит из строя, потому что она использует sh
вместо 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
Так почему же sha1sum
не запускается под sh
но shasum
работает, а sha1sum
работает под bash
и как мне заставить sha1sum
работать под sh
?
Я также не понимаю, почему это не удается:
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.
Теперь я замечаю этот комментарий в файле /usr/bin/shasum
:
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.