CentOS7.1のサーバーにrailsをデプロイするとき、imagemagickやjpegoptimをインストールしておく必要があったため、インストールしました。
(これのデプロイのためです。)
libjpegインストール
まずはImageMagickのための各種モジュールをインストールしておきます。下準備です。
$ yum -y install libjpeg
$ yum -y install libjpeg-turbo-devel
$ yum -y install libpng-devel
ImageMagickインストール
上の準備ができたらさっそくImageMagickのインストールを行います。
こちらを参考にソースからインストールしました。
ソースはこちらから適切なバージョンを選択しましょう。
$ cd
$ mkdir imagemagick
$ cd imagemagick/
# 注:バージョンなしのもあるが、管理のためにもバージョン付きが良いでしょう。
$ wget http://www.imagemagick.org/download/ImageMagick-6.9.2-6.tar.gz
$ tar zxvf ImageMagick-6.9.2-6.tar.gz
# 解凍してできたディレクトリへ
$ cd ImageMagick-6.9.2-6/
$ ./configure
$ make
$ make install
# 対応されているフォーマットを確認
$ convert -list format
jpegoptimダウンロード
続いてjpegoptimをインストールします。
こちらを参考にソースからインストールしました。
$ cd
$ mkdir jpegoptim
$ cd jpegoptim/
# 適切な最新バージョンを調べて持ってきます。
$ wget https://www.kokkonen.net/tjko/src/jpegoptim-1.4.3.tar.gz
$ tar zxvf jpegoptim-1.4.3.tar.gz
$ ./configure
$ make
$ make install
デプロイ
インストールできたし、いざデプロイ!
(デプロイにはcapistranoを使っています。capistranoについては省略します。。)
$ cap staging deploy
...
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as deploy@A.B.C.D: bundle exit status: 5
bundle stdout: An error occurred while installing rmagick (2.15.4), and Bundler cannot
continue.
Make sure that `gem install rmagick -v '2.15.4'` succeeds before bundling.
bundle stderr: Nothing written
なんかでた。
コマンド打てよ的な文言が出てるので、サーバーにログインしてコマンド打ってみた。
$ gem install rmagick -v '2.15.4'
Building native extensions. This could take a while...
ERROR: Error installing rmagick:
ERROR: Failed to build gem native extension.
/usr/local/rbenv/versions/2.2.2/bin/ruby -r ./siteconf20151110-27792-1b4c8dp.rb extconf.rb
checking for gcc... yes
checking for Magick-config... yes
checking for outdated ImageMagick version (<= 6.4.9)... no
Package MagickCore was not found in the pkg-config search path.
Perhaps you should add the directory containing `MagickCore.pc'
to the PKG_CONFIG_PATH environment variable
No package 'MagickCore' found
なるほど、pkgが読み込めてないのかな?
調べてみると、PKG_CONFIG_PATH
を設定すれば良さそうだ。
調べてみたのを参考にデプロイするユーザーの.bashrc
を設定しました。
# 追加
export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig
再度デプロイ。
$ cap staging deploy
...
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as deploy@A.B.C.D: rake exit status: 1
rake stdout: rake aborted!
LoadError: libMagickCore-6.Q16.so.2: cannot open shared object file: No such file or directory - /home/deploy/apps/application/shared/bundle/ruby/2.2.0/extensions/x86_64-linux/2.2.0-static/rmagick-2.15.4/RMagick2.so
またなんかでた。
調べてみると、LD_LIBRARY_PATH
の設定が必要そう。
まずファイル'libMagickCore-6.Q16.so.2'の場所を探します。
$ find /usr/ -name libMagickCore-6.Q16.so.2
/usr/local/lib/libMagickCore-6.Q16.so.2
そしてこちらもデプロイするユーザーの.bashrc
を設定しました。
# 追加
export LD_LIBRARY_PATH=/usr/local/lib
こんどこそ!
$ cap staging deploy
...
INFO [772b6559] Finished in 0.072 seconds with exit status 0 (successful).
いえす!
完了です。
その他参考
CentOS7 いれた at 2015-03