LoginSignup
5
2

More than 3 years have passed since last update.

Rails6 + CentOS8にRMagickをサクッと導入する ( MiniMagicも)

Last updated at Posted at 2020-03-28

railsで画像アップロード機能を作ったとき、
「クソッ、画像が回転してしまう!!!」
という場面にぶち当たる方、多くいらっしゃると思います。

そこで軽くググって、
「RMagickを導入すればいいのか!!!」

「gem "rmagick"」、bundle install

なにかしらのエラーが発生。
「できねえじゃねえか!!!」

というのを経験した方に読んでいただければといいと思います。

バージョン、前提条件

Ruby 2.6.5
Ruby on Rails 6.0.2.1
CentOS 8

なお、画像アップロードにはActiveStorageは使わず、carrierwaveを使っています。(carrierwaveの説明はここではしません。)
余談ですが、carrierwaveではなくActiveStorageを使うメリットってなんですかね...
もしもActiveStorage絶対使うマンの方いらっしゃれば教えてください。。。

CentOS8にImageMagickをダウンロード

1. 開発ツール・その他必要なパッケージを入れます。

$ sudo dnf groupinstall 'Development Tools'
$ sudo dnf install bzip2-devel freetype-devel libjpeg-devel libpng-devel libtiff-devel giflib zlib-devel ghostscript libwmf libtool-ltdl-devel libX11-devel libXext-devel libXt-devel libxml2-devel librsvg2-devel

2. wgetでソースをインストール

$ wget https://www.imagemagick.org/download/ImageMagick.tar.gz

3. ソースの解凍

$ tar xvfz ImageMagick.tar.gz

4.コンパイル

$ cd ImageMagick-7.0.10-12/
$ ./configure
$ make
$ sudo make install

5.パスの設定

$ echo 'export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig' >> ~/.bash_profile
$ echo 'export LD_LIBRARY_PATH=/usr/local/lib' >> ~/.bash_profile
$ source .bash_profile

Gemに追加

Gemfile
gem "rmagick"
$ bundle install

こんだけです。

追記: rails g taskでエラーがでたため、MiniMagickに鞍替え

rails g taskで以下のエラーが出た。

/home/user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/bootsnap-
1.4.6/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:23:in
`require': libMagickCore-7.Q16HDRI.so.7: cannot open shared object file: No such file or directory - 
/home/user/.rbenv/versions/2.6.5/lib/ruby/gems/2.6.0/gems/rmagick-4.1.0/lib/RMagick2.so (LoadError)

...は?ちょっと分からなかったため、MiniMagickを使うことに。(スミマセン、もうちょっと調べてきます。。。)

Gemfile
# gem "rmagick"
gem "minimagick"

また、uploader(ここは解説なし)も変更

# include CarrierWave::RMagick
include CarrierWave::MiniMagick

参考

https://www.rootlinks.net/2019/11/08/install-imagemagick-on-centos-8/
https://qiita.com/tajihiro/items/3f10c59f19fcd0a9e660
https://news.mynavi.jp/article/20190222-775521/

5
2
1

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
5
2