こんにちは、テクマトリックスの村上です。
Redmineで利用しているRubyのバージョンアップをしたのでまとめました。
バージョンアップする環境のRedmineはRedmine5.1.3のため、Ruby3.2.Xまでを利用できます。また、現在リリースされているRuby3.2はRuby3.2.6のため、今回はRuby3.2.6をインストールします。
※本環境はrbenvを利用してRubyのインストールをしています。
目次
バージョンアップのきっかけ
Ruby3.1が2025年3月31日でサポートが終了します。サポート終了前にバージョンアップする必要があります。
参考:https://www.ruby-lang.org/ja/downloads/branches/
Redmineの環境情報
環境情報は以下です。
OS | Ubuntu24.04 |
Redmineのバージョン | Redmine5.1.3 |
Rubyのバージョン | 3.1.6 |
Rubyのインストール方法 | rbenvを利用 |
DBの種類とバージョン | PostgreSQL |
webサーバ | Apache(Passengerを利用してRailsを実行) |
バージョンアップの手順
①インストールできるRubyのバージョンを確認
以下のコマンド実行することで、現在インストールできるRubyのバージョンを確認できます。
$ rbenv install --list
インストールしたいバージョンが表示されない場合は、以下のコマンドでダウンロードします。
$ cd /opt/.rbenv/plugins/ruby-build
$ git pull
②Ruby3.2.6のインストール
Rubyのバージョンを環境変数(RUBY_VERSION)に設定し、rbenvのコマンドでRuby3.2.6のインストールを行います。
$ export RUBY_VERSION='3.2.6'
$ rbenv install $RUBY_VERSION
$ rbenv global $RUBY_VERSION
$ rbenv global
③Passengerのインストール
本環境は、ApacheのPassengerを利用してRedmineを実行しているため、Passengerのインストールを行います。
$ gem install passenger -N
$ passenger-install-apache2-module --auto --languages ruby
④Apacheの設定ファイルの書き換え
以下のコマンドを実行し、Apacheの設定ファイルに記載する設定値を確認します。
$ passenger-install-apache2-module --snippet
LoadModule passenger_module /opt/.rbenv/versions/3.2.6/lib/ruby/gems/3.2.0/gems/passenger-6.0.24/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /opt/.rbenv/versions/3.2.6/lib/ruby/gems/3.2.0/gems/passenger-6.0.24
PassengerDefaultRuby /opt/.rbenv/versions/3.2.6/bin/ruby
</IfModule>
上記で確認した設定値をApacheの設定ファイルに記載します。既存の設定値があるため、削除して追加します。
$ vi /etc/apache2/conf-available/redmine.conf
<Directory "/var/lib/redmine/public">
Require all granted
</Directory>
#以下の既存の設定を削除
#LoadModule passenger_module /usr/local/lib/ruby/gems/3.1.0/gems/passenger-6.0.23/buildout/apache2/mod_passenger.so
#<IfModule mod_passenger.c>
# PassengerRoot /usr/local/lib/ruby/gems/3.1.0/gems/passenger-6.0.23
# PassengerDefaultRuby /usr/local/bin/ruby
#</IfModule>
#新しい設定値を追加
LoadModule passenger_module /opt/.rbenv/versions/3.2.6/lib/ruby/gems/3.2.0/gems/passenger-6.0.24/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /opt/.rbenv/versions/3.2.6/lib/ruby/gems/3.2.0/gems/passenger-6.0.24
PassengerDefaultRuby /opt/.rbenv/versions/3.2.6/bin/ruby
</IfModule>
PassengerMaxPoolSize 20
PassengerMaxInstancesPerApp 4
PassengerPoolIdleTime 864000
PassengerStatThrottleRate 10
<Directory /var/lib/redmine/public>
Allow from all
Options -MultiViews
Require all granted
</Directory>
⑤gemファイルのインストール
Redmineが利用しているgemファイルのインストールを行います。
$ cd Redmineのインストールディレクトリ
$ bundle install --without test development
⑥Redmineを再起動
$ systemctl restart apache2
⑦Redmineの動作確認
再起動後はブラウザでRedmineにアクセスを行い、動作に問題がないかを確認します。
動作確認は、業務でよく利用している機能を操作し、問題がないかの確認を行いました。普段の業務の流れを意識し、業務フローに乗っ取ってRedmineの操作を行うとよいかと思います。サードパーティ制プラグインを利用している場合は、プラグインの動作確認もします。
業務フローの例:プロジェクトを作成して、ユーザーを追加し、チケットの作成・編集・クローズを行う。

バージョンアップ後のサードパーティ制プラグインの利用可否
以下に記載するサードパーティ制プラグインは、Rubyのバージョンアップ後も利用できました。
プラグイン名 | バージョン | 用途 |
RedMica S3 plugin | 2.2.0 | Redmineへの添付ファイルをS3へ保存する |
Redmine Auto Done 100% plugin | 1.0.0 | チケットが終了ステータスに変更になった際に進捗率を自動で100%にする |
Redmine Banner plugin | 0.3.4 | Redmineの画面上にバナーを設置する |
Redmine Ip Filter | 1.0.0 | Redmineにアクセス可能なIPアドレスを制限する |
Redmine Issue Templates plugin | 1.1.2 | Redmineの画面上にHTML、CSS、Javascriptを埋め込む |
Issue Importer | 1.2.2 | チケットのインポート機能を拡張する |
Redmine Issue Trash | 1.0.2 | 削除したチケットを管理する |
View Customize plugin | 3.5.2 | Redmineの画面上にHTML、CSS、Javascriptを埋め込む |
Redmine Slack | 0.2 | RedmineとSlackを連携する |
まとめ
Redmineで利用しているRubyのバージョンアップを行いました。rbenvを利用してインストールしていたため、rubyのアップデートが簡単にできました。また、利用しているサードパーティ制プラグインへの影響がない事も確認しました。Rubyのバージョンアップを検討している方の参考になれば幸いです。