rbenv(Rubyのバージョン管理),Ruby2.3.6のインストール libcurlのアップデート CentOS 6.7(Final) 32bit

CentOSにrbenvをインストールした際に実行ユーザーでないと
「コマンドが見つかりません」
となったので、全ユーザーで使えるようにした手順を、
Rubyをrbenvを使ってインストールする最初のところから書いてみました。
まず、

①Ruby をビルドする環境を構築

# yum install -y gcc bzip2 openssl-devel libyaml-devel libffi-devel readline-devel zlib-devel gdbm-devel ncurses-devel

②rbenv + ruby-build のインストール
rbenv で Ruby のインストールを行うので rbenv のプラグイン「 ruby-build 」を併せてインストールする。

# git clone git://github.com/sstephenson/rbenv.git ~/.rbenv
# git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
# echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile
# echo 'eval "$(rbenv init -)"' >> ~/.bash_profile
# source ~/.bash_profile
# rbenv --version
rbenv 1.1.1-28-gb943955

③Ruby のインストール
「 rbenv install 」コマンドを用いて Ruby をインストールする。
「 –list 」オプション指定で、インストール可能な Ruby のバージョンがリスト表示される。

# rbenv install –list
# rbenv install 2.3.0

ここまでの方法だと、実行ユーザーでないと下記のように「コマンドがありません」になります。

[root@localhost ~]# rbenv -v
-bash: rbenv: コマンドが見つかりません

この原因は ~/.bash_profile に書込んでいるからで、PATHが通っていないから。
実際にどこのRubyが呼ばれているかを確認すると、
# which ruby
/usr/bin/ruby
となっていて、rbenvのrubyを使う時の
/Users/ユーザ名/.rbenv/shims/ruby

CentOSでは全ユーザーに/etc/profile.d/が読み込まれるので、
/etc/profile.d/以下にrbenvをインストールして、設定も書込むようにすれば解決する。

# sudo su -
# git clone git://github.com/sstephenson/rbenv.git /usr/local/src/rbenv
# git clone git://github.com/sstephenson/ruby-build.git /usr/local/src/rbenv/plugins/ruby-build
# echo 'export RBENV_ROOT="/usr/local/src/rbenv"' >> /etc/profile.d/rbenv.sh
# echo 'export PATH="${RBENV_ROOT}/bin:${PATH}"' >> /etc/profile.d/rbenv.sh
# echo 'eval "$(rbenv init -)"' >> /etc/profile.d/rbenv.sh
# source /etc/profile.d/rbenv.sh
# rbenv -v
rbenv 1.1.1-28-gb943955

 

インストールできるリストを表示してみる
# rbenv install -l

その中にあるバージョンを選んでインストールする
# rbenv install -v 2.3.6

 

がしかし、CentOS6.7だと思わぬトラブルがさらに発生する
libcurlのバージョンが古すぎてダウンロードエラーを起こすのだ。

sudo rpm -Uvh http://www.city-fan.org/ftp/contrib/yum-repo/city-fan.org-release-1-13.rhel6.noarch.rpm

デフォルトでenabled=1になっているので0にしておきましょう。

$ sudo vi /etc/yum.repos.d/city-fan.org.repo

[city-fan.org]
name=city-fan.org repository for Red Hat Enterprise Linux (and clones) $releasever ($basearch)
#baseurl=http://mirror.city-fan.org/ftp/contrib/yum-repo/rhel$releasever/$basearch
mirrorlist=http://mirror.city-fan.org/ftp/contrib/yum-repo/mirrorlist-rhel$releasever
#enabled=1
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-city-fan.org

 

–enablerepo=city-fan.org,epel をつけてlibcurlをアップデートします。
※依存関係でlibnghttp2.so.14不足が出るのを防ぐために
epel
も追加して、いざアップデート。

[root@localhost ~]$ sudo yum update –enablerepo=city-fan.org,epel libcurl

完了

バージョン確認すると
$yum info libcurl

i686
バージョン:7.57.0
になっていたので、アップデート成功

中断していたrbenvでRubyインストール
# rbenv install -v 2.3.6
けっこう時間かかりますがインストール終了

再読み込み⇒
$ rbenv rehash

インストールされているrubyを確認⇒
$ rbenv versions
system *2.3.6 (set by /usr/local/src/rbenv/version)

先ほどインストールしたRubyに設定⇒
$ rbenv global 2.3.6

Rubyインストールされたかを確認⇒
$ ruby -v
ruby 2.3.6p384 (2017-12-14 revision 61254) [i686-linux]