# Joruri CMS 2020 Release 4 アップグレードマニュアル ## 1.想定環境 Joruri CMS 2020 Release 3.1.3最新版をインストール済みとします。 ## 2.事前確認 rootユーザーに変更します。 $ su - Joruri CMS 2020 Release 3.1.3の最新版がインストール済みであることを確認します。 # cd /var/www/joruri # git log -1 ## 3.インストール rustをインストールします。 # curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # source ~/.cargo/env # rustc --version rbenvを更新します。 # cd /usr/local/rbenv; git pull # cd /usr/local/rbenv/plugins/ruby-build; git pull # cd /usr/local/rbenv/plugins/rbenv-vars; git pull rubyをインストールします。 # rbenv install 3.3.8 # rbenv global 3.3.8 # rbenv rehash # ruby -v MeCab-Rubyをインストールします。 # cd /usr/local/src/mecab-ruby-0.996 # ruby extconf.rb && make && make install # ldconfig # ldconfig -p | grep "/usr/local/lib" ## 4.サービスの停止 delayed_jobがジョブを実行中でないことを確認します。 実行中であれば完了するまで待機します。 # ps aux | grep delayed_job delayed_jobを停止します。 # systemctl stop joruri_delayed_job # systemctl status joruri_delayed_job unicornを停止します。 # systemctl stop joruri_unicorn # systemctl status joruri_unicorn crondを停止します。 # systemctl stop crond # systemctl status crond ## 5.Joruriのアップグレード joruriユーザーに切り替えます。 # su - joruri $ cd /var/www/joruri Gemfile.lockの変更を破棄します。 $ cp Gemfile.lock tmp/Gemfile.lock $ git checkout Gemfile.lock Joruriを更新します。 $ git pull $ git log -1 設定ファイルの差分を確認します。 $ diff config/original/application.yml config/application.yml 設定ファイルをコピーします。設定を変更している場合はコピー後に差分を戻してください。 $ cp config/original/application.yml config/application.yml ライブラリを更新します。 $ bundle install $ bundle list データベースを更新します。 $ bundle exec rake db:migrate RAILS_ENV=production 以下のエラーが出た場合はライブラリをコンパイルする設定に変更してください。 ``` ERROR: It looks like you're trying to use Nokogiri as a precompiled native gem on a system with an unsupported version of glibc. ``` * ライブラリをコンパイルする設定手順 コンパイルする設定に変更します。 $ bundle config set force_ruby_platform true ライブラリを更新します。 $ bundle install データベースを更新し、正常に処理が完了することを確認します。 $ bundle exec rake db:migrate RAILS_ENV=production アセットをコンパイルします。 $ bundle exec rake assets:precompile RAILS_ENV=production $ ls -l public/_common/assets/ 周期実行ジョブを登録します。 $ bundle exec rake joruri:core:jobs:schedule RAILS_ENV=production cronを更新します。 $ bundle exec whenever --update-crontab リンク情報の抽出処理を実行します。 $ bundle exec rake joruri:cms:links:correct RAILS_ENV=production ## 6.サービスの起動 rootに切り替えます。 $ su - unicornとdelayed_jobのユニットファイルを上書きします。 # cp /var/www/joruri/config/samples/delayed_job.service /usr/lib/systemd/system/joruri_delayed_job.service # cp /var/www/joruri/config/samples/unicorn.service /usr/lib/systemd/system/joruri_unicorn.service ユニットファイルをリロードします。 # systemctl daemon-reload delayed_jobを起動します。 # systemctl start joruri_delayed_job # systemctl status joruri_delayed_job unicornを起動します。 # systemctl start joruri_unicorn # systemctl status joruri_unicorn crondを起動します。 # systemctl start crond # systemctl status crond