【问题标题】:RVM: "sha256sum nor shasum found"RVM:“sha256sum 也没有找到 shasum”
【发布时间】:2025-11-24 08:25:01
【问题描述】:

我刚刚在一台新机器上安装了 RVM,当切换到包含 .rvmrc 文件的目录时(我已接受),我得到了:

ERROR: Neither sha256sum nor shasum found in the PATH

我使用的是 OS X 10.5.8。 — 可能在某处遗漏了什么。任何想法发生了什么以及如何解决这个问题?

【问题讨论】:

  • shasum -a256 [FILES]?
  • 误读了您的问题,抱歉 :)

标签: rvm


【解决方案1】:

由于某种原因,我的 OpenSSL 碰巧没有 sha256 enc 函数:

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

经过一番谷歌搜索,我发现自制配方“coreutils”附带了一个名为 gsha256sum 的等价物。安装之后(brew install coreutils),我在 /usr/local/bin 中有一个 gsha256sum 二进制文件,所以只需对其进行符号链接:

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

这为我解决了问题。

【讨论】:

    【解决方案2】:

    ciastek 的回答对我有用,直到我尝试在 bash 脚本中的 $() 中运行 rvm - rvm 看不到 sha256sum 函数。所以我创建了一个名为 sha256sum 的文件,其内容如下:

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

    将其放入 ~/bin,使其可执行,然后将该文件夹添加到我的路径中(并从我的 .bashrc 中删除该函数)。

    (非常感谢我的同事 Rob 帮助我找到了解决方法。)

    【讨论】:

      【解决方案3】:

      意味着您缺少 /usr/bin 中的二进制文件,或者您的路径以某种方式缺少 /usr/bin。打开一个新的 shell 并运行 echo $PATH | grep '/usr/bin' 看看它是否返回。此外, ls -alh /usr/bin/shasum 并确保二进制文件存在并且可执行。 OS X 上没有 sha256sum,只有 shasum。

      【讨论】:

      • 感谢您的回答。似乎shasum 根本不存在。知道如何安装吗?
      • 不,那是操作系统安装的东西。我倾向于相信你的 OS X 安装有点傻。
      • 是的,你可能是对的。我很快就必须安装 OS X 10.6 甚至 10.7。让我们跳一下,修复它。谢谢!
      【解决方案4】:

      在 MacOS Sierra 上运行

      $ shasum -a 256 filename

      基于@vikas027 评论添加

      alias sha256sum='shasum -a 256' 到你的~/.zshrc

      【讨论】:

      • 酷。我已将alias sha256sum='shasum -a 256' 添加到我的~/.zshrc 中,以免再次忘记这一点:)
      【解决方案5】:

      在我看来,Leopard 只是没有 /usr/bin/shasum。

      查看shasum manpage - 此联机帮助页仅适用于 Snow Leopard。其他联机帮助页,例如 ls 联机帮助页(无法链接到它,没有足够的声誉),适用于以前版本的 MacOS X。

      解决方法:使用 OpenSSL 计算 sha256 校验和。

      Leopards 的 OpenSSL (0.9.7) 不处理 sha256。 升级 OpenSSL。我使用过 MacPorts(无法链接到它,没有足够的声誉)。将 XCode 升级到 3.1 需要 OpenSSL 的依赖 zlib 1.2.5。 Can I get Xcode for Leopard still? 很有帮助。

      别名 sha256sum 为 OpenSSL 并更正其格式化输出的方式。我已经输入了我的 .bash_profile:

      function sha256sum() { openssl sha256 "$@" | awk '{print $2}'; }
      

      【讨论】:

      • 我在 OS X 10.5.8 上更新到 RVM 1.8.6 后遇到了同样的问题,这很好地解决了这个问题。谢谢!
      • 谢谢!这是一个有趣的方法。一定要试一试。
      【解决方案6】:

      我正在安装相对较新的 Lion (OS X 10.7.4)。在我的/usr/bin/ 文件夹中,我有这些文件:

          -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
      

      我有一个 shasum,只是没有标记为可执行文件。一个快速的sudo chmod a+x /usr/bin/shasum 为我解决了这个问题。

      【讨论】:

        【解决方案7】:

        对于 mac os X 10.9.5 并且您配置文件获取 /usr/bin 路径

         date +%s | shasum | base64 | head -c 32 ; echo
        

        【讨论】: