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]