Tidak ada sha256sum di MacOS


Jawaban:


38

Paket CoreUtils juga diterbitkan sebagai formula Brew . Jadi, jika Anda telah menginstal Brew, Anda juga dapat menjalankan:

brew install coreutils

Kemudian tambahkan PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"untuk ~/.bashrc, menjalankan source ~/.bashrcdan Anda sudah selesai.


Selamat atas jawaban pertama Anda di U&L. Saya lebih suka MacPorts daripada Brew, tapi ya, itu adalah alternatif yang layak.
Rui F Ribeiro

1
Ini harus menjadi jawaban yang diterima!
Milkncookiez

1
@Milkncokiez Jika seseorang berhasil meyakinkan saya mengapa pertanyaan macports harus memiliki jawaban yang benar sebagai solusi minuman saya semua telinga.
Rui F Ribeiro

16

Setelah menyelidiki sedikit, saya menemukan tiket dalam perangkat lunak yang tidak terkait dalam perintah GitHub sha256sum hilang di MacOSX , dengan beberapa solusi:

  • menginstal coreutils

    sudo port install coreutils
    

    Menginstal sha256sumdi/opt/local/libexec/gnubin/sha256sum

  • Sebagai solusi lain yang mungkin, menggunakan openssl:

function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
  • Yang satu lagi, menggunakan shasumperintah asli untuk MacOS:
function sha256sum() { shasum -a 256 "$@" ; } && export -f sha256sum

1

Jawaban Tambahan untuk Mig82, yang jawabannya menangani awalan-g untuk semua executable di coreutils. Saya menawarkan solusi yang tertutup rapat.

Setelah coreutils menginstal

brew install coreutils

Hasil dalam ls /usr/local/bin/gsha* akan daftar executable g-prefixed:

  • /usr/local/bin/gsha1sum
  • /usr/local/bin/gsha224sum
  • /usr/local/bin/gsha256sum
  • /usr/local/bin/gsha384sum
  • /usr/local/bin/gsha512sum

Solusinya adalah membuat tautan simbolis ke tautan yang Anda inginkan menggunakan nama yang tidak diawali (atau mengambil risiko melanggar beberapa program yang bergantung pada BSD yang dapat dieksekusi dan menggunakan opsi Homebrew tanpa awalan g)

Contoh

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
}
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.