Rubyの更新

Ruby(asdf)

v1.17.0 から ruby のバージョン管理ツールが asdf に変更になりました。 ruby を asdf でインストールした場合は以下のような手順で変更してください。

# asdf install ruby VERSION
# asdf global ruby VERSION

VERSION: ruby のバージョンはREADME.mdをご参照ください。

Ruby(rvm)

v1.17.0 から ruby のバージョン管理ツールが asdf に変更になりました。 従来通り rvm で管理する場合は、以下のような手順で変更してください。

# rvm get stable
# rvm install VERSION --disable-binary
# rvm use VERSION --default

VERSION: ruby のバージョンはREADME.mdをご参照ください。

rvm get stable を実行した際に Warning, RVM 1.26.0 introduces signed releases and automated check of signatures ... のようなエラーが表示された場合、次のコマンドを実行し、適切な GPG キーをインポートしてください。

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

参考: https://github.com/rvm/rvm/issues/4533

何もエラーが表示されない場合は GPG キーのインポートは不要です。

Mecab Ruby

$ cd /usr/local/src/mecab-ruby-0.996
$ su -
# ruby extconf.rb
# make clean
# make
# make install

Unicorn 起動設定ファイル

OS 起動時に Unicorn を起動する設定が /etc/systemd/system/unicorn.service というファイルにあります。 古いバージョンの設定ファイルは ExecStart= 行が次のように設定されています。

古い ExecStart= 行:

ExecStart=/usr/local/rvm/bin/start_unicorn  -c config/unicorn.rb -E production -D

上記のように設定されている場合、以下のように変更してください。

ruby を asdf でインストールした場合

新しい ExecStart= 行:

ExecStart=/bin/bash -lc 'bundle exec unicorn_rails -c config/unicorn.rb -D'

ruby を rvm でインストールした場合

新しい ExecStart= 行:

ExecStart=/usr/local/rvm/wrappers/default/bundle exec unicorn_rails -c config/unicorn.rb -D

Unicorn 再起動

Ruby をバージョンアップした際は Unicorn の restart では、正しく再起動しない場合があるため、stop してから start する方が安全です。

$ su -
# systemctl stop unicorn
# systemctl start unicorn

Unicorn が完全に停止しないうちに systemctl start unicorn コマンドを実行するとエラーになる場合があります。エラーになる場合は、数秒置いてからもう一度実行してみてくだい。