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。

前提条件

跟随本教程,您需要:

第一步 – 安装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

该命令的输出列出了您可以选择安装的所有版本。

输出

这是文章《如何在Ubuntu 22.04上使用rbenv安装Ruby on Rails》的第2部分(共3部分)。

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

这里只显示了每个Ruby实现的最新稳定版本。使用 'rbenv install --list-all / -L' 可以显示所有本地版本。

现在,安装Ruby 3.2.0版本:

  1. rbenv install 3.2.0

 

安装Ruby可能是一个耗时的过程,请做好准备,安装过程可能需要一些时间才能完成。

一旦安装完成,使用 global 子命令将其设置为您的默认Ruby版本。

  1. rbenv global 3.2.0

 

通过检查 Ruby 的版本号来验证 Ruby 是否已正确安装。

  1. ruby -v

 

如果你安装了3.2.0版本的Ruby,这个命令会返回如下输出:

输出

ruby 3.2.0 (2022-12-25 revision a528908271) [x86_64-linux]

您现在已经安装了至少一个版本的Ruby,并设置了默认的Ruby版本。接下来,您将安装gem包和Rails。

步骤3 – 使用Gem包

Gem包是Ruby库的分发方式。您可以使用 gem 命令来管理这些gem包,并使用此命令来安装Rails。

安装 gem 包时,安装过程会生成本地文档。这会给每个 gem 包的安装过程增加很多时间,所以通过创建一个名为 ~/.gemrc 的文件来关闭本地文档生成,其中包含一个配置设置以关闭此功能。

  1. echo "gem: --no-document" > ~/.gemrc

 

Bundler是一个管理项目gem依赖关系的工具。安装Bundler gem包,因为Rails依赖于它。

  1. gem install bundler

 

您将收到以下的输出结果:

输出

Fetching bundler-2.4.5.gem
Successfully installed bundler-2.4.5
1 gem installed

你可以使用 gem env 命令(子命令 envenvironment 的简写)来了解更多关于gem包的环境和配置信息。你可以通过使用 home 参数来确认gem包被安装在哪里,如下所示:

  1. gem env home

 

你会收到类似这样的输出。

输出

/home/sammy/.rbenv/versions/3.2.0/lib/ruby/gems/3.2.0

一旦你安装好了gem包,就可以安装Rails了。

第四步 – 安装Rails

要安装Rails,可以使用 gem install 命令,并使用 -v 标志指定版本。在本教程中,您将使用版本7.0.4。

  1. gem install rails -v 7.0.4

 

gem 命令会安装您指定的gem包以及其所有的依赖项。Rails是一个复杂的Web开发框架,有许多依赖项,所以这个过程需要一些时间来完成。最终,您将收到一条消息,说明Rails已经安装完成,同时也安装了它的所有依赖项。

输出

... Successfully installed rails-7.0.4
35 gems installed

注意:如果您想要安装不同版本的Rails,您可以通过搜索列出有效的Rails版本,从而输出一个可能版本的列表。您可以安装一个特定的版本,例如4.2.7:

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包时,应该运行以下命令:

  1. rbenv rehash

 

请运行以下命令,打印Rails的版本以确保安装成功:验证Rails的正确安装并输出其版本号。

  1. rails -v

 

如果安装正确,执行以下命令将返回已安装的Rails版本。

输出

Rails 7.0.4

此时,您可以开始测试您的Ruby on Rails安装并开始开发Web应用程序。现在让我们回顾一下如何保持rbenv的最新版本。

第五步 – 更新 rbenv

由于您是手动使用Git安装的rbenv,因此您可以随时在~/.rbenv目录中使用git pull命令升级到最新版本。


  1. cd ~/.rbenv
  2. git pull

这确保您使用的是最新版本的可用rbenv。

第六步 – 卸载Ruby版本

当您下载附加版本的Ruby时,您可能会在您的~/.rbenv/versions目录下积累更多版本,这可能超出您的需要。使用ruby-build插件的卸载子命令来移除这些先前的版本。

下面的命令可以卸载 Ruby 版本3.2.0:


  1. rbenv uninstall 3.2.0

通过使用rbenv uninstall命令,您可以清理掉旧版本的Ruby,以确保您当前只安装了您正在使用的版本。

第七步 – 卸载rbenv

如果你决定不再使用rbenv,你可以从系统中删除它。

要做到这一点,用你偏爱的文本编辑器打开你的~/.bashrc文件。在这个例子中,我们将使用nano。


  1. nano ~/.bashrc

找到文件中的下列两行并删除。

~/.bashrc 的中文本地化翻译:家目录下的.bashrc文件

...
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"

在删除这些行后,保存文件并退出编辑器。如果您使用的是nano,您可以通过按下CTRL + X然后YENTER来退出。

然后使用以下命令删除rbenv和所有已安装的Ruby版本:


  1. rm -rf `rbenv root`

退出登录并重新登录以应用更改到您的shell。

结论

在本教程中,你安装了rbenv和gem来安装整个Ruby on Rails框架。从这里开始,你可以开始创建Web开发应用项目。如果你想了解更多关于如何使这些环境更加强大的内容,可以查看我们的《如何在Ruby中编码》系列。

bannerAds