ユユユユユ

webエンジニアです

rmagick をビルドする

 入社初週の恒例行事として既存プロジェクトの環境構築をしていた。

 幸いにしてほとんど障害なく進められたのはありがたい。このエントリに書くことさえ、大したことではない。しかし安易に検索エンジンに頼ったりせずに、自分の頭で考えてビルドを通せたことに、自分自身の成長を感じられて感慨があった。それがずいぶん嬉しかったので、記念に書き残しておく。

 さて、問題としてあったのは bundle install 時の rmagick のビルド失敗である。具体的にはこう。

% bundle install
Fetching rmagick 2.16.0
Installing rmagick 2.16.0 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.
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

 思えば数年前にも見たような覚えがある。で、そのときは思考停止して StackOverflow を漁っては出てくる回答をめくらめっぽうに実行して、うまくいくのを祈っていた。これも妙にクリアに覚えている。

 しかしわざわざ検索エンジンに頼らなくても、ここで必要な情報はきちんとフィードバックしてくれている。それはこの部分。

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

 pkg-config は imagemagick の依存先としてインストールされるライブラリであるはずなので、それを調べてみる。するとこちらにも親切で明快なインストラクションが与えられていた。

% brew info imagemagick@6
...
For pkg-config to find imagemagick@6 you may need to set:
export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"

 つまりこう環境変数を設定してあげればいいだけのようなので、そうする。その上で bundle install をリトライすると、万事オーライであった。

% export PKG_CONFIG_PATH="/usr/local/opt/imagemagick@6/lib/pkgconfig"
% bundle install

 正直にいって、 rmagick のコードを読んだことはないし、 imagemagickAPI もろくに知らない。 pkg-config についてはなにをやっているライブラリなのかすら知らない。それでいてビルドができたというだけで喜ぶのもおかしな話かもしれない。

 しかしこのあたりの些細なことがらに足を取られないということは、それだけスピード感を持って「利益を生み出す開発」にシフトできるということでもあるから、そこは自己評価してあげてもいいのかなとも思う。