2007/07/29(日)[SUSE] rpmパッケージインストール時のハマリどころ

openSUSEでrpmパッケージを追加するには、YaSTを利用して行うのが一般的のようです。
YaSTでパッケージ追加を行うにはKonquerorからrpmを開けば以下のような画面となります。

[album:PC/Linux:rpm01.jpg]

ここでYaSTでパッケージをインストールを選べば以下のようなrootのパスワードを要求する画面が出てきます。

[album:PC/Linux:rpm02.jpg]

ここで、rootのパスワードを入力した後に決して「Enter」を入力してはいけません「OK」をクリックして決定する必要があります。
Enterを入力するとインストールを行うことができないばかりか、パッケージデータベースにアクセスした状態のままとなり、再度インストールを試みた場合に以下のようなエラーが発生してしまいます。

[album:PC/Linux:rpm03.jpg]

ここで、インストールを行うにはパッケージデータベースにアクセスしているプロセスをkillしなければいけません。それにはコンソールを開いて以下のように入力し調査します。

$ ps -ax | grep kdesu

いくつかのプロセスが表示されますが、この中で○○.rpmというファイルを引数に持つプロセスがあるはずでのでこれをkillすればいいことになります。

[album:PC/Linux:rpm04.jpg]
具体例として上のような結果が表示された場合、「5415 pts/2 Ss+ 0:00 kdesu -n --nonewdcop -- /opt/kde3/share/apps/krpmview/setup-temp-source /data/libdvdcss-1.2.8-2.network.i386.rpm」がkillする対象となりますので

$ kill 5415

でプロセスを殺すことができます。プロセスを殺すことができたら再度冒頭の手順を踏み、パスワード入力時にEnterで決定することのないようにすればインストールを行うことができるようになります。