rpmとyumがなくなった

昨日まであった'rpm'がなくなってる。yumもない。なぜだ。。追求していても仕方ないので復旧を試みることに。

ソースからコンパイル、リンクする

rhnからソースのパッケージをダウンロードする。これもrpmになってるので、正常な機械で展開してから現象が起きている対象機器へコピー。

$ rmp2cpio ./rpm-4.4.2.3-18.el5.src.rpm | cpio -id
$ scp ./rpm-4.4.2.3.tar.gz hogehoge:/tmp

hogehogeがrpmがなくなっちゃった機械。

ソースを展開してconfigure

$ tar -zxvf rmp-4.4.2.3.tar.gz
$ cd rpm-4.4.2.3
$ ./configure 
(中略)
checking beecrypt/beecrypt.h usability... no
checking beecrypt/beecrypt.h presence... no
checking for beecrypt/beecrypt.h... no
configure: error: rpm requires beecrypt

beecryptってのがいるらしいです。ということでダウンロードしてconfigure,make。beecryptのソースsourceforgeにあります。

$ tar -zxvf beecrypt-4.2.1.tar.gz
$ cd beecrypt-4.2.1
$ ./configure
$ make
# make install

再度rpmコンパイルリンク。

$ cd rpm-4.4.2.3
$ ./configure
$ make
(中略)
In file included from rpmmodule.c:5:
system.h:12:20: error: Python.h: No such file or directory

なにかヘッダファイルがみえないみたい。Python.hは/usr/include/python2.4にあるので、CFLAGSで指定する。

$ export CFLAGS=-I/usr/include/python2.4
$ ./configure
$ make
# make install

これでrpmは/usr/local/binへインストールされました。

yumをインストールする。

続いてyumをインストール。rhnからrpmパッケージをダウンロードして強制インストール。--forceと--nodepsをつけないと、pythonがないとかlibcがないとかいろいろいわれる。ちゃんと入ってるけど、さっきインストールしたrpmが認識していないだけなので(多分)問題ない。

# rpm -ivh --force --nodeps yum-3.2.22-20.el5.noarch.rpm

sqlitepythonsqliteモジュールも入れる。

# rpm -ivh --force --nodeps ./sqlite-3.3.6-5.x86_64.rpm 
# rpm -ivh --force --nodeps ./sqlite-devel-3.3.6-5.x86_64.rpm 
# rpm -ivh --force --nodeps ./python-sqlite-1.1.7-1.2.1.x86_64.rpm 

これでyumが復活。まちがって消しちゃったのかな。