Como obter o sha1sum para funcionar no Mac OS X?

1

Eu tenho um aplicativo que estou portando e como parte do conjunto de testes, corro sha1sum . Eu gostaria de ter código de teste que funcione em todas as minhas plataformas e não varie em todas as plataformas. Mac OS X, é a primeira plataforma sem o aplicativo sha1sum . Eu encontrei um aplicativo shasum embora. Então criei um link simbólico:

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

No entanto, o teste agora falha com um erro de 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

O conteúdo de / 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 {m,^$0\d+\.\d+(?:\.\d+)?$,} glob("$0*");
print STDERR <<"EOF-A";
perl version $Config::Config{version} 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

Como posso obter um executável sha1sum no meu caminho de pesquisa que funcionará como shasum ?

    
por WilliamKF 27.03.2014 / 20:14

1 resposta

1

O shasum é apenas um wrapper para shasum5.12 ou shasum5.16 para perl v5.12 ou perl v5.16.

Portanto, coloque o link em /usr/bin (em vez de /usr/local/bin ) e crie links para os outros dois específicos da versão também assim:

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

Agora funciona:

bash-3.2$ sha1sum -c files.sha1sum
smallData.txt: OK
    
por 27.03.2014 / 20:44