如何在Debian 8上使用RVM安装Ruby on Rails

介绍

Ruby on Rails是创建网站和Web应用程序的开发人员最受欢迎的应用程序框架之一。Ruby编程语言与Rails开发框架相结合,使应用程序开发变得简单。

您可以使用RVM(Ruby版本管理器)轻松安装Ruby和Rails。RVM还允许您管理和使用多个Ruby环境。

在本教程中,您将在Debian 8服务器上安装RVM,然后使用RVM安装稳定版本的Ruby on Rails,您将学习如何使用RVM管理多个版本的Ruby。

准备

要学习本教程,您需要:

  • 具有sudo权限的非root用户的Debian 8服务器。
  • 在服务器上安装Node.js,因为Ruby on Rails使用Node.js来管理客户端。

如何在Debian 8安装Node.js教程可以参考腾讯云Node.js安装教程

安装

使用RVM安装Ruby on Rails的最快方法是运行RVM网站上的安装脚本。

首先,使用gpg命令联系公钥服务器并请求RVM项目的密钥,该密钥用于对每个RVM版本进行签名。这使您可以验证要下载的RVM版本的合法性。从您的主目录,执行以下命令:

$ gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3

您将看到以下输出:

gpg: directory `/home/sammy/.gnupg' created
gpg: new configuration file `/home/sammy/.gnupg/gpg.conf' created
gpg: WARNING: options in `/home/sammy/.gnupg/gpg.conf' are not yet active during this run
gpg: keyring `/home/sammy/.gnupg/secring.gpg' created
gpg: keyring `/home/sammy/.gnupg/pubring.gpg' created
gpg: requesting key D39DC0E3 from hkp server keys.gnupg.net
gpg: /home/sammy/.gnupg/trustdb.gpg: trustdb created
gpg: key D39DC0E3: public key "Michal Papis (RVM signing) <mpapis@gmail.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)

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

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

\-s标志表示该实用程序应在静默模式下运行,而-S标志告知curl如果失败则仍显示错误。该-L标志跟随任何重定向,并且-o标志将输出写入文件而不是标准输出。

要在应用脚本之前审核脚本的内容,请在文本编辑器中打开它去查看其内容:

$ nano rvm.sh

将脚本传递给bash安装最新的稳定版本的Rails。

$ cat rvm.sh | bash -s stable --rails

在安装过程中,系统将提示您输入常规用户的密码。

...

Checking requirements for debian.
Installing requirements for debian.
Updating system sammy password required for 'apt-get --quiet --yes update':

输入您的密码,RVM将安装构建和编译Ruby所需的工具。

...
Installing required packages: gawk, g++, gcc, make, libc6-dev, libreadline6-dev, zlib1g-dev, libssl-dev, libyaml-dev, libsqlite3-dev, sqlite3, autoconf, libgmp-dev, libgdbm-dev, libncurses5-dev, automake, libtool, bison, pkg-config, libffi-dev
Requirements installation successful.

然后它将下载最新版本的Ruby,Ruby on Rails框架及其依赖项。

...
ruby-2.3.0 - #configure
ruby-2.3.0 - #download
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 24.2M  100 24.2M    0     0  31.4M      0 --:--:-- --:--:-- --:--:-- 31.4M
No checksum for downloaded archive, recording checksum in user configuration.
ruby-2.3.0 - #validate archive
ruby-2.3.0 - #extract
ruby-2.3.0 - #validate binary
ruby-2.3.0 - #setup
ruby-2.3.0 - #gemset created /home/sammy/.rvm/gems/ruby-2.3.0@global
ruby-2.3.0 - #importing gemset /home/sammy/.rvm/gemsets/global.gems..............................
ruby-2.3.0 - #generating global wrappers........
ruby-2.3.0 - #gemset created /home/sammy/.rvm/gems/ruby-2.3.0
ruby-2.3.0 - #importing gemsetfile /home/sammy/.rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.3.0 - #generating default wrappers........
Creating alias default for ruby-2.3.0...

...

36 gems installed

  * To start using RVM you need to run `source /home/sammy/.rvm/scripts/rvm`
    in all your open shell windows, in rare cases you need to reopen all shell windows.

  * To start using rails you need to run `rails new <project_dir>`.

安装完成后,输入以下内容来获取RVM脚本:

$ source ~/.rvm/scripts/rvm

使用以下which命令验证是否已通过RVM安装Ruby :

$ which ruby

您看到的输出应如下所示:

/home/sammy/.rvm/rubies/ruby-2.3.0/bin/ruby

您现在已经配置了完整的Ruby on Rails环境。

安装特定Ruby和Rails版本

如果您需要为您的应用程序安装特定版本的Ruby,而不仅仅是最新版本的Ruby,则可以使用RVM。首先,确保RVM是最新版本。运行此命令以更新RVM,确保可用Ruby版本列表是最新的:

$ rvm get stable

然后通过列出它们来检查哪些版本的Ruby可用:

$ rvm list known

然后,通过RVM安装您需要的特定版本Ruby,例如,ruby_version可以将其输入ruby-2.3.0,或者简单的2.3.0

$ rvm install ruby_version

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

$ rvm list

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

$ rvm use ruby_version

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

$ gem install rails -v rails_version 

接下来,安装所需的Rails版本。请注意,rails_version只会引用版本号,如4.2.7。

$ gem install rails -v rails_version

您可以通过创建gemsets然后使用常规gem命令在其中安装Rails,在每个Ruby版本中使用各种Rails版本:

$ rvm gemset create gemset_name # create a gemset
$ rvm ruby_version@gemset_name  # specify Ruby version and our new gemset
$ gem install rails -v rails_version 

Gemsets为您的Ruby应用程序提供完整的环境,并为您安装的每个Ruby版本提供多个环境。这意味着您可以轻松地在许多版本的Ruby上测试应用程序,以查看可能遇到的问题。

结论

现在您已经安装了RVM和Ruby on Rails,您可以开始开发或部署Web应用程序。

如果您使用的是CentOS系统或者Windows系统,可以参考腾讯云开发者实验室在 Linux 上部署 Ruby On Rails 环境windows下搭建Ruby开发环境,腾讯云社区也提供Ruby中文开发者手册,欢迎使用。


参考文献:《How To Install Ruby on Rails with RVM on Debian 8》

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

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

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏黑泽君的专栏

错误: 类Something是公共的, 应在名为 Something.java 的文件中声明

错误: 类Something是公共的, 应在名为 Something.java 的文件中声明

51120
来自专栏Python爬虫实战

Python爬虫利器:Requests库的使用

写了一些爬虫,从urllib库转到requests库,到目前为止,个人感觉requests库是最简单易用的HTTP库,以下这段话来自requests官网:

10510
来自专栏北京马哥教育

一线Python运维开发带你秒懂Flask框架

相信曾经纠结过这个问题:怎样才能彻底掌握flask? Flask是一个使用 Python 编写的轻量级 Web 应用框架。其 WSGI 工具箱采用 Werkz...

66160
来自专栏散尽浮华

nginx利用geo模块做限速白名单以及geo实现全局负载均衡的操作记录

Nginx的geo模块不仅可以有限速白名单的作用,还可以做全局负载均衡,可以要根据客户端ip访问到不同的server。比如,可以将电信的用户访问定向到电信服务器...

40460
来自专栏zingpLiu

IO模式和IO多路复用

  网络编程里常听到阻塞IO、非阻塞IO、同步IO、异步IO等概念,总听别人装13不如自己下来钻研一下。不过,搞清楚这些概念之前,还得先回顾一些基础的概念。

15030
来自专栏Python中文社区

Django博客教程(五):处理 http 请求完全解读

專 欄 ❈追梦人物,Python中文社区专栏作者。电子科技大学计算机学院研究生,从事大数据分析研究方向。主要使用 Python 语言进行相关数据的分析,熟练使...

325100
来自专栏我的博客

PHP敏感函数关闭参考

搜索disable_functions 然后改为=disable_functions=phpinfo,dl, exec, system,passthru,pop...

39480
来自专栏noteless

[零] JavaIO入门简介 程序设计语言 为什么需要IO库

本文旨在引申出来Java IO的概念含义,作为学习JavaIO一个起步的了解知识点

11120
来自专栏mini188

基于 Asp.Net的 Comet 技术解析

Comet技术原理 来自维基百科:Comet是一种用于web的技术,能使服务器能实时地将更新的信息传送到客户端,而无须客户端发出请求,目前有两种实现方式,长轮询...

25180
来自专栏喵了个咪的博客空间

基于PhalApi的Smarty拓展

基于PhalApi的Smarty拓展 ? 前言 先在这里感谢phalapi框架创始人@dogstar,为我们提供了这样一个优秀的开源框架. 用过的童鞋都知道Ph...

31450

扫码关注云+社区

领取腾讯云代金券