如何在Ubuntu 22.04上使用rbenv安装Ruby on Rails
导论
Ruby on Rails(简称Rails)是开发者们在创建网站和Web应用程序时最流行的应用程序堆栈之一。Ruby编程语言与Rails开发框架相结合,使您能够快速构建和部署可扩展的应用程序。
你可以使用命令行工具rbenv来安装Ruby和Rails。使用rbenv可以为你开发Ruby on Rails应用程序提供一个稳定的环境,并且可以在不同的Ruby版本间切换,以保持整个团队使用相同的版本。rbenv还支持指定应用程序特定版本的Ruby,允许你为每个用户更改全局Ruby,并提供使用环境变量来覆盖Ruby版本的选项。
在本教程中,您将使用rbenv和gem来跟随Ruby和Rails的安装过程。首先,您将安装适用于rbenv和Ruby的适当软件包。之后,您将安装ruby-build插件,以便安装可用版本的Ruby。最后,您将使用gem安装Rails,并且可以使用Ruby on Rails开始您的网页开发。您还将学习如何检查您的rbenv版本是否是最新版本,以及如何卸载Ruby版本和rbenv。
前提条件
跟随这个教程,你需要:
- One Ubuntu 22.04 server set up by following the Ubuntu 22.04 initial server setup guide, including a sudo non-root user and a firewall.
- Node.js installed using the official PPA, as explained in option 2 of How To Install Node.js on Ubuntu 22.04. A few Rails features, such as the Asset Pipeline, depend on a JavaScript Runtime. Node.js provides this functionality.
第一步 – 安装rbenv和相关依赖
Ruby依赖于一些可以通过软件包管理器安装的软件包。一旦安装了这些软件包,你就可以安装rbenv并使用它来安装Ruby。
首先,更新您的软件包列表。
- sudo apt update
接下来,安装安装Ruby所需的依赖项。
- sudo apt install git curl libssl-dev libreadline-dev zlib1g-dev autoconf bison build-essential libyaml-dev libreadline-dev libncurses5-dev libffi-dev libgdbm-dev
安装完依赖后,你可以安装 rbenv 本身。使用 curl 从 Github 获取安装脚本并将其直接传递给 bash 来运行安装程序。
- curl -fsSL https://github.com/rbenv/rbenv-installer/raw/HEAD/bin/rbenv-installer | bash
之后,将~/.rbenv/bin添加到$PATH中,以便您可以使用rbenv命令行工具。通过修改您的~/.bashrc文件,使其影响未来的登录会话来完成此操作。
- echo ‘export PATH=”$HOME/.rbenv/bin:$PATH”‘ >> ~/.bashrc
然后,在你的 ~/.bashrc 文件中添加命令 eval “$(rbenv init -)” ,这样 rbenv 就会自动加载了。
- echo ‘eval “$(rbenv init -)”‘ >> ~/.bashrc
接下来,将您对 ~/.bashrc 文件所做的更改应用到当前的shell会话中。
- source ~/.bashrc
通过运行type命令来验证rbenv的正确设置,该命令显示有关rbenv命令的更多信息。
- type rbenv
您的终端窗口将显示如下内容:
rbenv is a function rbenv () { local command; command=”${1:-}”; if [ “$#” -gt 0 ]; then shift; fi; case “$command” in rehash | shell) eval “$(rbenv “sh-$command” “$@”)” ;; *) command rbenv “$command” “$@” ;; esac }
在这个阶段你已经安装了rbenv和ruby-build。接下来,你将安装Ruby。
第二步 – 使用ruby-build安装Ruby
现在安装了ruby-build插件,您可以使用一个命令来安装您可能需要的任何版本的Ruby。首先,列出所有可用的Ruby版本。
- rbenv install -l
该命令的输出列出了您可以选择安装的所有版本。
2.7.7 3.0.5 3.1.3 3.2.0 jruby-9.4.0.0 mruby-3.1.0 picoruby-3.0.0 truffleruby-22.3.1 truffleruby+graalvm-22.3.1 Only latest stable releases for each Ruby implementation are shown. Use ‘rbenv install –list-all / -L’ to show all local versions.
现在,安装Ruby 3.2.0版本:
- rbenv install 3.2.0
安装Ruby可能是一个耗时的过程,所以请做好准备,安装过程可能需要一些时间才能完成。
一旦安装完成,使用全局子命令将其设置为您的默认Ruby版本。
- rbenv global 3.2.0
通过检查 Ruby 的版本号来验证 Ruby 是否已正确安装。
- ruby -v
如果你安装了3.2.0版本的Ruby,这个命令会返回如下输出:
ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux]
您现在已经安装了至少一个版本的Ruby,并设置了默认的Ruby版本。接下来,您将安装gems和Rails。
步骤3 – 使用宝石进行工作
宝石是Ruby库的分发方式。您使用gem命令来管理这些宝石,并使用这个命令来安装Rails。
安装 gem 时,安装过程会生成本地文档。这会给每个 gem 的安装过程增加很多时间,所以通过创建一个名为 ~/.gemrc 的文件来关闭本地文档生成,其中包含一个配置设置以关闭此功能。
- echo “gem: –no-document” > ~/.gemrc
Bundler是一个管理项目的gem依赖关系的工具。安装Bundler gem,因为Rails依赖于它。
- gem install bundler
您将收到以下的输出结果:
Fetching bundler-2.4.5.gem Successfully installed bundler-2.4.5 1 gem installed
你可以使用gem env命令(子命令env是environment的简写)来了解更多关于gems的环境和配置信息。你可以通过使用home参数来确认gems被安装在哪里,如下所示:
- gem env home
你会收到类似这样的输出。
/home/sammy/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0
一旦你安装好了gems,就可以安装Rails了。
第四步 – 安装Rails
要安装Rails,可以使用gem install命令,并使用-v标志指定版本。在本教程中,您将使用版本7.0.4。
- gem install rails -v 7.0.4
gem命令安装您指定的gem以及其所有的依赖项。Rails是一个复杂的Web开发框架,有许多依赖项,所以这个过程需要一些时间来完成。最终,您将收到一条消息,说明Rails已经安装完成,同时也安装了它的所有依赖项。
… Successfully installed rails-7.0.4 35 gems installed
Note
gem search ‘^rails$’ –all
gem install rails -v 4.2.7
如果您想要安装最新版本的Rails,请运行没有指定版本的命令:
gem install rails
rbenv通过创建一组指向当前启用的Ruby版本使用的文件的shims目录来工作。通过rehash子命令,rbenv在该目录中维护shims,以便匹配服务器上每个已安装的Ruby版本中的每个Ruby命令。每当您安装新版本的Ruby或提供像Rails一样的命令的gem时,应该运行以下命令:
- rbenv rehash
请运行以下命令,打印Rails的版本以确保安装成功:验证Rails的正确安装并输出其版本号。
- rails -v
如果安装正确,执行以下命令将返回已安装的Rails版本。
Rails 7.0.4
此时,您可以开始测试您的Ruby on Rails安装并开始开发Web应用程序。现在让我们回顾一下如何保持rbenv的最新版本。
第五步 – 更新 rbenv
由于您是手动使用Git安装的rbenv,因此您可以随时在~/.rbenv目录中使用git pull命令升级到最新版本。
- cd ~/.rbenv
- git pull
这确保您使用的是最新版本的可用 rbenv。
第六步 – 卸载Ruby版本
当您下载附加版本的Ruby时,您可能会在您的~/.rbenv/versions目录下积累更多版本,这可能超出您的需要。使用ruby-build插件的卸载子命令来移除这些先前的版本。
下面的命令可以卸载 Ruby 版本3.2.0:
- rbenv uninstall 3.2.0
通过使用rbenv uninstall命令,您可以清理掉旧版本的Ruby,以确保您当前只安装了您正在使用的版本。
第七步-卸载rbenv
如果你决定不再使用rbenv,你可以从系统中删除它。
要做这个,用你偏爱的文本编辑器打开你的~/.bashrc文件。在这个例子中,我们将使用nano。
- nano ~/.bashrc
找到文件中的下列两行并删除。
...
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
在删除这些行后,保存文件并退出编辑器。如果您使用的是nano,您可以通过按下CTRL + X然后Y和ENTER来退出。
然后使用以下命令删除rbenv和所有已安装的Ruby版本:
- rm -rf `rbenv root`
退出登录并重新登录以应用更改到您的shell。
结论
在本教程中,你安装了rbenv和gem来安装整个Ruby on Rails框架。从这里开始,你可以开始创建Web开发应用项目。如果你想了解更多关于如何使这些环境更加强大的内容,可以查看我们的《如何在Ruby中编码》系列。