CentOSにrbenvをインストールして使用する方法をまとめました。Mac編は Ruby開発環境の準備+rbenvの使い方 を参照してください。
rbenvのインストール
まずは必要なパッケージのインストールからです。gitはyumでもいいですが、最新版を入れたい方は CentOSに最新版のGitをインストール・アップデートする方法 を参照。
$ yum install -y git gcc gcc-c++ openssl-devel readline-devel
rbenvはインストールといってもリポジトリを clone するだけです。後はパスの設定とrbenv init
を起動時に実行するように、使用してるシェルに合わせて~/.bash_profile
などに書き込みます。
$ git clone git://github.com/sstephenson/rbenv.git ~/.rbenv $ echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile $ echo 'eval "$(rbenv init -)"' >> ~/.bash_profile $ exec $SHELL -l $ rbenv -v rbenv 0.4.0-151-g83ac0fb
しかし、上記の方法はREADMEに書かれている通りですが、~/.bash_profile
に設定を書き込んでしまうと実行ユーザーしか読み込んでくれません。
[vagrant@localhost ~]$ rbenv -v rbenv 0.4.0-151-g83ac0fb [vagrant@localhost ~]$ sudo su - [root@localhost ~]# rbenv -v -bash: rbenv: コマンドが見つかりません
そのため、Linuxの場合は全ユーザーに読み込まれる/etc/profile.d/
以下に作成する方がいいです。clone する場所も変えたいと思います。以下、root で実行していきます。
$ sudo su - $ git clone git://github.com/sstephenson/rbenv.git /usr/local/src/rbenv $ 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 0.4.0-151-g83ac0fb $ su - vagrant $ rbenv -v rbenv 0.4.0-151-g83ac0fb
ruby-buildのインストール
rbenvだけではrubyのインストールが出来ません。ruby-build を rbenv の plugins 以下にインストールすることでrbenv install
コマンドが使用できるようになります。
sstephenson/ruby-build · GitHub
$ git clone git://github.com/sstephenson/ruby-build.git /usr/local/src/rbenv/plugins/ruby-build
ruby-build/bin
に追加されたコマンドが使用できるようになりました。
$ ls /usr/local/src/rbenv/plugins/ruby-build/bin/ rbenv-install rbenv-uninstall ruby-build
Rubyのインストール
以上でRubyをインストールできる環境が整いました。
$ rbenv install 2.2.2 $ rbenv global 2.2.2 $ ruby -v ruby 2.2.2p95 (2015-04-13 revision 50295) [x86_64-linux]
RubyのバージョンによってはGemが古い場合があるので更新をして bundler だけ入れておきましょう。
$ gem -v 2.4.5 $ gem update --system $ gem -v 2.4.8 $ gem install bundler
ちなみにrbenv rehash
は不要になりました。Mac用として書きましたが以下の記事も参考に。
関連記事
rbenvのよく使うコマンドまとめ - TASK NOTES
rbenvのあまり使わないコマンドまとめ - TASK NOTES
【Ruby】bundlerの使い方 (Gem管理) - TASK NOTES