2019-07-31

tobijibu

AWS MarketplaceでインストールしたRedmineでDMSFを使う

EC2でAWS MarketplaceからRedmineをインストールしました。とても手軽でとりあえず使うには充分です。 そのRedmineにDMSFをインストールしようとしたのですがエラーが出てしまい泥沼にハマってしまいました。

環境 EC2
Redmine 4.0.4-3
Ubuntu 16.04

インストール

色々迷いに迷って結局は公式に記載されている通りの手順です。

必要なパッケージを追加

$ sudo apt-get install xapian-omega ruby-xapian libxapian-dev \
xpdf poppler-utils antiword unzip catdoc libwpd-tools libwps-tools \
gzip unrtf catdvi djview djview3 uuid uuid-dev xz-utils libemail-outlook-message-perl

DMSFソースを取得して設置

$ cd /tmp
$ git clone https://github.com/danmunn/redmine_dmsf.git
$ cd redmine_dmsf
$ git checkout devel-2.0.1
$ cp -R /tmp/redmine_dmsf /opt/bitnami/apps/redmine/htdocs/plugins
$ cd /opt/bitnami/apps/redmine/htdocs

ここでのポイントはブランチをdevel-2.0.1に切り替える点です。

現在(2019/07/30時点)提供されているmasterブランチは手順通りインストールしようとするとエラーになります。 そのため、開発版と思われるブランチを指定しています。

以下のように直接tagを指定してcloneしても良いでしょう。

git clone -b devel-2.0.1 https://github.com/danmunn/redmine_dmsf.git

取得したファイルをBitnamiが管理しているRedmineプラグインディレクトリへコピーします。

$ cp -R /tmp/redmine_dmsf /opt/bitnami/apps/redmine/htdocs/plugins

インストール実行

他のプラグインと同じようにインストールしてRedmineを再起動します。 再起動はBitnamiの再起動スクリプトがあるのでそれを使います。

$ cd /opt/bitnami/apps/redmine/htdocs
$ bundle install
$ bundle exec rake redmine:plugins:migrate NAME=redmine_dmsf RAILS_ENV="production"
$ sudo /opt/bitnami/ctlscript.sh restart

以上で完了です。ただ開発版だと思いますので動作する安定版がリリースされたら早めに移行しておきたいところです。

これ以降は蛇足です。インストール出来ずにハマってしまった記録を残します。



色々と試した記録

DMSFインストール直後にエラーが発生しRedmineが動かなくなりました。一つひとつエラーを追って解決していきました。

ログを確認します。

/opt/bitnami/apache2/logs/error_log
Could not spawn process for application /opt/bitnami/apps/redmine/htdocs/: An error occurred while starting up the preloader.
  Error ID: ffebca3a
  Error details saved to: /tmp/passenger-error-iqZlYb.html
  Message from application: No such file to load -- mongo.rb (LoadError)
  /opt/bitnami/ruby/lib/ruby/gems/2.5.0/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:291:in `require'
  /opt/bitnami/ruby/lib/ruby/gems/2.5.0/gems/activesupport-5.2.3/lib/active_support/dependencies.rb:291:in `block in require'
...

mongo.rbが無いようです。 そこで下記を参考にGemfileを修正しました。

https://github.com/danmunn/redmine_dmsf/issues/1011#issuecomment-498950292
# Dav4Rack
gem 'ox'
gem 'mongo' <- 追加
group :test do
  gem 'rails-controller-testing'
end

そして再度インストール

$ cd /opt/bitnami/apps/redmine/htdocs
$ bundle install
$ sudo /opt/bitnami/ctlscript.sh restart

するとログのエラー内容が変わりました。

/opt/bitnami/apache2/logs/error_log
Could not spawn process for application /opt/bitnami/apps/redmine/htdocs/: An error occurred while starting up the preloader.
  Error ID: f34ef3e4
  Error details saved to: /tmp/passenger-error-SvcXkj.html
  Message from application: uninitialized constant Redmine::IntegrationTest (NameError)
  /opt/bitnami/apps/redmine/htdocs/plugins/redmine_dmsf/lib/redmine_dmsf/test/integration_test.rb:24:in `'
  /opt/bitnami/apps/redmine/htdocs/plugins/redmine_dmsf/lib/redmine_dmsf/test/integration_test.rb:23:in `'
...

インストール時のオプションの指定が足りないようでしたので、以下を確認して再インストールします。

https://github.com/danmunn/redmine_dmsf/issues/984#issuecomment-481220910
$ cd /opt/bitnami/apps/redmine/htdocs
$ bundle install --without test
$ sudo /opt/bitnami/ctlscript.sh restart

ここまでやったもののエラー内容は変わらず動きませんでした。 一旦DMSFをアンインストールして元に戻します。

$ cd /opt/bitnami/apps/redmine/htdocs
$ bundle exec rake redmine:plugins:migrate NAME=redmine_dmsf VERSION=0 RAILS_ENV=production
$ rm plugins/redmine_dmsf -Rf
$ sudo /opt/bitnami/ctlscript.sh restart

あらためてDMSFのリポジトリを見にいくと以下の説明がありました。

Full-text search (optional) If you want to use fulltext search abilities, install xapian packages. In case of using of Bitnami stack or Ruby installed via RVM it might be necessary to install Xapian bindings from sources. See https://xapian.org for details.
引用 - Full-text search (optional)

全文検索したい場合はxapianをインストールする必要があるようです。 RVMを使ってインストールされたRubyやBitmaniを使っている場合、xapianを手動インストールしなければならないかも、とのこと。

DMSFの全文検索は日本語に対応していないようですし、xapianも不要だと思うのですが、 Bitnamiを利用しているのでxapianを手動インストールすることにしました。

xapian-coreをインストール

$ cd /tmp
$ wget https://oligarchy.co.uk/xapian/1.4.12/xapian-core-1.4.12.tar.xz
$ tar xf xapian-core-1.4.12.tar.xz
$ cd xapian-core-1.4.12
$ ./configure --prefix=/opt
$ make
$ sudo make install

xapian-bindingsをインストール

$ cd /tmp
$ wget https://oligarchy.co.uk/xapian/1.4.12/xapian-bindings-1.4.12.tar.xz
$ tar xf xapian-bindings-1.4.12.tar.xz
$ ./configure XAPIAN_CONFIG=/opt/bin/xapian-config
$ make
$ sudo make install

omegaをインストール

omegaをインストールしようとするとpcreが必要とのことなので、 先にpcreをインストールします。

$ cd /tmp
$ wget https://ftp.pcre.org/pub/pcre/pcre-8.43.tar.gz
$ tar zvxf pcre-8.43.tar.gz
$ cd pcre-8.43
$ ./configure --prefix=/opt
$ make
$ sudo make install

omegaをインストールします。

$ cd /tmp
$ wget https://oligarchy.co.uk/xapian/1.4.12/xapian-omega-1.4.12.tar.xz
$ tar xf xapian-omega-1.4.12.tar.xz
$ cd xapian-omega-1.4.12
$ ./configure XAPIAN_CONFIG=/opt/bin/xapian-config PCRE_CONFIG=/opt/bin/pcre-config
$ make
$ sudo make install

と、ここでエラーになります。omegamakeが通りません。

VirtualBoxで立てたUbuntuを使って試すとちゃんとmakeが通ったので、 Bitnamiと相性が悪いのかもしれません。

ここで手動インストールは諦めました。