介绍
Ruby on Rails是一个流行的应用程序,适用于希望创建网站和Web应用程序的开发人员。 Ruby编程语言与Rails开发框架相结合,使应用程序开发变得快速而有效。
安装Ruby和Rails的一种方法是使用命令行工具rbenv 。 使用rbenv将为您开发Ruby on Rails应用程序提供良好控制和强大的环境,允许您在需要时轻松切换整个团队的Ruby版本。
rbenv支持指定特定于应用程序的Ruby版本,允许您为每个用户更改全局Ruby,并允许您使用环境变量来覆盖Ruby版本。
在本教程中,您将使用rbenv在本地macOS机器上安装和设置Ruby on Rails。
先决条件
要学习本教程,您需要:
- 安装了macOS的一台计算机或虚拟机,具有对该计算机的管理访问权限和Internet连接。 本教程已在macOS 10.14 Mojave上测试过。
- Node.js安装在macOS机器上,如如何在macOS上安装Node.js和创建本地开发环境中所述 。 一些Rails功能(例如Asset Pipeline )依赖于JavaScript运行时。 Node.js提供此功能。
第1步 – 安装rbenv
在此步骤中,您将安装rbenv并确保它在引导时自动启动。 要在macOS上执行此操作,本教程将使用包管理器Homebrew 。
要使用Homebrew下载rbenv
软件包,请运行以下命令:
brew install rbenv
这将安装rbenv和ruby-build插件。 此插件添加了rbenv install
命令,该命令简化了新版本Ruby的安装过程。
接下来,您将把命令eval "$(rbenv init -)"
到~/.bash_profile
文件中,以便在打开终端时自动加载rbenv。 为此,请在您喜欢的文本编辑器中打开.bash_profile
:
nano .bash_profile
将以下行添加到文件中:
eval "$(rbenv init -)"
保存并退出文件。
接下来,将您对~/.bash_profile
文件所做的更改应用于当前的shell会话:
source ~/.bash_profile
要验证rbenv是否已正确设置,请使用type
命令,该命令将显示有关rbenv
命令的更多信息:
type rbenv
您的终端窗口将显示以下内容:
rbenv is a functionrbenv (){ local command; command="${1:-}"; if [ "$#" -gt 0 ]; then shift; fi; case "$command" in rehash | shell) eval "$(rbenv "sh-$command" "[email protected]")" ;; *) command rbenv "$command" "[email protected]" ;; esac}
此时,您的计算机上已安装rbenv和ruby-build。 这将允许您在下一步中从命令行安装Ruby。
第2步 – 安装Ruby
现在安装了ruby-build插件,您可以通过单个命令安装任何可能需要的Ruby版本。 在此步骤中,您将选择Ruby的一个版本,将其安装在您的计算机上,然后验证安装。
首先,使用-l
标志列出Ruby的所有可用版本:
rbenv install -l
该命令的输出将是您可以选择安装的一长串版本。
在本教程中,安装Ruby 2.6.3 :
rbenv install 2.6.3
安装Ruby可能是一个漫长的过程,因此请为安装做好准备,以便花费一些时间来完成。
安装完成后,使用global
子命令将其设置为Ruby的默认版本:
rbenv global 2.6.3
通过检查其版本号来验证Ruby是否已正确安装:
ruby -v
您的输出将如下所示:
ruby 2.6.3p62 (2019-04-16 revision 67580) [x86_64-darwin18]
要安装和使用不同版本的Ruby,请运行具有不同版本号的rbenv
命令,例如rbenv install 2.3.0
和rbenv global 2.3.0
。
您现在安装了一个版本的Ruby并设置了默认的Ruby版本。 接下来,您将自己设置使用Ruby包和库或gem ,然后允许您安装Rails。
第3步 – 使用Gem
Gems是Ruby库和程序的包,可以分布在整个Ruby生态系统中。 您可以使用gem
命令来管理这些gem。 在此步骤中,您将配置gem
命令以准备Rails安装。
安装gem时,安装过程会生成本地文档。 这可能会为每个gem的安装过程增加大量时间,因此通过创建名为~/.gemrc
的文件关闭本地文档生成,该文件包含关闭此功能的配置设置:
echo "gem: --no-document" > ~/.gemrc
完成后,使用gem
命令安装Bundler ,这是一个管理项目的gem依赖项的工具。 这是Rails正常工作所必需的:
gem install bundler
你会看到这样的输出:
Fetching: bundler-2.0.2.gemSuccessfully installed bundler-2.0.21 gem installed
您可以使用gem env
命令了解有关gem env
的环境和配置的更多信息。 要查看已安装Gem的位置,请使用home
参数,如下所示:
gem env home
你会看到与此类似的输出:
/Users/sammy/.rbenv/versions/2.6.3/lib/ruby/gems/2.6.0
现在您已经设置并探索了gem工作流,您可以自由安装Rails。
第4步 – 安装Rails
在此步骤中,您将安装Rails,验证安装并准备使用。
要安装最新版本的Rails,请使用gem install
命令:
gem install rails
gem
命令安装您指定的gem以及每个依赖项。 Rails是一个复杂的Web开发框架,具有许多依赖项,因此该过程需要一些时间才能完成。 最后,您将看到一条消息,指出已安装Rails及其依赖项:
...Successfully installed rails-5.2.338 gems installed
注意 :如果您想安装特定版本的Rails,可以通过搜索列出其有效版本,这将输出一长串选项:
gem search '^rails$' --all
然后,您可以安装特定版本,例如4.2.7 :
gem install rails -v 4.2.7
rbenv的工作原理是创建一个填充程序的目录,或者拦截调用并更改或重定向它们的库。 在这种情况下,垫片将Ruby命令指向当前启用的Ruby版本使用的文件。 通过rehash
子命令,rbenv在该目录中维护填充程序,以匹配服务器上每个已安装的Ruby版本的每个Ruby命令。 无论何时安装新版本的Ruby或提供命令的gem(如Rails),都应该使用rehash
。
要重新发送填充程序目录,请运行以下命令:
rbenv rehash
使用以下命令打印其版本来验证Rails的安装:
rails -v
您将看到已安装的Rails版本:
Rails 5.2.3
成功安装Rails后,您可以开始测试Ruby on Rails安装并开始开发Web应用程序。 在下一步中,您将学习如何更新和卸载rbenv和Ruby。
第5步 – 更新和卸载rbenv和Ruby
在维护项目时,了解如何在需要时更新和卸载是很有用的。 在此步骤中,您将升级rbenv,然后从您的计算机上卸载Ruby和rbenv。
您可以通过运行以下命令使用Homebrew升级rbenv和ruby-build:
brew upgrade rbenv ruby-build
如果需要更新rbenv或ruby-build,Homebrew会自动为您完成。 如果您的设置已经是最新的,您将获得类似于以下内容的输出:
Error: rbenv 1.1.2 already installedError: ruby-build 20190615 already installed
这将确保我们使用最新版本的rbenv。
当您下载其他版本的Ruby时,您可能会累积比~/.rbenv/versions
目录中更多的版本。 使用ruby-build插件的uninstall
子命令,您可以删除这些以前的版本。
例如,运行以下命令以卸载Ruby版本2.1.3 :
rbenv uninstall 2.1.3
使用rbenv uninstall
命令可以清除旧版本的Ruby,这样就不会有比当前使用的更多的安装。
如果您已经决定不再使用rbenv,则可以将其从系统中删除。
为此,首先在编辑器中打开~/.bash_profile
文件:
nano ~/.bash_profile
从文件中查找并删除以下行,以便在打开终端时停止rbenv启动:
...eval "$(rbenv init -)"
删除此行后,保存文件并退出编辑器。
运行以下命令将更改应用于shell:
source ~/.bash_profile
接下来,使用以下命令删除rbenv和所有已安装的Ruby版本:
rm -rf `rbenv root`
最后,使用Homebrew删除rbenv包本身:
brew uninstall rbenv
检查rbenv版本以确保它已被卸载:
rbenv -v
您将获得以下输出:
-bash: /usr/local/bin/rbenv: No such file or directory
这意味着您已成功从计算机中删除了rbenv。
结论
在本教程中,您使用macOS上的rbenv安装了Ruby on Rails。 从这里开始,您可以通过Ruby系列中的How To Code了解有关Ruby编码的更多信息。 您还可以探索如何将Ruby on Rails与PostgreSQL一起使用,而不是使用默认的sqlite3数据库,这为您的应用程序提供了更多的可伸缩性,集中性和稳定性。