∞安装 RVM
RVM 支持大多数类 UNIX 系统和 Windows(使用 Cygwin 或 Windows 上的 Ubuntu 上的 Bash)。 基本要求是 bash
、curl
、gpg2
和整体 GNU 版本的工具 - 但 RVM 会尝试自动检测它并安装任何需要的工具。
∞安装 GPG 密钥
第一步是安装用于验证安装包的 GPG 密钥
gpg --keyserver keyserver.ubuntu.com --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
如果您遇到问题,请查看 安全
∞基本安装
∞Ubuntu
RVM 有专门的 Ubuntu 包,因此请按照此处发布的说明操作: https://github.com/rvm/ubuntu_rvm
如果您需要不同(更新)版本的 RVM,在安装基本版本的 RVM 后,请查看 升级 部分。
∞任何其他系统
安装 RVM(开发版本)
\curl -sSL https://get.rvm.io | bash
安装带有 ruby 的稳定版 RVM
\curl -sSL https://get.rvm.io | bash -s stable --ruby
另外还有 rails(穷人的 railsinstaller)
\curl -sSL https://get.rvm.io | bash -s stable --rails
或者使用 jruby、rails 和 puma
\curl -sSL https://get.rvm.io | bash -s stable --ruby=jruby --gems=rails,puma
要安装不带 rubygems-bundler 和 rvm gem(并从 global.gems 和 default.gems 中删除这些 gem)
\curl -sSL https://get.rvm.io | bash -s stable --without-gems="rvm rubygems-bundler"
要安装带有 hirb gem(并将其添加到 global.gems)
\curl -sSL https://get.rvm.io | bash -s stable --with-gems="hirb"
要安装带有 rails 和 haml gem(并将其添加到 default.gems)
\curl -sSL https://get.rvm.io | bash -s stable --with-default-gems="rails haml"
不带 autolibs
\curl -sSL https://get.rvm.io | bash -s -- --autolibs=read-fail
在下载 RVM/Rubies 时显示进度条
echo progress-bar >> ~/.curlrc
需要注意的是,curl 前面有一个反斜杠。 这样可以防止在 ~/.curlrc
文件中配置别名时出现错误行为。
如果您是现有的 RVM 用户,并且不希望 RVM 尝试设置您的 shell 以加载 RVM,您可以在安装时通过导出 `rvm_ignore_dotfiles=yes` 来选择退出,或者通过在您的 `rvmrc` 中设置此选项来永久退出。
∞您也可以
- 阅读下面的 安装文档。
- 观看最准确(但非官方)的 rvm 演示视频。
- 阅读最准确(但非官方)的 rvm 速查表。
- 从 Rails 开始?观看 RailsCasts.com 上的 Rails 入门教程。
∞安装说明
有三种不同的方法来安装和配置 RVM。
- 单用户安装 (推荐) - 用于用户 $HOME 中的隔离安装,不适用于 root。
- 多用户安装 - 适用于 服务器管理员 - 用于系统上所有用户都可以使用的安装 - 请注意,单用户安装优先于多用户安装。这以前也称为系统范围安装。 在不知道 umask 工作原理的情况下使用这种类型的安装存在很大的安全风险。
- 混合模式安装 - 用于系统上所有用户都可以使用的安装 - 并在用户 $HOME 中隔离 ruby/gemset。安装说明与多用户安装完全相同,区别在于用户环境。
get.rvm.io 是对 https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer 的重定向。您也可以使用安装程序的完整路径。
\curl https://raw.githubusercontent.com/rvm/rvm/master/binscripts/rvm-installer | bash -s stable
∞安装
我建议您自己 阅读安装脚本。这将让您有机会在安装之前了解它在做什么,并让您在运行它时感到更舒适。
∞1. 下载并运行 RVM 安装脚本
安装稳定版本
\curl -sSL https://get.rvm.io | bash -s stable
获取最新开发版本
\curl -sSL https://get.rvm.io | bash
指示 RVM 不要更改 shell 初始化文件 'rc' / 'profile'
\curl -sSL https://get.rvm.io | bash -s -- --ignore-dotfiles
请注意,从这一点开始,用户有责任将 RVM 源代码添加到相应的文件中。
对于多用户安装,您将执行以下操作
\curl -sSL https://get.rvm.io | sudo bash -s stable
注意:多用户安装说明必须以 sudo
命令 为前缀。但是,一旦安装完成,并且按照添加用户到 rvm
组的说明进行操作后,就不再需要使用 sudo
或 rvmsudo
。sudo
命令仅用于临时提升权限,以便安装程序可以完成其工作。如果您在安装完成后需要使用 sudo
或 rvmsudo
,则安装说明的某些部分没有正确执行。这通常是因为人们以 root
身份执行安装,而不是从非特权用户帐户执行安装说明。
安装特定版本
\curl -sSL https://get.rvm.io | bash -s -- --version latest \curl -sSL https://get.rvm.io | bash -s -- --branch [owner/][repo]
当然,如果您希望将此应用于多用户安装,请在 'bash' 部分之前加上 'sudo'。请随时查看我们的 升级文档,以获取有关分支格式的更多详细信息。
调试安装过程
\curl -sSL https://get.rvm.io | bash -s -- --trace
如果 rvm 安装脚本抱怨证书,您需要按照显示的说明进行操作。
单用户安装位置:~/.rvm/
如果安装脚本以标准非 root 用户身份运行,RVM 将安装到当前用户的 home 目录中。
用户配置文件(*rc
/ *profile
)的修改 - RVM 默认情况下会修改用户启动文件,虽然不建议您这样做,但您可以禁用自动过程并手动执行此操作
\curl -sSL https://get.rvm.io | bash -s -- --ignore-dotfiles echo "source $HOME/.rvm/scripts/rvm" >> ~/.bash_profile
多用户安装位置:/usr/local/rvm
如果安装脚本以 sudo 为前缀运行,RVM 将自动安装到 /usr/local/rvm
中。请参阅故障排除页面,了解有关 多用户安装的重要说明。
请参阅常见问题解答页面,了解有关 仅 root 安装的重要说明。
外部教程
请注意,任何外部教程不受支持,无论它们是否有效。教程很棒,但是我们在调试安装过程上花费了大量的人力。请仅使用本网站的安装过程,因为这是唯一支持的安装类型和方法。
更新现有 RVM 安装
只需重新运行安装脚本即可安全更新,或者您可以按照升级文档进行操作。
∞2. 将 RVM 加载到您的 shell 会话中作为函数
单用户
如果您以单用户身份安装,则 rvm 函数将自动为系统上的每个用户配置。阅读安装程序的输出以检查修改了哪些文件。
多用户
如果您使用 sudo 安装,则 rvm 函数将自动为系统上的每个用户配置。这是通过在登录时加载/etc/profile.d/rvm.sh
来实现的。大多数 Linux 发行版默认情况下会解析 /etc/profile,其中包含加载位于/etc/profile.d/
目录中的所有文件的逻辑。将您希望能够使用 RVM 的用户添加到 rvm 组后,这些用户必须注销并重新登录以获得 rvm 组成员资格,因为组成员资格仅在初始登录时由操作系统评估。Zsh 并不总是源自/etc/profile
,因此您可能需要在/etc/**/zprofile
中添加它
source /etc/profile
混合模式(用户 gemsets)
- 按照上述针对多用户的说明操作。
- 选择一个用户作为管理员 - 他将负责安装新的 ruby。此用户永远不应该运行下面介绍的命令。如果发生这种情况,请删除/重命名
${HOME}/.rvmrc
,注销然后重新登录。否则,您将无法正确安装/升级新的 ruby。 对于每个想要使用 RVM 的用户,需要为每个用户运行一个额外的命令(一次)
rvm user gemsets
这些用户创建的 Gemsets 将托管在他们的 HOME 目录中。无法从系统使用全局 Gemsets,除非使用手动链接目录等技巧,并且不应在混合模式下使用它们。请记住,在此上下文中,“系统”不指您的发行版的 Ruby 包,而是指 RVM 多用户安装。
您有两种管理 RVM 的方法。第一种是将管理员添加到 rvm 组。第二种是使用单独的管理员以及 rvmsudo 和权限提升。请注意,从混合模式用户使用 rvmsudo
不安全。两者可以混合使用,不会产生任何副作用。但是,非常重要的是不要为管理员启用混合模式 Gemsets 或 Rubies。RVM 在安装 Gemsets、Rubies、更新自身等操作时使用自定义 umask
(umask u=rwx,g=rwx,o=rx
)。这不会影响您的系统。但是,如果您希望避免 RVM 干扰您的 umask,可以在 /etc/rvmrc
中注释掉 umask 行。
此模式也应该适用于 Passenger,请遵循 Passenger 指令。
∞3. 重新加载 Shell 配置并测试
关闭当前 Shell 或终端会话,并打开一个新的会话(首选)。您可以使用以下命令加载 RVM
source ~/.rvm/scripts/rvm
如果安装和配置成功,RVM 现在应该在您每次打开新 Shell 时加载。可以通过执行以下命令进行测试,该命令应该输出 rvm is a function
,如下所示。
type rvm | head -n 1 rvm is a function
注意:在报告问题之前,请检查 rvm notes
,因为它可能包含重要信息。
恭喜!您已成功安装 RVM。
∞试用您的新 RVM 安装
以下是一些在 RVM 下安装和使用 Ruby 的示例。
显示所有 已知
Rubies 的列表。注意:RVM 可以安装更多未列出的 Rubies。
rvm list known # MRI Rubies [ruby-]1.8.6[-p420] [ruby-]1.8.7[-p374] [ruby-]1.9.1[-p431] [ruby-]1.9.2[-p320] [ruby-]1.9.3[-p545] [ruby-]2.0.0-p353 [ruby-]2.0.0[-p451] [ruby-]2.1[.1] [ruby-]2.1-head ruby-head ...
安装一个版本的 Ruby(例如 2.1.1
)
rvm install 2.1 Checking requirements for opensuse. Requirements installation successful. Installing Ruby from source to: /home/mpapis/.rvm/rubies/ruby-2.1.1, this may take a while depending on your cpu(s)... ... Install of ruby-2.1.1 - #complete Using /home/mpapis/.rvm/gems/ruby-2.1.1
使用新安装的 Ruby
rvm use 2.1 Using /home/mpapis/.rvm/gems/ruby-2.1.1
检查是否正常工作
ruby -v ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-linux] which ruby /home/mpapis/.rvm/rubies/ruby-2.1.1/bin/ruby
可以选择将一个版本的 Ruby 设置为新 Shell 的默认版本。请注意,这会覆盖“系统”Ruby
rvm use 2.1 --default
∞尽情使用 RVM!
∞接下来做什么?
如果您是 RVM 的新手,我建议您阅读 基础页面。在基础页面的末尾,还有更多关于入门的链接。
∞安装故障排除
当你运行
curl -sSL https://get.rvm.io | bash -s stable
并收到提示
curl: (60) SSL certificate problem: unable to get local issuer certificate More details here: http://curl.haxx.se/docs/sslcerts.html
ca-certificates
需要安装apt-get install ca-certificates
如果你打开一个新的 shell 并运行
type rvm | head -1
没有显示
rvm is a function
,则 RVM 没有正确地被加载。确保 RVM 在任何路径设置之后被加载,因为 RVM 会修改路径。如果你没有这样做,RVM 可能无法按预期工作。
如果你在 Red Hat、CentOS 或 Fedora 上使用 GNOME,请确保在 **Profile Preferences** 中的 **Title and Command** 选项卡下选中 **Run command as login shell** 选项。更改此设置后,你可能需要退出当前的控制台会话并启动一个新的会话才能使更改生效。