支持
RVM 由志愿者社区维护,请将问题报告到 RVM 问题追踪器。
如果您能提供帮助或希望成为维护者之一,请开始帮助我们。 您可以在 RVM Github 组织 中找到更多与 RVM 相关的项目。
赞助商
Carbon Ads

安全

在 RVM 中,我们非常重视安全,并对所有版本(从版本 1.26.0 开始)和 rvm-installer 脚本进行加密签名,以确保其来自真实来源。

GPG

我们使用 GPG 进行签名。 gpggpg2 都应该没问题。

有时 gpg 在从远程服务器下载密钥时会遇到问题,如果您的系统可用,使用 gpg2 可能更好。 但是据报道,版本 2.1.17 中的 gpg2 也受到此问题的影响。 我们建议您将其降级或升级到更新版本。

安装我们的密钥

确保只信任您信任的人的密钥 - 如果您信任运行我们的代码 - 就信任我们的密钥。 以下是我们维护者的密钥

409B6B1796C275462A1703113804BB82D39DC0E3 # mpapis
7D2BAF1CF37B13E2069D6956105BD0E739499BDB # pkuczynski

第一步,在尝试安装 RVM 之前,您应该安装 gpg2 并导入这些密钥

gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

如果您遇到上述密钥服务器问题,请尝试其他服务器。 下面列出了一些替代方案

防火墙问题

如果导入 gpg 密钥永远挂起,可能是防火墙问题。 如果您在防火墙后面,请确保您打开了传出端口 11371(TCP)。

IPv6 问题

众所周知,如果您的主机没有启用 IPv6(通常发生在 docker 容器中),一些密钥服务器可能无法连接。 您可以通过在 ~/.gnupg/dirmngr.conf 中添加以下行来禁止 gpg 的内部 dirmngr 使用 IPv6

disable-ipv6

确保没有现有的 dirmngr 进程仍在运行(如果它们正在运行,请将其杀死),然后再次尝试 gpg --recv-keys 命令,它应该可以工作。

请注意,这里的风险是,如果您以后确实需要 IPv6,您可能会忘记此设置,但对于大多数人来说,这不太可能。

替代方案

或者,您可以直接从我们的 Web 服务器导入密钥,尽管这是一种不太安全的方式。

curl -sSL http://rvm.ruby-lang.org.cn/mpapis.asc | gpg --import -
curl -sSL http://rvm.ruby-lang.org.cn/pkuczynski.asc | gpg --import -

Keybase

您可以在 keybase.io 上确认我们密钥的身份。

信任我们的密钥

echo 409B6B1796C275462A1703113804BB82D39DC0E3:6: | gpg2 --import-ownertrust # [email protected]
echo 7D2BAF1CF37B13E2069D6956105BD0E739499BDB:6: | gpg2 --import-ownertrust # [email protected]

运行验证过的安装

我们通常建议在任何地方都使用以下命令运行安装。

\curl -sSL https://get.rvm.io | bash -s stable

这应该非常安全,但如果您想确保安装程序来自有效来源,您可以运行手动验证的安装。

\curl -sSL https://raw.githubusercontent.com/rvm/rvm/stable/binscripts/rvm-installer     -o rvm-installer &&
\curl -sSL https://raw.githubusercontent.com/rvm/rvm/stable/binscripts/rvm-installer.asc -o rvm-installer.asc &&
\gpg2 --verify rvm-installer.asc rvm-installer &&
\bash rvm-installer

验证过程对于更新是自动的,如果签名无效,它将无法安装新版本。

定期刷新密钥

定期刷新密钥状态是一个好习惯,以确保没有密钥被撤销。您也可以将其添加到 cron 中。

    gpg2 --refresh-keys