Mon Sep 29, 2003 [長年日記]

#1 [Linux] XFce

とりあえず出勤前のイッパツってことで、先日ビルドしたXFree86-4.3.0をrpm -Fでインストールしてみました。結果は依存関係が解決できずに失敗。依存性の欠如として報告されたものは以下のもの。
  • /usr/X11R6/bin/xauth
  • libGL.so.1
  • libGLcore.so.1
  • libGLU.so.1
  • /usr/bin/ttmkfdir
XFree86-4.3.0にはXFree86-xauth-4.3.0ってパッケージがあるんですが、XFree86-4.2.0には無いので、これはすぐ解決できそう... LibGL系についてはMesaに入ってるんですが、確かnVIDIAのドライバ使ってる時はインストールしちゃいけなかったような記憶が微かにあるので要調査。ttmkdirはfont-utilsに入ってるんだけど、なんで依存性欠如なのか判らず... ま、帰ってから調べますかね。

#2 [] パッケージビルド

うん。rpmは楽チンだよね>おが

その「楽チン」をするためにパッケージを作ってるんだけど、そこで苦労しているという... 傍から見れば本末転倒かもしれないけど、やっぱりOpenSourceは自分でコンパイルしなきゃね(笑)

#3 [Linux] XFce (2)

今朝の状況で判るように、rpm -Fではパッケージ依存性が解決できないので、rpm -Uでインストールしてみます。そのためには、新しいパッケージの中で必要なものを選ばなければいけません。

現在インストールされているXFree86関係のパッケージ情報から、新しいパッケージを選ぶために、次のような簡単なスクリプトを作りました。

#!/bin/sh
 
cd /usr/src/redhat/RPMS/i386
for rpmpkg in XFree86-*4.3.0*rpm
do
    rpm -qp --provides ${rpmpkg} | egrep '^[^=]+?[:blank]+?=[:blank]+?.+' | \
    while read pkgname equal version
    do
	rpm -q ${pkgname} >/dev/null 2>&1 && echo ${rpmpkg}
    done
done
何をやっているかと言うと、新しい4.3.0のパッケージファイルから、それぞれ何がprovideされるかを抜きだし、そいつが今の4.2.0のどのパッケージに属するのかを確認し、パッケージが確認できたファイルの一覧を出力する... といったことをしています。こいつの出力は次のようになりました。
[yamag@debussy tmp]$ ./rpmchk.sh
XFree86-100dpi-fonts-4.3.0-2.i386.rpm
XFree86-4.3.0-2.i386.rpm
XFree86-75dpi-fonts-4.3.0-2.i386.rpm
XFree86-ISO8859-15-100dpi-fonts-4.3.0-2.i386.rpm
XFree86-ISO8859-15-75dpi-fonts-4.3.0-2.i386.rpm
XFree86-ISO8859-2-100dpi-fonts-4.3.0-2.i386.rpm
XFree86-ISO8859-2-75dpi-fonts-4.3.0-2.i386.rpm
XFree86-ISO8859-9-100dpi-fonts-4.3.0-2.i386.rpm
XFree86-ISO8859-9-75dpi-fonts-4.3.0-2.i386.rpm
XFree86-Xnest-4.3.0-2.i386.rpm
XFree86-Xvfb-4.3.0-2.i386.rpm
XFree86-base-fonts-4.3.0-2.i386.rpm
XFree86-cyrillic-fonts-4.3.0-2.i386.rpm
XFree86-devel-4.3.0-2.i386.rpm
XFree86-doc-4.3.0-2.i386.rpm
XFree86-font-utils-4.3.0-2.i386.rpm
XFree86-libs-4.3.0-2.i386.rpm
XFree86-tools-4.3.0-2.i386.rpm
XFree86-truetype-fonts-4.3.0-2.i386.rpm
XFree86-twm-4.3.0-2.i386.rpm
XFree86-xdm-4.3.0-2.i386.rpm
XFree86-xfs-4.3.0-2.i386.rpm
[yamag@debussy tmp]$ 
ということで、上記のパッケージとMesa関連のパッケージを同時にrpm -Uすればインストールできるはずですが、ビデオドライバとの絡みでMesa関連は外してやってみることにします。これでlibGL系の依存関係だけが解決できていないのであれば、依存性無視でインストールしてもいいはずです。

で、やってみましたが、パッケージが上記だけでは足りず XFree86-xauth-4.3.0-2.i386.rpm と XFree86-libs-data-4.3.0-2.i386.rpm も指定する必要がありました。これらは4.2.0には無かったパッケージということですね。で、結果はといいますと、libGL.so.1, libGLcore.so.1, libGLU.so.1以外に/usr/bin/ttmkfdir が解決できない状態となりました。このファイルは現在どのパッケージに含まれているかと言うと...

[yamag@debussy i386]$ rpm -qf /usr/bin/ttmkfdir
XFree86-font-utils-4.2.0-8
[yamag@debussy i386]$
ということでXFree86-font-utilsに含まれていますが、4.3.0になると...
[yamag@debussy i386]$ rpm -qlp XFree86-font-utils-4.3.0-2.i386.rpm             
/usr/X11R6/bin/mkfontdir
/usr/X11R6/bin/mkfontscale
/usr/X11R6/man/man1/mkfontdir.1x.gz
/usr/X11R6/man/man1/mkfontscale.1x.gz
[yamag@debussy i386]$
というようにXFree86-font-utilsには含まれていません。どうしたものかとググッてみたところ、こんな嘘のような記事を見つけました。

う〜む。これが本当だとしたらどうしたもんかなぁ。どこかredhat9がインストールされてるところで、ttmkfdirがどのパッケージに入ってるか探してみりゃいいんだろうけど... おっと、そうでした。ここ(tdiary)がそうでした。

[yamag@tdiary yamag]$ rpm -qf /usr/bin/ttmkfdir
ttmkfdir-3.0.9-1
[yamag@tdiary yamag]$
うげっ! ttmkfdirなんてパッケージができてたんですか。早速ダウンロードしてビルドしましょう。
G[root@debussy SRPMS]# rpm --rebuild ttmkfdir-3.0.9-1.src.rpm
ttmkfdir-3.0.9-1.src.rpm をインストール中
Executing(%prep): /bin/sh -e /var/tmp/rpm-tmp.61609
...(中略)...
書き込み中: /usr/src/redhat/RPMS/i386/ttmkfdir-3.0.9-1.i386.rpm
Executing(%clean): /bin/sh -e /var/tmp/rpm-tmp.95360
+ umask 022
+ cd /usr/src/redhat/BUILD
+ cd ttmkfdir-3.0.9
+ rm -rf /var/tmp/ttmkfdir-root
+ exit 0
Executing(--clean): /bin/sh -e /var/tmp/rpm-tmp.95360
+ umask 022
+ cd /usr/src/redhat/BUILD
+ rm -rf ttmkfdir-3.0.9
+ exit 0
[root@debussy SRPMS]#
はい、うまくできました。こいつとさっきのパッケージを合わせてrpm -Uすれば、依存関係が解決できないのはlibGL系だけになるはずです。

といったところで、午前二時を過ぎましたので、今日のところはこれまでにしたいと思います。

[]

«前の日記(Sun Aug 31, 2003) 最新 次の日記(Wed Oct 01, 2003)»