如何在Ubuntu 18.04上使用RVM安装Ruby on Rails

介绍

Ruby on Rails是一个流行的Web应用程序框架,旨在帮助您开发成功的项目,同时编写更少的代码。为了使Web开发变得有趣并且受到强大社区的支持,Ruby on Rails是一个可以免费使用的开源软件,并且欢迎各位用户提出建议以使其更好。

命令行工具RVMRuby Version Manager)提供了一个固体的开发环境。RVM将允许您管理和使用多个Ruby环境,并允许您在它们之间切换。项目存储库位于git存储库中

本教程将指导您完成Ruby和Rails安装过程并通过RVM进行设置

课程准备

本教程将通过RVM引导您完成Ruby on Rails安装过程。要学习本教程,您需要一个在Ubuntu 18.04服务器上具有sudo权限的非root用户。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

安装

使用RVM安装Ruby on Rails的最快方法是运行以下命令。

我们首先需要将GPG(代表GNU Privacy Guard)更新为最新版本,以便联系公钥服务器并请求与给定ID相关联的密钥。

sudo apt install gnupg2

我们正在使用具有sudo权限的用户在此处进行更新,但其余命令可由常规用户完成。

现在,我们将要求RVM项目的密钥去签署每个RVM版本。拥有RVM项目的公钥允许我们验证我们将要下载的RVM版本的合法性,该版本使用匹配的私钥进行签名。

gpg2 --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

现在让我们进入一个可写的位置,例如/tmp目录,然后将RVM脚本下载到一个文件中:

cd /tmp

我们将使用该curl命令从项目的网站下载RVM安装脚本。引导命令的反斜杠确保我们使用常规curl命令而不是任何已更改的别名版本。

我们将附加-s标志以指示该实用程序应该以静默模式与-S标志一起操作以覆盖其中一些以允许curl在失败时可以输出错误。该-L标志告诉实用程序遵循重定向,最后-o标志指示将输出写入文件而不是标准输出。

将所有这些元素放在一起,我们的完整命令将如下所示:

curl -sSL https://get.rvm.io -o rvm.sh

下载后,如果要在应用脚本之前审核脚本内容,请运行:

less /tmp/rvm.sh

然后,然后,我们可以让它通过 bash 来安装最新的稳定Rails版本,它还会引入相关的最新稳定版本Ruby。

cat /tmp/rvm.sh | bash -s stable --rails

在安装过程中,系统可能会提示您输入常规用户的密码。安装完成后,从安装目录中获取RVM脚本,这些脚本通常位于您的home/username目录中。

source /home/sammy/.rvm/scripts/rvm

您现在应该配置完整的Ruby on Rails环境。

安装特定的Ruby和Rails版本

如果您需要为您的应用程序安装特定版本的Ruby,而不仅仅是最新版本的Ruby,则可以使用RVM。首先,通过列出它们来检查哪些版本的Ruby可用:

rvm list known

然后,通过RVM安装您需要的特定版本的Ruby,在此特定版本中,例如,可以将ruby_version键入为ruby-2.4.0,或者只是键入为2.4.0

rvm install ruby_version

安装完成后,我们可以通过输入以下内容列出我们安装的可用Ruby版本:

rvm list

我们可以通过输入以下内容在Ruby版本之间切换

rvm use ruby_version

由于Rails是一个gem,我们也可以使用该gem命令安装各种版本的Rails 。让我们首先通过搜索列出Rails的有效版本:

gem search '^rails$' --all

接下来,我们可以安装我们所需的Rails版本。请注意, rails_version 仅引用版本号,如5.1.6

gem install rails -v rails_version 

我们可以通过创建gemsets然后在使用普通gem命令的Rails中安装Rails,这样可以让每一个Ruby能够使用各种Rails版本。

要创建gemset,我们将使用:

rvm gemset create gemset_name

要指定在创建gemset时要使用的Ruby版本,请使用:

rvm ruby_version@gemset_name  --create

gemsets允许我们为gems提供自包含的环境,并为我们安装的每个Ruby版本提供多个环境。

安装JavaScript运行时

一些Rails功能(例如Asset Pipeline)依赖于JavaScript的运行时。我们将使用软件包管理器安装Node.js以提供此功能。

就像我们使用RVM脚本一样,我们可以移动到可写目录,通过将Node.js脚本输出到文件来验证它,然后使用less来读取它:

cd /tmp
\curl -sSL https://deb.nodesource.com/setup_10.x -o nodejs.sh
less nodejs.sh

一旦我们对Node.js脚本感到满意,我们就可以安装NodeSource Node.js v10.x repo:

cat /tmp/nodejs.sh | sudo -E bash -

此处使用的-E标志将保留用户现有的环境变量。

现在我们可以更新apt并使用它来安装Node.js:

sudo apt update
sudo apt install -y nodejs

此时,您可以开始测试Ruby on Rails安装并开始开发Web应用程序。

如何卸载RVM

如果您不再希望使用RVM,可以先删除.bashrc文件中的脚本调用然后删除RVM文件来卸载它。

首先,使用像nano这样的文本编辑器删除脚本调用:

nano ~/.bashrc

向下滚动到您看到文件的RVM行的位置:

...
# Add RVM to PATH for scripting. Make sure this is the last PATH variable change.
export PATH="$PATH:$HOME/.rvm/bin"

删除行,然后保存并关闭文件。

接下来,使用以下命令删除RVM:

rm -rf ~/.rvm

此时,你就不再拥有RVM了。

结论

我们已经介绍了如何在这里安装RVM和Ruby on Rails的基础知识,以便您可以使用多个Ruby环境。

为了在Ruby on Rails应用程序中实现更多可伸缩性,集中化和控制,您可能希望将它与PostgreSQL或MySQ一起使用,而不是使用默认的sqlite3数据库。

更多Ubuntu教程请前往腾讯云+社区学习更多知识。


参考文献:《How To Install Ruby on Rails with RVM on Ubuntu 18.04》

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术博文

Linux下">/dev/null 2>&1 "相关知识说明

在学习Linux的过程中,常会看到一些终端命令或者程序中有 ">/dev/null 2>&1" 出现,由于已经遇到了好几次了,为了理解清楚,不妨花点时间百度或者...

30610
来自专栏Vamei实验室

来玩Play框架02 响应

我上一章总结了Play框架的基本使用。这一章里,我将修改和增加响应。 HTTP协议是按照“请求-响应”的方式工作。Play框架的核心是用动作(Action)来完...

2116
来自专栏子勰随笔

SDK设计心得之版本号

3108
来自专栏友弟技术工作室

命令行提高用户体验的神器

去闯 ag 比grep,ack更快的递归搜索文件内容 ag,grep,ack性能对比的链接 ag安装 ag ag简单使用 ag tig tig:字符模式下交互...

3489
来自专栏Python

守护线程与守护进程

一 守护进程 主进程创建守护进程   其一:守护进程会在主进程代码执行结束后就终止   其二:守护进程内无法再开启子进程,否则抛出异常:AssertionErr...

3079
来自专栏大眼瞪小眼

程序与进程

昨天复习《深入理解计算机系统》,参考了小土刀的博客,看到了进程和程序在内存中是如何组织的,虽然这张图看了很多遍但是总感觉有疑问。努力解决,参考《深入理解计算机系...

963
来自专栏七夜安全博客

BaseProxy:异步http/https代理

1854
来自专栏大数据智能实战

module 'tensorflow.python.framework.fast_tensor_util' does not match runtime version 3.6问题解决

最近在重新用tensorflow 1.3.*或者1.4 的时候,发现了好多问题,主要是碰到了如题目所示的问题,目前网上没有什么好的解决办法。 ? 关于这个问题,...

28010
来自专栏逸鹏说道

★Kali信息收集~ 5.The Harvester:邮箱挖掘器

官网:http://www.edge-security.com 安装:apt-get install theHarvester 运行:终端输入 theharve...

3117
来自专栏Play & Scala 技术分享

PlayFramework 2.1 技巧-性能调优实战

3717

扫码关注云+社区

领取腾讯云代金券