はじめに
Redmine は現在3.4系列がリリースされている最新ブランチで3.4.5がリリースされてました。また、次はメジャーバージョンアップの4.0系列がリリースに向けて開発中です。
Redmine 3.4から4.0への更新では、ベースとなっているRuby on Railsのバージョンが4.2から5.1に変わります。これは大きな更新で、Redmineのエコシステムを支えている多数のプラグインへの影響がいろいろと懸念されます。
Redmineの開発はリポジトリのtrunkで行われているので、redmineのリポジトリからtrunkを落とし、その上でglossary plugin(用語集プラグイン)が動くかどうかを試してみることにしました。
動作環境
自宅ではWindows 10マシンを使っていますが、Redmineを動かすなら断然Linuxです。ですが、Linuxマシンを用意できないこともあります。自宅ではそこで、Windows Subsystem for Linux 機能を有効にし、マイクロソフトストアからLinuxディストリビューションをインストールします。
インストールについては次のWikiに記載しています。
Windows Subsystem for Linuxの概要 - ソフトウェアエンジニアリング - Torutk
Redmine 4.0の開発リポジトリから落としてきます。RedmineのリポジトリはSubversion(svn)で管理されていますが、Gitのミラーリポジトリもあるのでそっちから落としました。svnのtrunkは、Gitではmasterブランチと思われます。
~> git clone https://github.com/redmine/redmine.git
rubyのバージョンが・・・
openSUSE Leap 42.3は、ruby 2.1が標準です。しかし、Ruby on Rails 5.1は、ruby 2.2以上を要求するのでこのままでは動きません。運用環境ではrbenvは好まないのですが、Windows Subsystem for Linuxはほぼ個人環境なのでrbenvでもいいかと思いこれでrubyの新しいバージョンを利用します。
まずrubyのビルドに必要な追加パッケージを入れておきます。
~> sudo zypper install readline-devel openssl-devel
rbenvの環境を用意します。
~> git clone https://github.com/sstephenson/rbenv.git ~/.rbenv :(略) ~> git clone https://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build
環境設定にrbenvを追加します。
~> echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bashrc ~> echo 'eval "$(rbenv init -)"' >> ~/.bashrc
新たにbashを起動し、rbenvでrubyをインストールします。
~> rbenv install --list Available versions: 1.8.5-p52 1.8.5-p113 :(中略) 2.5.0 2.5.1 2.6.0-dev 2.6.0-preview1 jruby-1.5.6 :(後略)
と出るので、最新リリース版の2.5.1を入れます。
~> rbenv install 2.5.1 Downloading ruby-2.5.1.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.5/ruby-2.5.1.tar.bz2 Installing ruby-2.5.1... :(ここで時間がかかる) Installed ruby-2.5.1 to /home/toru/.rbenv/versions/2.5.1 ~>
インストールされているrubyバージョンの確認をします。
~> rbenv versions * system (set by /home/toru/.rbenv/version) 2.5.1
システム(openSUSE標準パッケージのruby 2.1)が選択されています。そこで、今入れた2.5.1を使うよう設定します。
~> rbenv global 2.5.1 ~> rbenv versions system * 2.5.1 (set by /home/toru/.rbenv/version)
rubyのバージョンを切替えた後でbundlerを入れますが、gemの中にnativeビルドするものがあるのでOS標準パッケージを追加しておきます。
~> sudo zypper install autoconf
次のOS標準パッケージも必要でしたので入れておきます。
~> sudo zypper install timezone
Glossaryプラグインを入れる
plugin> git clone https://github.com/torutk/redmine_glossary.git
> bundle exec rake redmine:plugins:migrate rake aborted! NoMethodError: undefined method `alias_method_chain' for ActionView::Helpers::AssetTagHelper:Module Did you mean? alias_method : >
Ruby on Rails 5で抹消されるAPIの一つ alias_method_chain でエラーがやはり発生しました。