MacOSではsha256sumはありません


回答:


38

CoreUtilsパッケージは、Brew式としても公開されています。したがって、Brewがインストールされている場合は、次のコマンドを実行することもできます。

brew install coreutils

次にに追加PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"して~/.bashrc実行するsource ~/.bashrcと、完了です。


U&Lでの最初の回答おめでとうございます。私はBrewよりMacPortsを好みますが、はい、それは実行可能な代替手段です。
Rui F Ribeiro

1
これは受け入れられる答えになるはずです!
Milkncookiez

1
@MilkncokiezなぜMacportsの質問が正しい答えとして醸造された解決策を持つべきなのか、誰かが私を納得させることができたなら、私はすべて耳にしたものです。
Rui F Ribeiro

16

少し調べたところ、GitHubの無関係のソフトウェアのチケットがMacOSXのsha256sumコマンドにないことがわかりました。いくつかの解決策があります。

  • coreutilsのインストール

    sudo port install coreutils
    

    にインストールsha256sumします/opt/local/libexec/gnubin/sha256sum

  • 別の可能な解決策として、以下を使用しopensslます:

function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
  • さらにもう1つ、shasumMacOSのネイティブコマンドを使用します。
function sha256sum() { shasum -a 256 "$@" ; } && export -f sha256sum

1

coreutilsのすべての実行可能ファイルのgプレフィックスを処理するMig82への補足回答。私は厳密にスコープされたソリューションを提供します。

coreutilsをインストールした後

brew install coreutils

の結果にls /usr/local/bin/gsha* は、g接頭辞付きの実行可能ファイルがリストされます。

  • /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
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.