Redmine 2.1.4から2.2.0へアップデート実施エラー記録(CentOS 6.3)
Redmine 2.2.0がリリースされたので、CentOS 6.3上で動作しているRedmine 2.1.4からのアップデートを実施してみました。今回は、大きな変化がないと予想していたのですんなりアップデートできると思っていましたが、予想は外れていろいろ障害を乗り越える必要が出てしまいました。
bundle install時、xapian-fullでエラー
bundle installを実行したときに、xapian-full gemをインストールしようとし、その際にエラーが発生しました。
Installing xapian-full (1.2.3) with native extensions Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. : configure: error: Neither uuid/uuid.h nor uuid.h found - required for brass, chert and flint (you may need to install the uuid-dev, libuuid-devel or e2fsprogs-devel package) rake aborted!
xapian-full gemは、全文検索機能らしいです。Redmine 2.1.4のGemfile,
2.2.0のGemfileを見てみましたが、どちらにもないgemでした。そこで、2.1.4で使っていたプラグインを調べると、DMSFがこれを使っていました。
この xapian-fullの全文検索は日本語には対応していないので、DMSFプラグインを入れるときのbundle install時に--without xapian で外していました。
xapian-fullをインストールする場合は、CentOS標準パッケージのlibuuid-develを入れることで解決します。似た名前のuuid-develパッケージでは解決しませんでした。
generate_secret_token がエラー
# bundle exec rake generate_secret_token rake aborted! database configuration does not specify adapter /var/lib/redmine-2.2.0/vendor/bundler/ruby/1.9.1/gems/ activerecord-3.2.9/lib/active_record/connection_adapters/ abstract/connection_specification.rb:47:in `resolve_hash_connection' / ...
database.ymlは2.1.4のものをコピーをしたので、なぜ認識できないかは不明です。
# bundle exec rake generate_secret_token RAILS_ENV=production ** Invoke generate_secret_token (first_time) ** Invoke config/initializers/secret_token.rb (first_time) ** Execute config/initializers/secret_token.rb ** Execute generate_secret_token #
RAILS_ENV=productionを付けることで回避できました。
2.1.4では、この指定は不要だったのですが、Railsが3.2.8から3.2.9に上がったことが影響しているのかもしれません。