Rui*_*iro 41 osx software-installation hashsum macports
我尝试sha256sum
在 High Sierra 中使用;我试图用 安装它MacPorts
,如:
sudo port install sha256sum
Run Code Online (Sandbox Code Playgroud)
这没用。
该怎么办?
小智 73
CoreUtils 包也作为 Brew 公式发布。因此,如果您安装了 Brew,您也可以运行:
brew install coreutils
Run Code Online (Sandbox Code Playgroud)
然后添加PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
到~/.bashrc
,运行source ~/.bashrc
,你就完成了。
Rui*_*iro 24
经过一番调查,我在GitHub sha256sum command is missing in GitHub sha256sum command is missing in an无关软件中发现了一张票,有以下几种解决方案:
安装 coreutils
sudo port install coreutils
Run Code Online (Sandbox Code Playgroud)
它安装sha256sum
在/opt/local/libexec/gnubin/sha256sum
作为另一种可能的解决方案,使用openssl
:
Run Code Online (Sandbox Code Playgroud)function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
shasum
MacOS 原生的命令:Run Code Online (Sandbox Code Playgroud)function sha256sum() { shasum -a 256 "$@" ; } && export -f sha256sum
Cal*_*ord 12
如果您只需要 CLI 命令,只需
shasum -a 256 <file>
Run Code Online (Sandbox Code Playgroud)
解决了问题。无需安装coreutils
。
尽管不明显,但在对此问题的评论以及 Rui F Ribeiro 的回答中都提到了这一点。
Mig82 的补充答案,其答案处理 coreutils 中所有可执行文件的 g 前缀。我提供了一个范围严格的解决方案。
coreutils 安装后
brew install coreutils
Run Code Online (Sandbox Code Playgroud)
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 可执行文件的程序)
例子
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
}
Run Code Online (Sandbox Code Playgroud)