ฉันพยายามใช้sha256sum
ใน High Sierra; ฉันพยายามติดตั้งด้วยMacPorts
เนื่องจาก:
sudo port install sha256sum
มันไม่ได้ผล.
จะทำอย่างไร?
ฉันพยายามใช้sha256sum
ใน High Sierra; ฉันพยายามติดตั้งด้วยMacPorts
เนื่องจาก:
sudo port install sha256sum
มันไม่ได้ผล.
จะทำอย่างไร?
คำตอบ:
แพ็คเกจ CoreUtils ได้รับการเผยแพร่เป็นสูตรการชงด้วย ดังนั้นหากคุณติดตั้ง Brew คุณสามารถเรียกใช้:
brew install coreutils
จากนั้นเพิ่มPATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
ไป~/.bashrc
เรียกใช้source ~/.bashrc
และคุณทำเสร็จแล้ว
หลังจากตรวจสอบเล็กน้อยฉันพบตั๋วในซอฟต์แวร์ที่ไม่เกี่ยวข้องใน GitHub คำสั่ง sha256sum นั้นหายไปใน MacOSXด้วยวิธีแก้ปัญหาต่าง ๆ :
ติดตั้ง coreutils
sudo port install coreutils
มันติดตั้งsha256sum
ที่/opt/local/libexec/gnubin/sha256sum
เป็นวิธีแก้ปัญหาอื่นที่เป็นไปได้โดยใช้openssl
:
function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
shasum
คำสั่งพื้นเมืองเพื่อ MacOS:function sha256sum() { shasum -a 256 "$@" ; } && export -f sha256sum
Supplemental Answer to Mig82's ซึ่งคำตอบนั้นรองรับ g-prefix สำหรับ executables ทั้งหมดใน coreutils ฉันเสนอวิธีแก้ปัญหาที่กำหนดขอบเขตให้แน่น
หลังจากติดตั้ง coreutils ด้วย
brew install coreutils
ผลลัพธ์ในls /usr/local/bin/gsha*
จะแสดงรายการไฟล์โปรแกรมที่เรียกว่า g-prefixed:
/usr/local/bin/gsha1sum
/usr/local/bin/gsha224sum
/usr/local/bin/gsha256sum
/usr/local/bin/gsha384sum
/usr/local/bin/gsha512sum
วิธีแก้ไขคือการสร้างลิงค์สัญลักษณ์ไปยังชื่อที่คุณต้องการโดยใช้ชื่อที่ไม่มีคำนำหน้า (หรือเสี่ยงต่อการทำลายโปรแกรมบางโปรแกรมที่ต้องใช้โปรแกรมปฏิบัติการ BSD และใช้ตัวเลือกไม่มีคำนำหน้า g Homebrew)
ตัวอย่าง
shaarray=(\
/usr/local/bin/gsha1sum
/usr/local/bin/gsha224sum
/usr/local/bin/gsha256sum
/usr/local/bin/gsha384sum
/usr/local/bin/gsha512sum
)
function installsha() {
for i in "${shaarray[@]}"
do
printf "$i\n" | perl -pe 'printf $_; s/gsha/sha/' | xargs -n 2 ln -s
done
}
md5
ยูทิลิตี้ดั้งเดิม