MacOS'ta sha256sum yok


17

sha256sumHigh Sierra'da kullanmaya çalıştım ; Aşağıdaki gibi yüklemeye çalıştım MacPorts:

sudo port install sha256sum

İşe yaramadı.

Ne yapalım?


macOS, tüm BSD'ler gibi yerel bir md5yardımcı programa sahiptir.
Kusalananda

Yanıtlar:


38

CoreUtils paketi ayrıca Brew formülleri olarak da yayınlanır . Yani Brew yüklüyse, şunları da çalıştırabilirsiniz:

brew install coreutils

Ardından eklemek PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"için ~/.bashrcçalıştırın source ~/.bashrcve bitirdiniz.


U & L'deki ilk cevabınız için tebrikler. MacPorts'u Brew'e tercih ederim, ancak evet, uygulanabilir bir alternatif.
Rui F Ribeiro

1
Bu kabul edilen cevap olmalı!
Milkncookiez

1
@Milkncokiez Birisi bana bir macports sorusunun neden doğru bir cevap olarak bir demleme çözümü olması gerektiğine ikna etmeyi başarırsa, ben tüm kulaklarım.
Rui F Ribeiro

17

Biraz araştırdıktan sonra, GitHub sha256sum komutunda ilgisiz bir yazılımda MacOSX'ta birkaç çözümle bir bilet buldum :

  • coreutils kurulumu

    sudo port install coreutils
    

    Kurulum yeri sha256sum:/opt/local/libexec/gnubin/sha256sum

  • Başka bir olası çözüm olarak, aşağıdakileri kullanarak openssl:

function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
  • shasumMacOS'a özgü komutu kullanarak başka bir tane daha :
function sha256sum() { shasum -a 256 "$@" ; } && export -f sha256sum

1

Cevabı coreutils içindeki tüm yürütülebilir dosyalar için g-önekini işleyen Mig82'lere ek cevap. Kapsamlı bir çözüm öneriyorum.

Coreutils kurulumundan sonra

brew install coreutils

Sonuçlarında ls /usr/local/bin/gsha* g ön ekli yürütülebilir dosyalar listelenir:

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

Çözüm, ön ekli olmayan bir ad kullanarak istediklerinize sembolik bir bağlantı oluşturmaktır (veya BSD yürütülebilir dosyalarına dayanan ve g öneksiz Homebrew seçeneğini kullanan bazı programları kırma riskini almaktır)

Misal

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
}
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.