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で決定することのないようにすればインストールを行うことができるようになります。