安装Ruby和 Rails的详细步骤


Posted in Ruby onApril 19, 2022

rbenv安装Ruby

rbenv可以管理多个版本的ruby。可以分为3种范围(或者说不同生效作用域)的版本:

  • local版:本地,针对各项目范围(只在某个目录下有效)

  • global版:全局,没有shell和local版时使用global版

  • shell版:当前终端,只针对当前所在终端

查找优先级为shell>local>global

安装rbenv和Ruby

1.安装rbenv

git clone https://github.com/rbenv/rbenv.git ~/.rbenv
echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc
echo 'eval "$(rbenv init -)"' >> ~/.bashrc
exec $SHELL

2.安装ruby-build工作,可自动编译安装ruby。它可以作为rbenv的插件,也可以作为独立程序,建议采用插件的方式。(如果已经有了,就跳过这一步,只要确保有rbenv命令就可以)

# 作为rbenv插件
mkdir -p "$(rbenv root)"/plugins
git clone https://github.com/rbenv/ruby-build.git "$(rbenv root)"/plugins/ruby-build

# 作为独立程序
git clone https://github.com/rbenv/ruby-build.git ~/ruby-build
PREFIX=/usr/local ./ruby-build/install.sh

3.选择ruby版本,安装ruby

rbenv install --list
rbenv install 2.6.2

默认情况下,安装是很慢的,因为要从官方下载源码包进行编译,下载的过程非常慢。

如果编译失败,可能是少了一些依赖包,在编译失败的时候会提示你执行什么命令来安装这些包(非常人性)。比如需要readline-devel包。

yum -y install readline-devel

4.安装完ruby或切换了ruby之后,都需要执行rehash操作,让rbenv知道刚才新装了一个ruby。

rbenv rehash

5.进入到项目目录/ror/ror1,设置local ruby版本

cd /ror/ror1
rbenv local 2.6.2

6.设置gem源

# 注意是ruby-china.com/,ruby-china.org的域名已经改成了.com
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
gem sources -l

解决rbenv安装慢问题

方案1

从 https://cache.ruby-china.com/pub/ruby/ 将ruby对应版本文件下载下来,将文件丢到~/.rbenv/cache目录下。

注意点:

  • ~/.rbenv/cache目录可能不存在,需要先创建
  • 下载保存下来的版本可能不是rbenv install时所需的版本,因为同一个版本的文件有.tar.bz2的,有.tar.xz的等等,rbenv对安装不同的ruby版本使用的文件后缀可能不一样,可以先执行下rbenv install 2.6.3后立马ctrl+c,再去下载显示出来对应后缀的包

以下是一个示例:

#  先rbenv install看看使用什么后缀的版本文件
# 这里显示的是使用.tar.bz2后缀的文件
$ rbenv install 2.6.2
Downloading ruby-2.6.2.tar.bz2...
^C

# 所以下载.tar.bz2的文件
$ wget 'https://cache.ruby-china.com/pub/ruby/2.6/ruby-2.6.2.tar.bz2' -P ~/.rbenv/cache

# 安装即可
$ rbenv install 2.6.2

方案2

可以从 https://cache.ruby-china.com/pub/ruby/ 将ruby对应版本文件下载下来,然后安装。但注意先设置环境变量,并且在此环境变量url之后加上特殊符号#?

# 以ruby-2.6.2为例
wget https://cache.ruby-china.com/pub/ruby/2.6/ruby-2.6.2.tar.bz2 -P ~
RUBY_BUILD_MIRROR_URL='file:///~/ruby-2.6.2.tar.bz2#' rbenv install 2.6.2 --verbose

# 另:也可以设置代理https_proxy=IP:PORT加速下载

方案3

有时候上面的方案2会失效,不同版本可能不一样。但是,这里可以使用一个rbenv插件,让rbenv直接使用中国的镜像站点下载。直接执行下面的命令即可。

git clone https://github.com/andorchen/rbenv-china-mirror.git "$(rbenv root)"/plugins/rbenv-china-mirror

更新rbenv的ruby版本列表

安装rbenv一段时间之后,ruby可能发布了新的版本,这时rbenv无法获取到这个新版本的信息。因此需要更新rbenv的可安装列表。

实际上,更新ruby-build插件即可:

# ruby-build作为rbenv插件时
git -C "$(rbenv root)"/plugins/ruby-build pull

# ruby-build作为独立程序时
cd
git clone https://github.com/rbenv/ruby-build.git
PREFIX=/usr/local ./ruby-build/install.sh

然后就可以查看新的ruby版本并安装。

多版本ruby

上面已经装了一个ruby了,现在再装一个ruby 2.6.1:

# 以ruby-2.6.1为例
$ wget https://cache.ruby-china.com/pub/ruby/2.6/ruby-2.6.1.tar.bz2 -P /root

$ RUBY_BUILD_MIRROR_URL='file:///~/ruby-2.6.1.tar.bz2#' rbenv install 2.6.1 --verbose

$ rbenv rehash

现在,就有了两个版本,可以使用rbenv versions命令查看(复数versions表示列出已装所有版本,单数version表示列出当前所使用的ruby版本)。

$ rbenv versions

现在,就可以通过rbenv [local | shell | global] VERSION来设置多版本共存的ruby了。

比如:

$ rbenv local 2.6.1
$ rbenv version

rbenv命令行

$ rbenv --help
Usage: rbenv <command> [<args>]

Some useful rbenv commands are:
   commands    列出rbenv的所有命令列表
   local       设置或显示local application-specific Ruby version
   global      设置或显示global Ruby version
   shell       设置或显示shell-specific Ruby version
   install     使用ruby-build安装指定的ruby版本
   uninstall   卸载指定版本
   rehash      rehash,每次安装完ruby后都要执行,否则rbenv不知道刚才新装ruby的信息
               (rbenv通过检查~/.rbenv/shims来获取ruby信息)
   version     显示当前ruby版本
   versions    显示所有已装ruby版本
   which       显示ruby命令的全路径
   whence      列出包含该可执行命令的所有ruby版本

See `rbenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/rbenv/rbenv#readme

完整的命令列表可查看rbenv commands,各命令使用方法,可查看rbenv help COMMAND

安装rails

cd /ror/ror1

# 查看已有的rails版本号
gem list --remote | grep '^rails' | head

# 安装最新版的rails
gem install rails

# 安装指定版本的rails
# gem install rails -v VERSION
gem install rails -v 5.1.3

安装了指定版本的rails后,rails创建的项目不一定就是指定版本的。比如上面安装的是5.1.3版本的rails,rails new blog可能会创建rails 6.0.3.2版本的项目blog。如果想要让创建的项目也是指定版本的,可:

rails _5.1.3_ new blog

Windows安装Ruby和Rails

下载Windows下的Ruby安装包:https://rubyinstaller.org/downloads/

要下载with-devkit的。例如:

https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.6-1/rubyinstaller-devkit-2.6.6-1-x64.exe

下载OK后,双击安装,一路点下一步:

安装Ruby和 Rails的详细步骤

最后安装ruby所需的包:

安装Ruby和 Rails的详细步骤

安装完成后,打开cmd或powershell:更改中国gem镜像仓库。

gem sources --remove https://rubygems.org/ --add https://gems.ruby-china.com/

安装rails或其它gem:

gem install rails
gem install mysql2
Ruby 相关文章推荐
Ruby处理YAML和json数据
Apr 18 Ruby
Ruby序列化和持久化存储 Marshal和Pstore介绍
Apr 18 Ruby
Ruby使用Mysql2连接操作MySQL
Apr 19 Ruby
Ruby GDBM操作简介及数据存储原理
Apr 19 Ruby
安装Ruby和 Rails的详细步骤
Apr 19 Ruby
Python如何将list中的string转换为int
Jul 15 Ruby
Ruby处理CSV数据方法详解
Apr 18 #Ruby
Ruby处理YAML和json数据
Apr 18 #Ruby
Ruby序列化和持久化存储 Marshal和Pstore介绍
Apr 18 #Ruby
Ruby使用Mysql2连接操作MySQL
Apr 19 #Ruby
Ruby GDBM操作简介及数据存储原理
Apr 19 #Ruby
Python如何将list中的string转换为int
Jul 15 #Ruby
You might like
网站当前的在线人数
2006/10/09 PHP
php字符串截取问题
2006/11/28 PHP
PHP ajax 分页类代码
2008/11/13 PHP
PHP判断一个字符串是否是回文字符串的方法
2015/03/23 PHP
laravel中的错误与日志用法详解
2016/07/26 PHP
详解PHP处理字符串类似indexof的方法函数
2017/06/11 PHP
优化JavaScript脚本的性能的几个注意事项
2006/12/22 Javascript
用javascript实现读取txt文档的脚本
2007/07/20 Javascript
javascript各种复制代码收集
2008/09/20 Javascript
JS获取时间的相关函数及时间戳与时间日期之间的转换
2016/02/04 Javascript
vue中使用axios post上传头像/图片并实时显示到页面的方法
2018/09/27 Javascript
jQuery实现高级检索功能
2019/05/28 jQuery
vue iview实现动态新增和删除
2020/06/17 Javascript
webpack5 联邦模块介绍详解
2020/07/08 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
[47:03]Ti4第二日主赛事败者组 LGD vs iG 2
2014/07/21 DOTA
使用python爬虫实现网络股票信息爬取的demo
2018/01/05 Python
flask入门之文件上传与邮件发送示例
2018/07/18 Python
python pygame实现球球大作战
2019/11/25 Python
使用python和pygame制作挡板弹球游戏
2019/12/03 Python
Python利用Faiss库实现ANN近邻搜索的方法详解
2020/08/03 Python
python语音识别指南终极版(有这一篇足矣)
2020/09/09 Python
CSS3的column-fill属性对齐列内容高度的用法详解
2016/07/01 HTML / CSS
使用CSS3滤镜的filter:blur属性制作毛玻璃模糊效果的方法
2016/07/08 HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
2015/09/25 HTML / CSS
美国著名的婴儿学步鞋老品牌:Robeez
2016/08/20 全球购物
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
教师实习期自我鉴定
2013/10/06 职场文书
主管职责范文
2013/11/09 职场文书
财务总经理岗位职责
2014/02/16 职场文书
统计专业自荐书
2014/07/06 职场文书
励志演讲稿300字
2014/08/21 职场文书
2014年中班下学期工作总结
2014/12/11 职场文书
优秀党员先进事迹材料
2014/12/18 职场文书
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript