libsvg2 と scim-bridge-gtk の RPM が削除できなくなる

2007-10-1 21:00
このエントリーをはてなブックマークに追加

x86_64 環境で i386 の RPM を削除する の方法で、以下のようなエラーが発生した x86_64 のサーバ (CentOS 5) がありました。

# rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" \
  | grep i[36]86 | xargs rpm -e
Invalid link from "ld-linux.so.2" to "/lib/ld-lsb.so.3": No such file or directory
ls: /etc/gtk-2.0/i?86*: そのようなファイルやディレクトリはありません
/usr/bin/update-gdk-pixbuf-loaders: line 44: /etc/gtk-2.0/i686-redhat-linux-gnu/gdk-pixbuf.loaders: そのようなファイルやディレクトリはありません
エラー: %postun(librsvg2-2.16.1-1.el5.i386) スクリプトの実行に失敗しました。終了ステータス 1
ls: /etc/gtk-2.0/i?86*: そのようなファイルやディレクトリはありません
/usr/bin/update-gtk-immodules: line 44: /etc/gtk-2.0/i686-redhat-linux-gnu/gtk.immodules: そのようなファイルやディレクトリはありません
エラー: %postun(scim-bridge-gtk-0.4.5-7.el5.i386) スクリプトの実行に失敗しました。終了ステータス 1
xargs: rpm: ステータス255で終了; 中断

RPM の削除でエラーが発生したようですが、scim-bridge-gtk-0.4.5-7.el5.i386 と librsvg2-2.16.1-1.el5.i386 だけが残って、他のパッケージは削除されていました。これらのパッケージを個別に削除しようとしても、やはりエラーとなります。

どうやら、RPM パッケージの削除の際に使われたり参照するファイルが別のパッケージに含まれていて、それらがすでに削除されてしまったために発生しているようです。SPEC ファイルへの依存関係の記述漏れか、RPM コマンドの不具合、もしくは RPM データベースの不整合が発生していたなどの理由も考えられます。

このままでは気持ち悪いので、依存関係のありそうな gdk-pixbuf と gtk2 の i386 版を yum でインストールして、それから削除を試みました。

# yum install gtk2.i386 gdk-pixbuf.i386

これにより、依存関係のある glibc や zlib などの i386 (i686) 版など 30 パッケージほどが再びインストールされてしました。これらは後で消すことにして、この状態でアンインストールしてみます。

# rpm -e librsvg2-2.16.1-1.el5.i386
# rpm -e scim-bridge-gtk-0.4.5-7.el5.i386

エラーは出ずにパッケージが削除できました。そして一時的にインストールした glibc や zlib などを、最初のコマンドを使ってアンインストールしました。

# rpm -qa --qf "%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}\n" \
  | grep i[36]86 | xargs rpm -e

他のパッケージでも似たようなトラブルが発生するケースもあると思いますが、無理矢理ファイルを消すのではなく、このように一度パッケージ群を入れ直して消した方がきれいに問題なく消せると思います。

  • ブックマーク : アクセス: 9,426回
  • カテゴリー : Linux
  • キーワード : ,

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

32 queries. HTML convert time: 0.065 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン