ついに Ruby 1.8.7 のサポートが終了した。いままで CentOS 6.5 では Ruby 1.8.7 を使っていたので、これを最新版に変更しようと思う。簡単そうなので rbenv を使ってみようと思う。CentOSでrbenvをシステムにインストールする を参考に。
rbenv の /usr/local/
への導入
# cd /usr/local # git clone https://github.com/sstephenson/rbenv.git rbenv # git clone https://github.com/sstephenson/ruby-build.git rbenv/plugins/ruby-build # vi /etc/profile.d/rbenv.sh
export RBENV_ROOT="/usr/local/rbenv" export PATH="${RBENV_ROOT}/bin:${PATH}" eval "$(rbenv init --no-rehash -)”
# source /etc/profile.d/rbenv.sh
最新版の Ruby の導入
# rbenv install 2.1.2 # rbenv global 2.1.2 # rbenv rehash # ruby -v ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-linux] # rbenv exec gem install bundler --no-ri --no-rdoc # rbenv rehash
これでだいたい導入は終了。しかし以下のような問題が残る。
現状: sudo bundle では /usr/bin/bundle が実行される。 bundle では /usr/local/rbenv 以下の bundle が実行される。
解決策:sudo bundle で実行されるバイナリを変更する / sudo したいときは常に su する
とりあえずは後者の解決策を採用する。
Redmine を Ruby 2.1.2 で動かす
ついでに Redmine を新しい Ruby で動かす設定もしよう。
# cd /var/lib/redmine # gem install passenger --no-rdoc --no-ri # rbenv rehash # passenger-install-apache2-module
出力された指示に従う。
# rake generate_secret_token # rake db:migrate RAILS_ENV=production # rake redmine:plugins:migrate RAILS_ENV=production # rake tmp:cache:clear # rake tmp:sessions:clear # service httpd start
とにかく rehash
することが重要。