non vorrei lavorare

ブログ名の通りです。javascript three.js mruby rust OCaml golang julialang blender

Ubuntu16.04LTSでapt install imagemagick-devしてもImageMagickがリンクされない件

おはようございます。長男発熱で実家に数日いましたが、次男の時とは違い徐々に回復して、自宅に戻ってきました。kjunichiです。

背景

mruby-mrmagickを最近はWindowsメインで開発すること多く、 久しぶりにLinux環境でビルドをしようとして躓いた。

トラブル

Magick++-configがなくてmruby-mrmagickのビルドで怒られた。

sudo apt install libmagick++-dev

と、それっぽいパッケージを入れたが、それでも Magick++-configが見つからない!と怒られる。

調査

dpkg -L libmagick++-dev
/.
/usr
/usr/share
/usr/share/doc
/usr/share/doc/libmagick++-dev
/usr/share/doc/libmagick++-dev/copyright
/usr/share/doc/libmagick++-dev/changelog.Debian.gz
/usr/share/doc/libmagick++-dev/NEWS.Debian.gz

あれ、.soファイルすらインストールされていない!

じゃぁ、/usr/bin/Magick++-configはどのパッケージで入るのか?

apt-fileコマンドで確認できた。

以下の様にapt install直後にデータベースの更新をする必要がある。

sudo apt install apt-file
apt-file update
apt-file search /usr/bin/Magick++-config
graphicsmagick-libmagick-dev-compat: /usr/bin/Magick++-config

ということで、graphicsmagick-libmagick-dev-compatパッケージを入れれば良いことが分かった。

sudo apt install graphicsmagick-libmagick-dev-compat
dpkg -L graphicsmagick-libmagick-dev-compat
/.
/usr
/usr/include
/usr/bin
/usr/share
/usr/share/doc
/usr/share/doc/graphicsmagick-libmagick-dev-compat
/usr/share/doc/graphicsmagick-libmagick-dev-compat/copyright
/usr/share/perl5
/usr/share/perl5/Image
/usr/share/perl5/Image/Magick.pm
/usr/share/man
/usr/share/man/man3
/usr/share/man/man3/Image::Magick.3.gz
/usr/share/man/man1
/usr/lib
/usr/lib/pkgconfig
/usr/include/Magick++
/usr/include/Magick++.h
/usr/include/magick
/usr/include/wand
/usr/bin/Wand-config
/usr/bin/Magick-config
/usr/bin/Magick++-config
/usr/share/doc/graphicsmagick-libmagick-dev-compat/changelog.Debian.gz
/usr/share/man/man1/Wand-config.1.gz
/usr/share/man/man1/Magick-config.1.gz
/usr/share/man/man1/Magick++-config.1.gz
/usr/lib/libMagick++.so
/usr/lib/libMagick.so
/usr/lib/libWand.so
/usr/lib/pkgconfig/ImageMagick++.pc
/usr/lib/pkgconfig/ImageMagick.pc

以下の様にGraphicsMagickにシンボリックリンクが張られていた。

ls -l /usr/lib/libMagick++.so 
lrwxrwxrwx 1 root root 22 Dec 18  2015 /usr/lib/libMagick++.so -> libGraphicsMagick++.so

学んだこと

Ubuntu 16.04LTSでは普通にMagick++-configしてリンクするとgraphicsmagickが使われる。

apt-fileコマンド便利

まえまえから、便利コマンドっぽいことはうっすら感じていたが、ヘタレが使う軟弱なツールだろ!と 敬遠していたwしかし、今回のトラブルで役に立ち、常用することにするw。

関連記事