安装Ruby、多版本Ruby共存、Ruby安装慢问题
rbenv
rbenv可以管理多个版本的ruby。可以分为3种范围(或者说不同生效作用域)的版本:
local版:本地,针对各项目范围
global版:全局,没有shell和local版时使用global版
shell版:当前终端,只针对当前所在终端
查找优先级为shell>local>global。
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 -l
2.安装ruby-build工作,可自动编译安装ruby。它可以作为rbenv的插件。
cd
git clone https://github.com/rbenv/ruby-build.git
PREFIX=/usr/local ./ruby-build/install.sh
3.选择ruby版本,安装ruby
rbenv install --list
rbenv install 2.6.2
默认情况下,安装是很慢的,因为要从官方下载源码包进行编译,下载的过程非常慢。所以,参见后面解决rbenv安装慢问题。
如果编译失败,可能是少了一些依赖包,在编译失败的时候会提示你执行什么命令来安装这些包(非常人性)。比如需要readline-devel包。
yum -y install readline-devel
5.安装完ruby或切换了ruby之后,都需要执行rehash操作,让rbenv知道刚才新装了一个ruby。
rbenv rehash
6.设置ruby版本,即local版、global版、shell版
rbenv global 2.6.2

解决rbenv安装慢问题
方案1:
如果慢,可以从 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加速下载
方案2:
从 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,再去下载显示出来对应后缀的包),所以可能需要下载多个后缀的版本文件丢到cache目录下
以下是一个过程示例:
# 先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
方案3:
有时候上面的方法会失效,不同版本可能不一样。但是,这里可以使用一个"安道"写的rbenv插件,让rbenv直接使用中国的镜像站点下载。直接执行下面的命令即可。
git clone https://github.com/andorchen/rbenv-china-mirror.git "$(rbenv root)"/plugins/rbenv-china-mirror
多版本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:///root/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。
安装Ruby、多版本Ruby共存、Ruby安装慢问题的更多相关文章
- Appium(二):Node.js下载与安装、非GUI版本appium下载与安装、GUI版本appium下载与安装
1. 下载并安装Node.JS 进入官网:https://nodejs.org/en/. 由于我们是新手嘛,所以肯定是越稳定越好啦,所以选择下载LTS版本. 进入文件下点击文件就进入安装界面了,点击n ...
- windows 如何将安装Anaconda之前已经安装的python版本(中已安装的库)移动到 Anaconda中
题目]如何将安装Anaconda之前已经安装的python版本(中已安装的库)移动到 Anaconda中 一.概述 之前安装tensorflow的安装了anaconda并用它进行安装,anaconda ...
- 多版本python共存,安装三方库到指定python版本
多版本python安装过程略过不提提供完美解决python启动和各版本pip问题: python3下pip安装命令如下: py -3 -m pip install xxxxxx python2下pip ...
- VS打包软件部署------ClickOnce应用安装 (各版本.net引导文件安装,再发布文档离线安装下载地址)
一.1.其他引导程序包:地址 https://msdn.microsoft.com/zh-cn/vstudio/bb898654.aspx 2.离线安装各版本.net下载版(各种语言):https: ...
- 安装解压版本的MySQL,安装过程中的常见命令,检查windows系统错误日志的方式来检查MySQL启动错误,关于Fatal error: Can't open and lock privilege
以端口 port = 3306 # 设置mysql的安装目录 basedir=D://Installed//mysql-5.6.26-winx64//mysql-5.6.26-winx64 # ...
- Ruby学习笔记之升级ruby的版本
升级ruby版本,有时候安装ruby的版本过低,需要进行升级,例如安装在centos6.7安装fpm需要ruby版本在1.9以上. 0x00 主机环境如下 [root@test ~]# cat /et ...
- 升级ruby的版本
升级ruby版本,有时候安装ruby的版本过低,需要进行升级,例如安装在centos6.7安装fpm需要ruby版本在1.9以上. 1.主机环境如下: [root@test ~]# cat /etc/ ...
- 使用rbenv 进行ruby 多版本的管理
今天需要安装一个ruby 包,但是ruby 版本过低,以前使用过rvm,但是在安装rvm 的时候发现系统有异常 错误信息,发现还有另外一个不错的可选工具 rbenv 安装 我是mac 系统 使用bre ...
- CentOS 5.X安装LAMP最高版本环境
#------------CentOS 5.X安装LAMP最高版本环境------------------#! /bin/sh #安装Apacheyum install httpd -y#1.关闭se ...
- CentOS 6.X安装LAMP最高版本环境
#------------CentOS .X安装LAMP最高版本环境------------------ #! /bin/sh #安装Apache yum install httpd -y #.关 ...
随机推荐
- python 教程 第十九章、 图形界面编程
第十九章. 图形界面编程 import Tkinter top = Tkinter.Tk() hello = Tkinter.Label(top, text='Hello World!') hello ...
- Android 4.0屏蔽式多点触摸
比方这张图.我想不接或者接单,二者仅仅能点一个,不能同一时候点击,否则会造成混乱.我们仅仅要在嵌套他们俩的布局中增加这么一段话: android:splitMotionEvents="fal ...
- springboot 配置拦截器
1 有这样一个需求 服务端对部分请求URL需要验证身份.如果验证错误,停止请求,按照既定的数据格式返回:如果验证正确,继续执行请求. 2 需要这样做 1. 将指定格式的请求拦截下来: 2. 获取参数, ...
- 使用StringBuilder与SqlParameter
好处: 防止sql注入:占用内存更少 例子: 传参有业务查询条件startDate,endDate,A,每页数据个数pageSize,当前查询页码pageIndex string sql = @&qu ...
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
之前已经分享过一篇基于Cocos2dx与服务器使用Socket进行通信的框架,还不太熟悉的请移步到如下博文中: [C/S通信交互之Socket篇]Cocos2dx(Client)使用BSD Socke ...
- 【全面解禁!真正的Expression Blend实战开发技巧】第四章 从最常用ButtonStyle开始 - PathButton
原文:[全面解禁!真正的Expression Blend实战开发技巧]第四章 从最常用ButtonStyle开始 - PathButton 上一篇我们介绍了TextButton,但为了追求界面的张力, ...
- Linux学习之“fork函数”
n返回值: fork函数调用一次,但是返回两次:在子进程中返回0,在父进程中返回子进程ID,出错返回-1.通过返回值,可以确定是在父进程还是子进程中. n子进程和父进程继续执行fork调用之后的指令. ...
- Win10《芒果TV》商店版双十一独家大礼,每日前100名用户免费领取7天VIP
为答谢大家对Win10<芒果TV>商店版一年以来一如既往的支持,2016年11月1日-11月30日期间,每天登录<芒果TV>UWP版(最新版本v3.1.3)的前100位用户可领 ...
- C#图片处理之:旋转图片90度的整数倍
原文:C#图片处理之:旋转图片90度的整数倍 旋转图片90的整数倍那真是太简单了. public static Bitmap KiRotate90(Bitmap img) ...
- 《HTML开发Mac OS App 视频教程》 第001讲、入门教程
土豆网同步更新:http://www.tudou.com/plcover/VHNh6ZopQ4E/ 使用HTML 创建Mac OS App 视频教程. 官方QQ群: (1)App实践出真知 434 ...