rpmが削除できない@CentOS 5.2
Posted on 4 月 21st, 2009 by mazn
rpm -e でパッケージ削除中に誤ってCtrl-Cを押してしまい、中途半端に削除が中断してしまい、完全にパッケージを削除できなくなってしまいました。
# rpm -e postgresql-server サービス postgresql に関する情報の読み込み中にエラーが発生しました: そのようなファイルやディレクトリはありません エラー: %preun(postgresql-server-8.1.11-1.el5_1.1.i386) スクリプトの実行に失敗しました。終了ステータス 1
rpmのデータベースが壊れたわけではないようで、rpm –rebuildをしても直りません。仕方なく以下の方法で直しました。
完全に削除できていないので、再度同じrpmをインストールしてあげます。まずはインストールされていたパッケージを用意します。ここではOS付属のpostgresql-serverを例にあげます。
OS付属のパッケージはyumでインストールできますが、パッケージのダウンロードだけという機能はありませんので、Web上から直接ダウンロードするか、以下のようにしてダウンロードだけできるユーティリティをインストールしてダウンロードします。
# yum install yum-utils ~出力省略~ # yumdownloader postgresql-server
/var/cache/yum/base/packages にrpmファイルがダウンロードされるので、ここに移動します。
# cd /var/cache/yum/base/packages # ls postgresql-server-8.1.11-1.el5_1.1.i386.rpm
これを普通にインストールしようとしても、すでにインストールされているのでインストールできないので、–forceオプションをつけてインストールします。
# rpm -ivh --repackage postgresql-server-8.1.11-1.el5_1.1.i386.rpm 準備中... ########################################### [100%] パッケージ postgresql-server-8.1.11-1.el5_1.1 は既にインストールされています。 # rpm -ivh –force postgresql-server-8.1.11-1.el5_1.1.i386.rpm 準備中… ########################################### [100%] 1:postgresql-server ########################################### [100%]
インストール完了後、再度削除してあげると綺麗に削除されます。
# rpm -e postgresql-server
もう少し壊れにくいように作ってもらいたいですね。
Discussion Area - Leave a Comment