ソースコード・リテラシーのススメ

第7回 英文ドキュメントをどう読むか[実践編]

この記事を読むのに必要な時間:およそ 6 分

configure スクリプトの実行

こういった感じで README, NEWS, INSTALL の3つのドキュメントを5分程度で読み終えてから,./configureを実行し,必要なライブラリが揃っているかを調べてみました。

 kojima@xeon:~/Gimp/gimp-2.4.0$ ./configure
 checking for a BSD-compatible install... /usr/bin/install -c
 checking whether build environment is sane... yes
 ...
 checking for FONTCONFIG... yes
 checking for PANGOFT2... no
 configure: error: Test for PangoFT2 failed.
 *** We require Pango with the optional support for FreeType2 compiled in.
 *** See the file 'INSTALL' for more help.

おっと,PANGOFT2が見つからないと言われてエラーになってしまいました。エラーメッセージにも表示されているように INSTALLファイルを改めて開いてみます。先にざっと眺めた際に必要なライブラリ類については前半の方にまとめてあったのを思いだし,該当箇所を調べてみました。

   3. We require PangoFT2, a Pango backend that uses FreeType2. Make
      sure you have FreeType2 and fontconfig installed before you
      compile Pango.  FreeType2 can be downloaded from
   ...

FreeType2ライブラリに対応したPango(PangoFT2)ライブラリが必要だとのことですが,今の環境には両者ともデフォルトで入っていたはずです。このような場合は,configureのログ(config.log)を見て,エラーになっている箇所を調べるのが手っ取り早いでしょう。

config.logを開き,エラーになった PANGOFT2をキーワードとして検索すると,次のような箇所が見つかりました。

 configure:28420: checking for PANGOFT2
 configure:28428: $PKG_CONFIG --exists --print-errors "pangoft2 >= 1.12.2"
 Requested 'pangoft2 >= 1.12.2' but version of Pango FT2 is 1.10.2
 configure:28431: $? = 1
 ...
 configure:28481: error: Test for PangoFT2 failed.
 *** We require Pango with the optional support for FreeType2 compiled in.
 *** See the file 'INSTALL' for more help.

この結果を見ると,GIMP 2.4が必要とするのはpangoft2のバージョン 1.12.2以上だけど,手元の環境には 1.10.2 という古いバージョンしかないためにエラーになっていたことが分かります。pangoのバージョンの問題であることを認識した上で改めて INSTALL ファイルの該当箇所を見てみると,確かに

      wants Pango (>= 1.12.2).  Sources for these can be grabbed from
      ftp://ftp.gtk.org/.

などとありました。どうやらpangoの新しいバージョンを作成することが先なようです。そこでGIMP 2.4のコンパイルは一時棚上げにして,pangoの新しいバージョンの作成に取りかかりました。

その後の展開

pangoをパッケージ化してインストールした後,GIMP 2.4のconfigureスクリプトで再度チェックすると,今度はpygtkのバージョンが古いと言われました。そのためpygtkをビルドしようとするとpygtkが使っているpygobjectが古いと言われて…,となかなか大変でしたが,何とか必要なソフトウェアを揃えてGIMP2.4パッケージを作成することができました。

今回の例を見るだけでは,READMEやINSTALLファイルを読むことよりもconfigureスクリプトを実行して必要なソフトウェアやバージョンを調べることの方が重要に見えるかも知れません。しかし,事前にREADMEやINSTALLファイルを眺めることでハマりやすいポイント(古いバージョンはアンインストールする,必須のライブラリとそのバージョン等) をチェックしておいたおかげで,configureスクリプトがエラー停止した際も問題箇所を簡単に絞り込めたように思います。

たとえて言うならば,configureスクリプトはGPS携帯のようなもので,現在地は詳しくわかるものの,全体の中での位置を把握するのが難しいのに対し,READMEやINSTALLファイルは全体の見取り図のようなもので,あらかじめ予想されるトラブルや注意点などを大まかに教えてくれますが,実際にトラブルが発生した個々のポイントまでは扱えません。

問題の迷路で迷子にならないためには,具体的な現象に注目した微視的な視点だけではなく,全体の構図をとらえた鳥瞰的な視点を持つことが重要です。その意味でも,READMEやINSTALLといった文書とconfigureスクリプトといったツールはうまく組み合わせて使うことが大事です。

著者プロフィール

こじまみつひろ

Plamo Linuxとりまとめ役。もともとは人類学的にハッカー文化を研究しようとしていたのが,いつの間にかミイラ取りがミイラになってOSSを仕事にするようになってしまいました。最近はスペシャリスト養成を目的とした専門職大学院で教壇に立ったりもしています。

URLhttp://www.linet.gr.jp/~kojima/Plamo/index.html