« 環境変数にIDやPASSWORDを設定しなければならない状況で、ID/PASSWORDをファイルに平文で保存したりシェルの履歴に残したくない | メイン | スクリーンショットを印刷してもクオリティを落とさないようにする本当の方法 »

Macportsでインストールするときにハマった - どのバージョンのパッケージが有効なのか注意

「MacPorts」で「FFmpeg」をインストールしているときにこんなエラーが出てインストールの継続ができなかった。
% sudo port install ffmpeg
Password:
--->  Fetching XviD
--->  Attempting to fetch xvidcore-1.1.3.tar.bz2 from http://distfiles.macports.org/XviD
--->  Verifying checksum(s) for XviD
--->  Extracting XviD
--->  Applying patches to XviD
--->  Configuring XviD
--->  Building XviD
--->  Staging XviD into destroot
--->  Installing XviD @1.1.3_1
--->  Activating XviD @1.1.3_1
--->  Cleaning XviD
(略)
Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_x11_xorg-libX11/work/libX11-1.2.1" && ./configure --prefix=/opt/local --without-xcb " returned error 1
(略)
checking for XPROTO... configure: error: Package requirements (xproto >= 7.0.13) were not met.
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.

Alternatively you may set the XPROTO_CFLAGS and XPROTO_LIBS environment variables
to avoid the need to call pkg-config.  See the pkg-config man page for
more details.

Error: The following dependencies failed to build: libsdl xorg-libXext xorg-libX11 xorg-libXrandr xorg-randrproto libtheora libvorbis schroedinger liboil x264 yasm
Error: Status 1 encountered during processing.
エラーになった。再度実行。
% sudo port install ffmpeg   
Password:
--->  Configuring xorg-libX11
Error: Target org.macports.configure returned: configure failure: shell command " cd "/opt/local/var/macports/build/_opt_local_var_macports_sources_rsync.macports.org_release_ports_x11_xorg-libX11/work/libX11-1.2.1" && ./configure --prefix=/opt/local --without-xcb " returned error 1
(略)
「X11」のエラーっぽかったので色々弄ったけど解決しない。「Leopard」の「X11」はバグがあって「GIMP」を正常に使えない。このため、「X11」を入れ直していたので、「X11」だけでなく「GIMP」との依存関係も疑った。最終的に「GIMP」と「X11」を削除までした。
それでも解決せず。エラーをよく見ると「pkg-config」とあるので実行してみた。
% pkg-config
Must specify package names on the command line
パッケージ名がいる? @nankiさんの推測は、「pkg-config」から「xproto」が読めていないか、環境変数が設定されていないのではとの事。「Alternatively...」の下りと「Package requirements (xproto >= 7.0.13) were not met.」を見ると、確かにそんな感じがする。「xproto.pc」を探せば良いらしい。「.pc」というのは「pkg-config」用のファイル。
パッケージの依存関係を調べるのが「pkg-config」で、「pkg-config」に情報を提供するのが「.pc」ってことか...。
% locate xproto.pc
/opt/local/lib/pkgconfig/xproto.pc
/opt/local/var/macports/software/xorg-xproto/7.0.11_1/opt/local/lib/pkgconfig/xproto.pc
/usr/X11/lib/pkgconfig/dmxproto.pc
/usr/X11/lib/pkgconfig/xproto.pc
「.pc」ファイルはあった。
% locate xproto.pc | xargs ls -al
-rw-r--r--  2 root  admin  214  5  9 09:41 /opt/local/lib/pkgconfig/xproto.pc
-rw-r--r--  1 root  admin  214  1  5  2008 /opt/local/var/macports/software/xorg-xproto/7.0.11_1/opt/local/lib/pkgconfig/xproto.pc
-rw-r--r--  1 root  wheel  184 12 28 20:01 /usr/X11/lib/pkgconfig/dmxproto.pc
-rw-r--r--  1 root  wheel  212 12 28 20:04 /usr/X11/lib/pkgconfig/xproto.pc
権限的には見えてるはず。単純にインストールされていないとか...。いやそれなら「MacPorts」が解決してくれるはず。もしかして「.pc」だけあったりして。インストール状況を見てみる。
% port installed|grep "xproto"
  xorg-xproto @7.0.11_1 (active)
  xorg-xproto @7.0.15_0
原因が掴めたかも。古いバージョンのほうが有効になってる。「MacPorts」は存在しないパッケージの依存関係を調べて同時にインストールをしてくれるけど、既に入っているパッケージは変更しないと推測。確かに勝手にやられたら困る事もあるだろうなぁ。
% port active xorg-xproto
Unrecognized action "active"
「activate」らしい...。
% port activate xorg-xproto
--->  The following versions of xorg-xproto are currently installed:
--->    xorg-xproto @7.0.11_1 (active)
--->    xorg-xproto @7.0.15_0
Error: port activate failed: Registry error: Please specify the full version as recorded in the port registry.
ああ、バージョンの指定...。
% port activate xorg-xproto @7.0.15_0
--->  Activating xorg-xproto @7.0.15_0
Error: port activate failed: Image error: Another version of this port (xorg-xproto @7.0.11_1) is already active.
「active」は自動的に切り替わらないのか...。
% sudo port deactivate xorg-xproto @7.0.11_1
--->  Deactivating xorg-xproto @7.0.11_1
権限...。
% sudo port deactivate xorg-xproto @7.0.11_1
--->  Deactivating xorg-xproto @7.0.11_1
「active」な「xorg-xproto」なし。
% sudo port activate xorg-xproto @7.0.15_0
--->  Activating xorg-xproto @7.0.15_0
これで良いのかな。
% sudo port install ffmpeg
--->  Configuring xorg-libX11
--->  Building xorg-libX11
--->  Staging xorg-libX11 into destroot
--->  Installing xorg-libX11 @1.2.1_0
--->  Activating xorg-libX11 @1.2.1_0
--->  Cleaning xorg-libX11
(略)
@ujihisaさん達につっこまれながらもとりあえずOK。インストールを継続できた。これ知らなかったら確実にハマる。

コメントを投稿

(いままで、ここでコメントしたことがないときは、コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。承認されるまではコメントは表示されません。そのときはしばらく待ってください。)

Google

タグ クラウド