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
$ 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
sqliteとpythonのsqliteモジュールも入れる。
# 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が復活。まちがって消しちゃったのかな。