web-dev-qa-db-ja.com

MacOSではsha256sumはありません

ハイシエラでsha256sumを使用しようとしました。私はMacPortsを使用してそれをインストールしようとしました:

Sudo port install sha256sum

それは動かなかった。

何をすべきか?

17
Rui F Ribeiro

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

  • coreutilsのインストール

    Sudo port install coreutils
    

    インストールsha256sum at /opt/local/libexec/gnubin/sha256sum

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

function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
  • さらに別の方法として、MacOSネイティブのshasumcommandを使用します。
function sha256sum() { shasum -a 256 "$@" ; } && export -f sha256sum
15
Rui F Ribeiro

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

brew install coreutils

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

38
Mig82

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
}
1
Jonathan Komar