Wie kann sha1sum unter Mac OS X zum Laufen gebracht werden?

2146
WilliamKF

Ich habe eine Anwendung, die ich portiere und als Teil der Testsuite ausführen sha1sum. Ich hätte gerne Testcode, der auf allen meinen Plattformen funktioniert und nicht von Plattform zu Plattform variiert. Mac OS X ist die erste Plattform ohne sha1sumAnwendung. Ich habe aber eine shasumBewerbung gefunden. Also habe ich einen symbolischen Link erstellt:

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

Der Test schlägt jedoch jetzt mit einem Perl-Fehler fehl:

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 

Der Inhalt von / usr / bin / shasum ist:

#!/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 

Wie kann ich eine sha1sumausführbare Datei in meinem Suchpfad abrufen, die wie shasumfunktioniert?

1
Dies könnte von Nutzen sein: https://raam.org/2008/howto-install-md5sum-sha1sum-on-mac-os-x/ David vor 8 Jahren 0

1 Antwort auf die Frage

1
WilliamKF

Das shasumist nur ein Wrapper für entweder shasum5.12oder shasum5.16für perlv5.12 oder perlv5.16.

Platzieren Sie daher den Link in /usr/bin(anstelle von /usr/local/bin) und erstellen Sie Links für die beiden anderen versionsspezifischen Links wie folgt:

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

Jetzt gehts:

bash-3.2$ sha1sum -c files.sha1sum smallData.txt: OK 
Funktioniert bei mir nicht: Perl Version 5.18.2 kann / usr / bin / sha1sum nicht ausführen. Versuchen Sie die Alternative (n): sleepycal vor 9 Jahren 0
@sleepycal, wurde dein Kommentar abgeschnitten? Welche Alternativen haben Sie angesprochen? David vor 8 Jahren 0