Как заставить sha1sum работать на Mac OS X?

2061
WilliamKF

У меня есть приложение, которое я портирую, и как часть набора тестов я запускаю sha1sum. Я хотел бы иметь тестовый код, который работает на всех моих платформах и не зависит от платформы. Mac OS X, это первая платформа без sha1sumприложения. Я нашел shasumприложение, хотя. Поэтому я создал символическую ссылку:

cd /usr/local/bin; ln -s /usr/bin/shasum sha1sum 

Тем не менее, тест завершается с ошибкой Perl:

bash-3.2$ sha1sum -c files.sha1sum perl version 5.16.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.  bash-3.2$ shasum -c files.sha1sum smallData.txt: OK 

Содержимое / usr / bin / shasum:

#!/usr/bin/perl  =for comment  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.  =cut  use strict; use Config ();  my @alt = grep glob("$0*"); print STDERR <<"EOF-A"; perl version $Config::Config can't run $0. Try the alternative(s):  EOF-A if(scalar(@alt) > 0) { for(@alt) { my($ver) = /(\d+\.\d+(?:\.\d+)?)/; print STDERR "$_ (uses perl $ver)\n"; } } else { print STDERR "(Error: no alternatives found)\n"; } die <<'EOF-B';  Run "man perl" for more information about multiple version support in Mac OS X. EOF-B 

Как я могу получить sha1sumисполняемый файл в моем пути поиска, который будет работать как это shasumделает?

1
Это может быть полезно: https://raam.org/2008/howto-install-md5sum-sha1sum-on-mac-os-x/ David 8 лет назад 0

1 ответ на вопрос

1
WilliamKF

The shasum is just a wrapper for either shasum5.12 or shasum5.16 for perl v5.12 or perl v5.16.

Therefore, place the link in /usr/bin (instead of /usr/local/bin) and create links for the other two version specific ones too like this:

cd /usr/bin ln -s shasum sha1sum ln -s shasum5.12 sha1sum5.16 ln -s shasum5.16 sha1sum5.16 

Now it works:

bash-3.2$ sha1sum -c files.sha1sum smallData.txt: OK 
У меня не работает: Perl версии 5.18.2 не может запустить / usr / bin / sha1sum. Попробуйте альтернативу (ы): sleepycal 9 лет назад 0
@sleepycal, ваш комментарий обрезали? Какие альтернативы вы имели в виду? David 8 лет назад 0