升级ruby的版本

时间:2022-02-13 00:31:08

升级ruby版本,有时候安装ruby的版本过低,需要进行升级,例如安装在centos6.7安装fpm需要ruby版本在1.9以上。

1、主机环境如下:

 [root@test ~]# cat /etc/redhat-release
CentOS release 6.7 (Final)
[root@test ~]# uname -r
2.6.-.el6.x86_64

2、使用yum安装ruby

 [root@web ~]# yum install rubygems ruby-devel
Loaded plugins: fastestmirror, security
Setting up Install Process
base | 3.7 kB :
base/primary_db | 4.7 MB :
extras | 3.4 kB :
extras/primary_db | kB :
updates | 3.4 kB :
updates/primary_db | 8.1 MB :
Resolving Dependencies
--> Running transaction check
---> Package ruby-devel.x86_64 :1.8.7.374-.el6 will be installed
--> Processing Dependency: ruby-libs = 1.8.7.374-.el6 for package: ruby-devel-1.8.7.374-.el6.x86_64
--> Processing Dependency: libruby.so.1.8()(64bit) for package: ruby-devel-1.8.7.374-.el6.x86_64
---> Package rubygems.noarch :1.3.-.el6 will be installed
--> Processing Dependency: ruby-rdoc for package: rubygems-1.3.-.el6.noarch
--> Processing Dependency: /usr/bin/ruby for package: rubygems-1.3.-.el6.noarch
--> Running transaction check
---> Package ruby.x86_64 :1.8.7.374-.el6 will be installed
---> Package ruby-libs.x86_64 :1.8.7.374-.el6 will be installed
---> Package ruby-rdoc.x86_64 :1.8.7.374-.el6 will be installed
--> Processing Dependency: ruby-irb = 1.8.7.374-.el6 for package: ruby-rdoc-1.8.7.374-.el6.x86_64
--> Running transaction check
---> Package ruby-irb.x86_64 :1.8.7.374-.el6 will be installed
--> Finished Dependency Resolution Dependencies Resolved ==============================================================================================================================
Package Arch Version Repository Size
==============================================================================================================================
Installing:
ruby-devel x86_64 1.8.7.374-.el6 base k
rubygems noarch 1.3.-.el6 base k
Installing for dependencies:
ruby x86_64 1.8.7.374-.el6 base k
ruby-irb x86_64 1.8.7.374-.el6 base k
ruby-libs x86_64 1.8.7.374-.el6 base 1.7 M
ruby-rdoc x86_64 1.8.7.374-.el6 base k Transaction Summary
==============================================================================================================================
Install Package(s) Total download size: 3.4 M
Installed size: M
Is this ok [y/N]: y
Downloading Packages:
(/): ruby-1.8.7.374-.el6.x86_64.rpm | kB :
(/): ruby-devel-1.8.7.374-.el6.x86_64.rpm | kB :
(/): ruby-irb-1.8.7.374-.el6.x86_64.rpm | kB :
(/): ruby-libs-1.8.7.374-.el6.x86_64.rpm | 1.7 MB :
(/): ruby-rdoc-1.8.7.374-.el6.x86_64.rpm | kB :
(/): rubygems-1.3.-.el6.noarch.rpm | kB :
------------------------------------------------------------------------------------------------------------------------------
Total kB/s | 3.4 MB :
warning: rpmts_HdrFromFdno: Header V3 RSA/SHA1 Signature, key ID c105b9de: NOKEY
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
Importing GPG key 0xC105B9DE:
Userid : CentOS- Key (CentOS Official Signing Key) <centos--key@centos.org>
Package: centos-release--.el6.centos.12.3.x86_64 (@anaconda-CentOS-.x86_64/6.7)
From : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-
Is this ok [y/N]: y
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Installing : ruby-libs-1.8.7.374-.el6.x86_64 /
Installing : ruby-1.8.7.374-.el6.x86_64 /
Installing : ruby-irb-1.8.7.374-.el6.x86_64 /
Installing : ruby-rdoc-1.8.7.374-.el6.x86_64 /
Installing : rubygems-1.3.-.el6.noarch /
Installing : ruby-devel-1.8.7.374-.el6.x86_64 /
Verifying : ruby-rdoc-1.8.7.374-.el6.x86_64 /
Verifying : ruby-1.8.7.374-.el6.x86_64 /
Verifying : rubygems-1.3.-.el6.noarch /
Verifying : ruby-libs-1.8.7.374-.el6.x86_64 /
Verifying : ruby-irb-1.8.7.374-.el6.x86_64 /
Verifying : ruby-devel-1.8.7.374-.el6.x86_64 / Installed:
ruby-devel.x86_64 :1.8.7.374-.el6 rubygems.noarch :1.3.-.el6 Dependency Installed:
ruby.x86_64 :1.8.7.374-.el6 ruby-irb.x86_64 :1.8.7.374-.el6 ruby-libs.x86_64 :1.8.7.374-.el6
ruby-rdoc.x86_64 :1.8.7.374-.el6 Complete!

3、查看ruby的版本

 [root@web ~]# ruby -v
ruby 1.8. (-- patchlevel ) [x86_64-linux]

4、升级ruby1.9.3版本

1)删除原来的rubygems仓库

[root@web ~]# gem sources --remove http://rubygems.org/

2)添加aliyun的rubygems仓库

[root@web ~]# gem sources -a http://mirrors.aliyun.com/rubygems/ 

3)查看rubygems仓库

 [root@web ~]# gem sources -l
*** CURRENT SOURCES *** http://mirrors.aliyun.com/rubygems/

4)使用RVM进行升级ruby

a:在rvm官方网址:https://rvm.io/执行如下命令:

 [root@web ~]#  gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
gpg: requesting key D39DC0E3 from hkp server keys.gnupg.net
gpg: requesting key 39499BDB from hkp server keys.gnupg.net
gpg: key D39DC0E3: "Michal Papis (RVM signing) <mpapis@gmail.com>" not changed
gpg: key 39499BDB: public key "Piotr Kuczynski <piotr.kuczynski@gmail.com>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed:
gpg: imported: (RSA: )
gpg: unchanged:

b:接着执行如下命令:

 [root@web ~]# \curl -sSL https://get.rvm.io | bash -s stable
Downloading https://github.com/rvm/rvm/archive/1.29.3.tar.gz
curl: () SSL connect error Could not download 'https://github.com/rvm/rvm/archive/1.29.3.tar.gz'.
curl returned status ''. Downloading https://bitbucket.org/mpapis/rvm/get/1.29.3.tar.gz
Downloading https://bitbucket.org/mpapis/rvm/downloads/1.29.3.tar.gz.asc
curl: () couldn't connect to host Could not download 'https://bitbucket.org/mpapis/rvm/downloads/1.29.3.tar.gz.asc'.
curl returned status ''. Creating group 'rvm' Installing RVM to /usr/local/rvm/
Installation of RVM in /usr/local/rvm/ is almost complete: * First you need to add all users that will be using rvm to 'rvm' group,
and logout - login again, anyone using rvm will be operating with `umask u=rwx,g=rwx,o=rx`. * To start using RVM you need to run `source /etc/profile.d/rvm.sh`
in all your open shell windows, in rare cases you need to reopen all shell windows.

c:执行上述命令 * To start using RVM you need to run `source /etc/profile.d/rvm.sh`

[root@web ~]# source /etc/profile.d/rvm.sh

5、查看RVM可安装的ruby的版本

 [root@web ~]# rvm list known
# MRI Rubies
[ruby-]1.8.[-p420]
[ruby-]1.8.[-head] # security released on head
[ruby-]1.9.[-p431]
[ruby-]1.9.[-p330]
[ruby-]1.9.[-p551]
[ruby-]2.0.[-p648]
[ruby-]2.1[.]
[ruby-]2.2[.]
[ruby-]2.3[.]
[ruby-]2.4[.]
ruby-head # for forks use: rvm install ruby-head-<name> --url https://github.com/github/ruby.git --branch 2.2 # JRuby
jruby-1.6[.]
jruby-1.7[.]
jruby[-9.1.13.0]
jruby-head # Rubinius
rbx-[.4.3]
rbx-2.3[.]
rbx-2.4[.]
rbx-[.5.8]
rbx-[.]
rbx-head # Opal
opal # Minimalistic ruby implementation - ISO :
mruby-1.0.
mruby-1.1.
mruby-1.2.
mruby-[.3.0]
mruby[-head] # Ruby Enterprise Edition
ree-1.8.
ree[-1.8.][-2012.02] # Topaz
topaz # MagLev
maglev[-head]
maglev-1.0. # Mac OS X Snow Leopard Or Newer
macruby-0.10
macruby-0.11
macruby[-0.12]
macruby-nightly
macruby-head # IronRuby
ironruby[-1.1.]
ironruby-head

6、安装ruby-1.9.3版本

 [root@web ~]# rvm install 1.9.
Searching for binary rubies, this might take some time.
Found remote file https://rvm_io.global.ssl.fastly.net/binaries/centos/6/x86_64/ruby-1.9.3-p551.tar.bz2
Checking requirements for centos.
Installing requirements for centos.
Installing required packages: libffi-devel, readline-devel, sqlite-devel, zlib-devel, libyaml-devel, openssl-devel...........|
Requirements installation successful.
ruby-1.9.-p551 - #configure
ruby-1.9.-p551 - #download
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
10.2M 10.2M 188k :: :: --:--:-- 223k
ruby-1.9.-p551 - #validate archive
ruby-1.9.-p551 - #extract
ruby-1.9.-p551 - #validate binary
ruby-1.9.-p551 - #setup
ruby-1.9.-p551 - #gemset created /usr/local/rvm/gems/ruby-1.9.-p551@global
ruby-1.9.-p551 - #importing gemset /usr/local/rvm/gemsets/global.gems...................................
ruby-1.9.-p551 - #generating global wrappers........
ruby-1.9.-p551 - #gemset created /usr/local/rvm/gems/ruby-1.9.-p551
ruby-1.9.-p551 - #importing gemsetfile /usr/local/rvm/gemsets/default.gems evaluated to empty gem list
ruby-1.9.-p551 - #generating default wrappers........

7、查看ruby是否升级成功

 [root@web ~]# ruby -v
ruby 1.9.3p551 (-- revision ) [x86_64-linux]

至此,ruby版本升级成功