sqlite3を消すとyumが使えなくなる
sqlite2のDBを使ったevents.php.gr.jpのイベント管理システムを試すために、sqlite3を消したらyumが使えなくなったしまったので、yumをrpmで入れたログです。
events.php.gr.jpのイベント管理システムが、codereposで公開されました。
「events.php.gr.jpがcodereposに」
これをさっそく試すべく、ソースを落としてきて、ローカルで動くようにいじっていました。
その記録は別のエントリで書くとして。
こちらは、DBにsqlite2を使用しているのですが、私のVMwareのCentOS4の環境では、yum install sqlite とすると、sqlite3がデフォルトで入りました。
schema ディレクトリ内の event.db.default を sqlite3で開こうとしても開けません。
$ cd schema/ $ cp event.db.default event.db $ sqlite3 event.db sqlite> .tables Error: file is encrypted or is not a database
IRCで、haltさんに聞いたところ、sqlite2 とのことで、sqlite3 で、当然開けないと。
というわけで、sqlite2 をインストールしようとしましたが、yum では入れられないので、いろいろ探したところ、rpm版のある場所を教えてもらいました。
ありがとうございます。>mumumu_nさん
sqlite2のrpmを入れる
# cd /usr/local/src/ # wget http://dag.wieers.com/rpm/packages/sqlite/sqlite-2.8.17-1.el4.rf.i386.rpm # rpm -ivh sqlite-2.8.17-1.el4.rf.i386.rpm Preparing... ########################################### [100%] package sqlite-3.3.6-2 (which is newer than sqlite-2.8.17-1.el4.rf) is already installed
すでに、sqlite3が入っているので、ぶつかってしまい、入れることが出来ません。
sqlite3を消してsqlite2を入れる
※これをすると、yumが使えなくなりますので、要注意
あんまり深く考えずに、yumで入ったsqlite3は yumコマンドで削除し、rpm版のインストールをしました。
# yum remove sqlite # rpm -ihv sqlite-2.8.17-1.el4.rf.i386.rpm
この後に、yumコマンドを使おうとしたところ、コマンドが見つからなくなってしまいました。
which yum をしても見つからないことに。。。
yumコマンドをrpmで入れる
この時点で、yumが消えたのは、慣れないrpmコマンドやら使ったので、間違って消してしまったのかと思い、yumをrpmで入れることにしました。
まずは、rpm版の yumを探すことに。
これは以外に早く見つけられたので、以下のel4をダウンロードすることにした。
http://dag.wieers.com/rpm/packages/yum/
http://dag.wieers.com/rpm/packages/yum/yum-2.4.2-0.4.el4.rf.noarch.rpm
# wget http://dag.wieers.com/rpm/packages/yum/yum-2.4.2-0.4.el4.rf.noarch.rpm # rpm -Uvh yum-2.4.2-0.4.el4.rf.noarch.rpm エラー: Failed dependencies: python-sqlite is needed by yum-2.4.2-0.4.el4.rf.noarch Suggested resolutions: /home/buildcentos/CENTOS/en/4.0/i386/CentOS/RPMS/python-sqlite-1.1.7-1.2.1.i386.rpm
なにやら、putyon-sqliteが無いとのことでエラーになってしまいます。
すでに、1度 yumで入れているので、ローカルのキャッシュを探して、それを使うことにします。
ファイル探すのに、locateを使うために updatedbをまず発行します。
# updatedb
# locate python-sqlite /var/cache/yum/base/packages/python-sqlite-1.1.7-1.2.1.i386.rpm /var/cache/yum/base/headers/python-sqlite-1.1.7-1.2.1.i386.hdr # rpm -Uvh /var/cache/yum/base/packages/python-sqlite-1.1.7-1.2.1.i386.rpm エラー: Failed dependencies: libsqlite3.so.0 is needed by python-sqlite-1.1.7-1.2.1.i386 Suggested resolutions: /home/buildcentos/CENTOS/en/4.0/i386/CentOS/RPMS/sqlite-3.3.6-2.i386.rpm
エラーなので、sqlite3を探して入れます。
# locate sqlite-3 /var/cache/yum/base/packages/sqlite-3.3.6-2.i386.rpm /var/cache/yum/base/headers/sqlite-3.3.6-2.i386.hdr # rpm -ivh /var/cache/yum/base/packages/sqlite-3.3.6-2.i386.rpm Preparing... ########################################### [100%] 1:sqlite ########################################### [100%]
入れられたので、python-sqlite と yum を入れます。
# rpm -ivh /var/cache/yum/base/packages/python-sqlite-1.1.7-1.2.1.i386.rpm Preparing... ########################################### [100%] 1:python-sqlite ########################################### [100%] # rpm -ivh yum-2.4.2-0.4.el4.rf.noarch.rpm Preparing... ########################################### [100%] 1:yum ########################################### [100%]
これで、やっと、yumが使えるようになりました。
yumコマンドが pythonを使っていることは知っていたのですが、sqliteを使っていることは知りませんでした。
復旧し終わってから、sqlite2用のdbファイルのdumpを取っておけばよかったと後悔。。。