01. Linux 如何安装rvm和ruby

参考:
https://blog.csdn.net/qq_35641923/article/details/86493822
https://www.runoob.com/ruby/ruby-installation-unix.html
https://www.jianshu.com/p/1fbbc3f5694a

rvm可以用rbenv代替

报错1:需要添加本地域名hosts解析

[root@centos7 ~]# curl -L https://get.rvm.io | bash -s stable
curl: (7) Failed connect to raw.githubusercontent.com:443; Connection refused #报错
[root@centos7 ~]#  curl -L https://get.rvm.io | bash -s stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   194  100   194    0     0    103      0  0:00:01  0:00:01 --:--:--   103
curl: (7) Failed connect to raw.githubusercontent.com:443; Connection refused

解决方法

vim /etc/hosts

加入下面的配置
199.232.28.133 raw.githubusercontent.com
参考下面的连接解决
https://www.jianshu.com/p/c2e829027b0a

报错2 没有公钥

gpg: Can't check signature: 没有公钥
GPG signature verification failed for '/usr/local/rvm/archives/rvm-1.29.11.tgz' - 'https://github.com/rvm/rvm/releases/download/1.29.11/1.29.11.tar.gz.asc'! Try to install GPG v2 and then fetch the public key:

    gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

or if it fails:

    command curl -sSL https://rvm.io/mpapis.asc | gpg --import -
    command curl -sSL https://rvm.io/pkuczynski.asc | gpg --import -

In case of further problems with validation please refer to https://rvm.io/rvm/security

解决方法:

gpg --keyserver hkp://pool.sks-keyservers.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

或者

gpg --keyserver keyserver.ubuntu.com --recv-key 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB

报错3:如果提示

gpg: failed to start the dirmngr '/usr/bin/dirmngr': 没有那个文件或目录

这是缺少dirmngr命令,直接apt装一下就行

$ sudo apt install -y dirmngr

再执行下面的curl操作成功了,呵呵

[root@centos7 ~]# curl -L get.rvm.io | bash -s stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100   194  100   194    0     0    329      0 --:--:-- --:--:-- --:--:--   329
100 24535  100 24535    0     0   4868      0  0:00:05  0:00:05 --:--:--  7904
Downloading https://github.com/rvm/rvm/archive/1.29.10.tar.gz
Downloading https://github.com/rvm/rvm/releases/download/1.29.10/1.29.10.tar.gz.asc
gpg: Signature made Thu 26 Mar 2020 05:58:42 AM CST using RSA key ID 39499BDB
gpg: Good signature from "Piotr Kuczynski <piotr.kuczynski@gmail.com>"
gpg: WARNING: This key is not certified with a trusted signature!
gpg:          There is no indication that the signature belongs to the owner.
Primary key fingerprint: 7D2B AF1C F37B 13E2 069D  6956 105B D0E7 3949 9BDB
GPG verified '/usr/local/rvm/archives/rvm-1.29.10.tgz'
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.
  * Please do NOT forget to add your users to the rvm group.
     The installer no longer auto-adds root or users to the rvm group. Admins must do this.
     Also, please note that group memberships are ONLY evaluated at login time.
     This means that users must log out then back in before group membership takes effect!
Thanks for installing RVM 
Please consider donating to our open collective to help us maintain RVM.

   Donate: https://opencollective.com/rvm/donate
[root@centos7 ~]# source /etc/profile.d/rvm.sh
[root@centos7 ~]# rvm reload 
[root@centos7 ~]# rvm -v
rvm 1.29.10 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]

到此rvm安装成功

安装依赖
rvm安装完毕之后,就是ruby的下载安装了
但是在此之前需要安装一下ruby的依赖包,诸如openssl之类的,否则以后会出现各种问题,重新安装也是大麻烦

rvm requirements

输入一下命令检查安装情况

rvm requirements run

将显示:

Checking requirements for centos.
Requirements installation successful.

列出已知的 ruby 版本:

$ rvm list known

最后便可安装ruby了,当然版本可以任选,反正我选2.3.8

rvm install 2.3.8

或者

rvm install 3.0.0

报错例子一:

haima@haima-virtual-machine:~/Desktop$ rvm install 2.3.8
Searching for binary rubies, this might take some time.
No binary rubies available for: ubuntu/20.04/x86_64/ruby-2.3.8.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for ubuntu.
Removing undesired packages: libssl-dev....
Installing requirements for ubuntu.
Updating system....
Installing required packages: gawk, libffi-dev, libgdbm-dev, libncurses5-dev, libsqlite3-dev, libtool, sqlite3, libgmp-dev, libreadline-dev, libssl1.0-dev....
Error running 'requirements_debian_libs_install gawk libffi-dev libgdbm-dev libncurses5-dev libsqlite3-dev libtool sqlite3 libgmp-dev libreadline-dev libssl1.0-dev',
please read /home/haima/.rvm/log/1638863120_ruby-2.3.8/package_install_gawk_libffi-dev_libgdbm-dev_libncurses5-dev_libsqlite3-dev_libtool_sqlite3_libgmp-dev_libreadline-dev_libssl1.0-dev.log
Requirements installation failed with status: 100.

解决方法:
参考文章:
ubuntu 20.04使用rvm安装ruby2.3.1报错Error running requirements_debian_libs_install libssl1.0-dev
https://blog.csdn.net/qq_41988167/article/details/106202868

sudo vim /etc/apt/sources.list在/etc/apt/sources.list 中
添加下载源 deb http://security.ubuntu.com/ubuntu bionic-security main保存退出。
sudo apt update。
apt-cache policy libssl1.0-dev
rvm get stable
rvm install ruby-2.3.8

报错例子二:

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

haima@haima-virtual-machine:~/Desktop$ rvm use 2.3.8 --default

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for an example.

haima@haima-virtual-machine:~/Desktop$ source ~/.rvm/scripts/rvm
haima@haima-virtual-machine:~/Desktop$ rvm use 2.3.8 --default
Using /home/haima/.rvm/gems/ruby-2.3.8
haima@haima-virtual-machine:~/Desktop$ rvm list
=* ruby-2.3.8 [ x86_64 ]
   ruby-2.7.0 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

检查安装情况
显示如下信息则 安装完成:下面显示本人已经成功安装了两个版本的ruby,并且当前默认使用的是3.0版本 。呵呵

root@haima-PC:/home/haima/Desktop# rvm list
 * ruby-2.3.8 [ x86_64 ]
=> ruby-3.0.0 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

切换默认运行的ruby版本

rvm use 2.3.8 --default

use了某个版本之后,可以使用 which ruby 命令查看当前的ruby命令信息。

如果报下面的错误:
rvm is not a function的解决方法

haima@haima-PC:/usr/local$ rvm use 2.3.8 --default

RVM is not a function, selecting rubies with 'rvm use ...' will not work.

You need to change your terminal emulator preferences to allow login shell.
Sometimes it is required to use `/bin/bash --login` as the command.
Please visit https://rvm.io/integration/gnome-terminal/ for an example. 

编辑~/.bashrc

haima@haima-PC:/usr/local$ vim ~/.bashrc

加入下面的代码
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm"

再执行

haima@haima-PC:/usr/local$ rvm use 2.3.8 --default
Using /home/haima/.rvm/gems/ruby-2.3.8
haima@haima-PC:/usr/local$ rvm -v
rvm 1.29.12 (latest) by Michal Papis, Piotr Kuczynski, Wayne E. Seguin [https://rvm.io]
haima@haima-PC:/usr/local$ ruby -v
ruby 2.3.8p459 (2018-10-18 revision 65136) [x86_64-linux]

请参考
https://blog.csdn.net/dazhi_100/article/details/38845689

删除一个已安装的版本:

$ rvm remove 2.3.8

gemset 的使用

列出当前 Ruby 的 gemset

root@haima-PC:/home/haima/Desktop# rvm gemset list

gemsets for ruby-3.0.0 (found in /home/haima/.rvm/gems/ruby-3.0.0)
=> (default)
   global

进入ruby控制台
irb

更多参考:
https://blog.csdn.net/u010744827/article/details/84269612
https://ruby-china.org/wiki/rvm-guide
http://www.zzvips.com/article/62805.html

posted @ 2020-12-24 15:24  HaimaBlog  阅读(1142)  评论(0编辑  收藏  举报