在Ubuntu 18.04上使用rbenv安装Ruby on Rails的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
Ruby on Rails 是开发人员创建网站和 Web 应用程序的最流行的应用程序堆栈之一。Ruby 编程语言与 Rails 开发框架相结合,使应用程序开发变得简单。
您可以使用命令行工具 rbenv 轻松安装 Ruby 和 Rails。使用 rbenv 将为您提供一个稳定的环境,用于开发 Ruby on Rails 应用程序,因为它可以让您轻松切换 Ruby 版本,保持整个团队使用相同的版本。
rbenv 支持指定应用程序特定版本的 Ruby,允许您更改每个用户的全局 Ruby,并允许您使用环境变量覆盖 Ruby 版本。
本教程将带您完成通过 rbenv 安装 Ruby 和 Rails 的过程。
先决条件
要按照本教程操作,您需要:
- 通过遵循 Ubuntu 18.04 初始服务器设置指南设置的一个 Ubuntu 18.04 服务器,包括一个 sudo 非根用户和一个防火墙。
- 使用官方 PPA 安装了 Node.js,如《如何在 Ubuntu 18.04 上安装 Node.js》中所述。一些 Rails 功能(如 Asset Pipeline)依赖于 JavaScript 运行时。Node.js 提供了这种功能。
步骤 1 – 安装 rbenv 和依赖项
Ruby 依赖于几个软件包,您可以通过软件包管理器安装这些软件包。安装这些软件包后,您可以安装 rbenv 并使用它来安装 Ruby。
首先,更新软件包列表:
sudo apt update
接下来,安装安装 Ruby 所需的依赖项:
sudo apt install autoconf bison build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev libgdbm5 libgdbm-dev
一旦依赖项下载完成,您可以安装 rbenv 本身。将 rbenv 存储库从 GitHub 克隆到目录 ~/.rbenv
:
git clone https://github.com/rbenv/rbenv.git ~/.rbenv
接下来,将 ~/.rbenv/bin
添加到您的 $PATH
中,以便您可以使用 rbenv
命令行实用程序。通过修改 ~/.bashrc
文件来实现这一点,以便它影响将来的登录会话:
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
然后将命令 eval "$(rbenv init -)"
添加到您的 ~/.bashrc
文件中,以便 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 ]; thenshift;fi;case "$command" inrehash | shell)eval "$(rbenv "sh-$command" "$@")";;*)command rbenv "$command" "$@";;esac
}
接下来,安装 [ruby-build] (https://github.com/rbenv/ruby-build) 插件。此插件添加了rbenv install
命令,简化了安装新版本的 Ruby 的过程:
git clone https://github.com/rbenv/ruby-build.git ~/.rbenv/plugins/ruby-build
到目前为止,您已经安装了 rbenv 和 ruby-build。接下来,让我们安装 Ruby。
步骤 2 – 使用 ruby-build 安装 Ruby
现在安装了 ruby-build
插件,您可以通过一个简单的命令安装您可能需要的 Ruby 版本。首先,让我们列出所有可用的 Ruby 版本:
rbenv install -l
该命令的输出应该是一个您可以选择安装的版本的长列表。
让我们安装 Ruby 2.5.1:
rbenv install 2.5.1
安装 Ruby 可能需要一些时间,所以准备好安装需要一些时间。
安装完成后,使用 global
子命令将其设置为我们的默认 Ruby 版本:
rbenv global 2.5.1
通过检查其版本号来验证 Ruby 是否已正确安装:
ruby -v
如果您安装了 Ruby 2.5.1 版本,上述命令的输出应该类似于:
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
要安装和使用不同版本的 Ruby,请使用不同的版本号运行 rbenv
命令,如 rbenv install 2.3.0
和 rbenv global 2.3.0
。
现在,您至少安装了一个版本的 Ruby,并设置了默认的 Ruby 版本。接下来,我们将设置 gems 和 Rails。
第三步 – 使用 Gems
Gems 是 Ruby 库的分发方式。您可以使用 gem
命令来管理这些 Gems。我们将使用这个命令来安装 Rails。
当您安装一个 Gem 时,安装过程会生成本地文档。这可能会显著增加每个 Gem 的安装时间,因此通过创建一个名为 ~/.gemrc
的文件来关闭本地文档生成,其中包含一个配置设置来关闭此功能:
echo "gem: --no-document" > ~/.gemrc
Bundler 是一个用于管理项目的 Gem 依赖关系的工具。接下来安装 Bundler Gem,因为 Rails 依赖于它。
gem install bundler
您将看到如下输出:
Fetching: bundler-1.16.2.gem (100%)
Successfully installed bundler-1.16.2
1 gem installed
您可以使用 gem env
命令(子命令 env
是 environment
的缩写)来了解更多关于 Gems 的环境和配置。您可以使用 home
参数来查看 Gems 的安装位置,就像这样:
gem env home
您将看到类似于以下的输出:
/home/sammy/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0
一旦您设置好 Gems,就可以安装 Rails。
第四步 – 安装 Rails
要安装 Rails,使用 gem install
命令以及 -v
标志来指定版本。在本教程中,我们将使用版本 5.2.0
:
gem install rails -v 5.2.0
gem
命令会安装您指定的 Gem,以及每个依赖项。Rails 是一个复杂的 Web 开发框架,有许多依赖项,因此该过程将需要一些时间来完成。最终,您将看到一条消息,指出 Rails 已安装,并附带其依赖项:
...
Successfully installed rails-5.2.0
38 gems installed
rbenv 通过创建指向当前启用的 Ruby 版本使用的文件的 shims 目录来工作。通过 rehash
子命令,rbenv 在该目录中维护 shims,以匹配服务器上安装的每个 Ruby 版本的每个 Ruby 命令。每当您安装新版本的 Ruby 或提供命令的 Gem(就像 Rails 一样)时,都应该运行:
rbenv rehash
通过使用以下命令验证 Rails 是否已正确安装其版本:
rails -v
如果安装正确,您将看到已安装的 Rails 版本:
Rails 5.2.0
此时,您可以开始测试您的 Ruby on Rails 安装,并开始开发 Web 应用程序。让我们看看如何保持 rbenv 最新。
第五步 – 更新 rbenv
由于您手动使用 Git 安装了 rbenv,您可以随时使用 ~/.rbenv
目录中的 git pull
命令升级您的安装到最新版本:
cd ~/.rbenv
git pull
这将确保我们使用的是 rbenv 的最新版本。
第六步 – 卸载 Ruby 版本
当您下载额外的 Ruby 版本时,您可能会在 ~/.rbenv/versions
目录中积累比您想要的更多的版本。使用 ruby-build
插件的 uninstall
子命令来删除这些先前的版本。
例如,输入以下内容将卸载 Ruby 版本 2.1.3:
rbenv uninstall 2.1.3
通过 rbenv uninstall
命令,您可以清理旧版本的 Ruby,以便您不会安装比您当前使用的更多的版本。
第七步 – 卸载 rbenv
如果您决定不再使用 rbenv,可以从系统中删除它。
要执行此操作,首先在编辑器中打开您的 ~/.bashrc
文件:
nano ~/.bashrc
从文件中找到并删除以下两行:
...
export PATH="$HOME/.rbenv/bin:$PATH"
eval "$(rbenv init -)"
保存文件并退出编辑器。
然后使用以下命令删除 rbenv 和所有已安装的 Ruby 版本:
rm -rf `rbenv root`
注销并重新登录以应用对您的 shell 的更改。
结论
在本教程中,您安装了 rbenv
和 Ruby on Rails。从这里开始,您可以了解如何使这些环境更加健壮。
探索如何将 Ruby on Rails 与 PostgreSQL 或 MySQL 一起使用,而不是其默认的 sqlite3 数据库,这将为您的应用程序提供更多的可扩展性、集中性和稳定性。随着您的需求增长,您还可以了解如何在多个服务器上扩展 Ruby on Rails 应用程序。