Không có sha256sum trong MacOS


17

Tôi đã thử sử dụng sha256sumở High Sierra; Tôi đã cố gắng cài đặt nó với MacPorts, như:

sudo port install sha256sum

Nó không hoạt động.

Phải làm sao


macOS, giống như tất cả các BSD, một md5tiện ích gốc .
Kusalananda

Câu trả lời:


38

Gói CoreUtils cũng được xuất bản dưới dạng công thức Bia . Vì vậy, nếu bạn đã cài đặt Brew, bạn cũng có thể chạy:

brew install coreutils

Sau đó thêm PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"vào ~/.bashrc, chạy source ~/.bashrcvà bạn đã hoàn tất.


Xin chúc mừng câu trả lời đầu tiên của bạn trong U & L. Tôi thích MacPorts hơn Brew, nhưng vâng, nó là một sự thay thế khả thi.
Rui F Ribeiro

1
Đây phải là câu trả lời được chấp nhận!
Milkncookiez

1
@Milkncokiez Nếu ai đó có thể thuyết phục tôi tại sao một câu hỏi về macports phải có một câu trả lời đúng như một giải pháp sản xuất bia thì tôi đều nghe thấy.
Rui F Ribeiro

16

Sau khi điều tra một chút, tôi tìm thấy một vé trong một phần mềm không liên quan trong lệnh GitHub sha256sum bị thiếu trong MacOSX , với một số giải pháp:

  • cài đặt coreutils

    sudo port install coreutils
    

    Nó cài đặt sha256sumtại/opt/local/libexec/gnubin/sha256sum

  • Như một giải pháp khả thi khác, sử dụng openssl:

function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
  • Như một số khác, sử dụng shasumlệnh có nguồn gốc từ MacOS:
function sha256sum() { shasum -a 256 "$@" ; } && export -f sha256sum

1

Trả lời bổ sung cho Mig82, có câu trả lời xử lý tiền tố g cho tất cả các tệp thực thi trong coreutils. Tôi cung cấp một giải pháp phạm vi chặt chẽ.

Sau khi cài đặt coreutils với

brew install coreutils

Kết quả ls /usr/local/bin/gsha* sẽ liệt kê các thực thi tiền tố g:

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

Giải pháp là tạo một liên kết tượng trưng đến tên bạn muốn sử dụng tên không có tiền tố (hoặc có nguy cơ phá vỡ một số chương trình dựa trên các tệp thực thi BSD và sử dụng tùy chọn Homebrew không có tiền tố g)

Thí dụ

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
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.