LoginSignup
2
3

More than 5 years have passed since last update.

CentOS7にimagemagickとjpegoptimのインストール

Last updated at Posted at 2015-11-10

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を設定しました。

.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を設定しました。

.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

2
3
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3