MacOS中没有sha256sum


Answers:


38

CoreUtils软件包也以Brew公式发布。因此,如果您安装了Brew,则还可以运行:

brew install coreutils

然后添加PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"~/.bashrc,运行source ~/.bashrc就完成了。


恭喜您在U&L中的第一个答案。我更喜欢MacPorts,而不是Brew,但是,这是一个可行的选择。
Rui F Ribeiro

1
这应该是公认的答案!
Milkncookiez

1
@Milkncokiez如果有人设法说服我,为什么一个Macports问题应该作为一个正确的答案来解决这个问题,我全神贯注。
Rui F Ribeiro

16

经过一番调查后,我发现MacOSX中缺少 GitHub中不相关软件中的票证sha256sum命令,其中包含几种解决方案:

  • 安装coreutils

    sudo port install coreutils
    

    它安装sha256sum/opt/local/libexec/gnubin/sha256sum

  • 作为另一种可能的解决方案,使用openssl

function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
  • 作为另一种,使用shasumMacOS固有的命令:
function sha256sum() { shasum -a 256 "$@" ; } && export -f sha256sum

1

Mig82的补充答案,其答案为coreutils中的所有可执行文件处理g前缀。我提供了一个范围狭窄的解决方案。

在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可执行文件并使用no 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
}
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.