จะทำให้ sha1sum ทำงานบน Mac OS X ได้อย่างไร


1

ฉันมีโปรแกรมที่ฉัน porting 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 {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

ฉันจะรับsha1sumไฟล์ที่เรียกใช้งานได้ในพา ธ การค้นหาที่ใช้งานได้shasumหรือไม่?


สิ่งนี้อาจเป็นการใช้งาน: raam.org/2008/howto-install-md5sum-sha1sum-on-mac-os-x
David

คำตอบ:


1

shasumเป็นเพียงเสื้อคลุมสำหรับทั้งshasum5.12หรือshasum5.16สำหรับperlv5.12 หรือperlv5.16

ดังนั้นวางลิงค์ใน/usr/bin(แทน/usr/local/bin) และสร้างลิงค์สำหรับอีกสองรุ่นที่เจาะจงเช่นกัน:

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

ตอนนี้มันใช้งานได้:

bash-3.2$ sha1sum -c files.sha1sum
smallData.txt: OK

ใช้งานไม่ได้สำหรับฉัน: perl รุ่น 5.18.2 ไม่สามารถเรียกใช้ / usr / bin / sha1sum ได้ ลองใช้ทางเลือกอื่น:
sleepycal

@sleepycal ความคิดเห็นของคุณถูกตัดออกไปหรือไม่? คุณหมายถึงทางเลือกใด
เดวิด
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.