Redmine で RMagick が機能しなくなっていた

久しぶりに Redmine で遊んでいたら、「RMagickが利用可能 (オプション)」が×になっていることに気が付きました。調べると RMagick が libMagickCore.so を見つけられなくなったようです。yum update したせいでしょうか。

bundle console を使って RMagick を呼び出してみます。

[text]# cd /path/to/redmine/
# bundle console
Unable to require rbpdf. NameError: uninitialized constant RBPDF::ActionView.
irb(main):001:0> require ‘RMagick’
LoadError: libMagickCore.so.2: cannot open shared object file: No such file or directory – /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rmagick-2.13.4/lib/RMagick2.so
from /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rmagick-2.13.4/lib/rmagick_internal.rb:11:in require'
from /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rmagick-2.13.4/lib/rmagick_internal.rb:11:in
<top (required)>’
from /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rmagick-2.13.4/lib/RMagick.rb:1:in require'
from /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/rmagick-2.13.4/lib/RMagick.rb:1:in
<top (required)>’
from (irb):1:in require'
from (irb):1
from /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.8.0.pre/lib/bundler/cli/console.rb:14:in
run’
from /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.8.0.pre/lib/bundler/cli.rb:300:in console'
from /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.8.0.pre/lib/bundler/vendor/thor/command.rb:27:in
run’
from /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.8.0.pre/lib/bundler/vendor/thor/invocation.rb:121:in invoke_command'
from /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.8.0.pre/lib/bundler/vendor/thor.rb:363:in
dispatch’
from /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.8.0.pre/lib/bundler/vendor/thor/base.rb:440:in start'
from /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.8.0.pre/lib/bundler/cli.rb:10:in
start’
from /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.8.0.pre/bin/bundle:20:in block in <top (required)>'
from /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.8.0.pre/lib/bundler/friendly_errors.rb:6:in
with_friendly_errors’
from /opt/rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/bundler-1.8.0.pre/bin/bundle:18:in <top (required)>'
from /opt/rbenv/versions/2.1.5/bin/bundle:23:in
load’
from /opt/rbenv/versions/2.1.5/bin/bundle:23:in `<main>'[/text]

どうやら libMagickCore.so.2 がないらしいです。ファイルの場所を調べるため、 ImageMagick がどこにインストールされているか見てみます。

[text]※一部抜粋
/usr/lib64/libMagickCore.so.5
/usr/lib64/libMagickCore.so.5.0.0
/usr/lib64/libMagickWand.so.5
/usr/lib64/libMagickWand.so.5.0.0[/text]

libMagickCore.so.2 なんてないじゃないですか。yum update で 5 になったのかもしれません。rmagick をリビルドしてみます。

[text]# gem uninstall rmagick
Select gem to uninstall:
1. rmagick-2.13.4
2. rmagick-2.15.4
3. All versions[/text]

3 の All で行きます。

[text]Successfully uninstalled rmagick-2.13.4
Successfully uninstalled rmagick-2.15.4[/text]

消した rmagick を再インストールします。

[text]Fetching: rmagick-2.13.4.gem (100%)
Building native extensions. This could take a while…
Please report any bugs. See https://github.com/gemhome/rmagick/compare/RMagick_2-13-2…master and https://github.com/rmagick/rmagick/issues/18
Successfully installed rmagick-2.13.4
Parsing documentation for rmagick-2.13.4
Installing ri documentation for rmagick-2.13.4
Done installing documentation for rmagick after 7 seconds
1 gem installed[/text]

[text]Fetching: rmagick-2.15.4.gem (100%)
Building native extensions. This could take a while…
Successfully installed rmagick-2.15.4
Parsing documentation for rmagick-2.15.4
Installing ri documentation for rmagick-2.15.4
Done installing documentation for rmagick after 7 seconds
1 gem installed[/text]

無事インストールできたようです。

Apache 再起動して完了です。