RVM: “sha256sum nor shasum found”

2020-06-14 03:56发布

I've just installed RVM on a new machine and when switching into a directory containing a .rvmrc file (which I've accepted) I'm getting:

ERROR: Neither sha256sum nor shasum found in the PATH

I'm on OS X 10.5.8. — Probably missing something somewhere. Any ideas what's going on and how to fix this?

标签: rvm
7条回答
家丑人穷心不美
2楼-- · 2020-06-14 04:35

For mac os X 10.9.5 and you profile get /usr/bin path

 date +%s | shasum | base64 | head -c 32 ; echo
查看更多
三岁会撩人
3楼-- · 2020-06-14 04:39

My OpenSSL happened to not have a sha256 enc function for some reason:

$ openssl sha256
openssl:Error: 'sha256' is an invalid command.

After some googling, I found that there is an equivalent called gsha256sum that comes with the homebrew recipe "coreutils". After installing that (brew install coreutils), I had a gsha256sum binary in /usr/local/bin, so it was just a matter of symlinking it:

$ sudo ln -s /usr/local/bin/gsha256sum /usr/local/bin/sha256sum

That fixed it for me.

查看更多
叼着烟拽天下
4楼-- · 2020-06-14 04:40

In my opinion Leopard just doesn't have /usr/bin/shasum.

Take a look at shasum manpage - this manpage is only for Snow Leopard. Other manpages, like ls manpage (can't link to it, not enough reputation), are for previous versions of MacOS X.

Workaround: Use OpenSSL to calculate sha256 checksums.

Leopards' OpenSSL (0.9.7) doesn't handle sha256. Upgrade OpenSSL. I've used MacPorts (can't link to it, not enough reputation). OpenSSL's dependecy zlib 1.2.5 required to upgrade XCode to 3.1. Can I get Xcode for Leopard still? is helpful.

Alias sha256sum to OpenSSL and correct the way it formats an output. I've put in my .bash_profile:

function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
查看更多
爱情/是我丢掉的垃圾
5楼-- · 2020-06-14 04:40

I'm on a relatively fresh install of Lion (OS X 10.7.4). In my /usr/bin/ folder I had these files:

    -rw-rw-rw-  35 root  wheel   807B /usr/bin/shasum
    -rwxr-xr-x   1 root  wheel   7.5K /usr/bin/shasum5.10
    -rwxr-xr-x   1 root  wheel   7.5K /usr/bin/shasum5.12

I had a shasum, it just wasn't marked as executable. A quick sudo chmod a+x /usr/bin/shasum solved the issue for me.

查看更多
混吃等死
6楼-- · 2020-06-14 04:43

Means you're missing the binary in /usr/bin or your path is somehow missing /usr/bin. Open a new shell and run echo $PATH | grep '/usr/bin' and see if its returned. Also, ls -alh /usr/bin/shasum and make sure the binary is there and executable. There is no sha256sum on OS X, just shasum.

查看更多
兄弟一词,经得起流年.
7楼-- · 2020-06-14 04:44

ciastek's answer worked for me until I tried to run rvm within a $() in a bash script - rvm couldn't see the sha256sum function. So I created a file called sha256sum with the following contents:

openssl sha256 "$@" | awk '{print $2}'

put it in ~/bin, made it executable, and added that folder to my path (and removed the function from my .bashrc).

(Many thanks to my coworker Rob for helping me find that fix.)

查看更多
登录 后发表回答