2008年11月22日

Portage データベースをcdbからSQLiteへ移行

Portageを最新(Portage 2.1.4.5)にすると、Portageデータベースのcdbがおかしくなった。

Error: Failed to import module 'cache.sqlite.database' File "/usr/lib/portage/pym/portage.py", line 1743, in load_best_module mod = load_mod(best_mod) File "/usr/lib/portage/pym/portage.py", line 156, in load_mod mod = __import__(modname) File "/usr/lib/portage/pym/cache/sqlite.py", line 14, in module

このあとも数行続いていたが忘れた。
調べようにも出てこなかったが、SQLiteを使ったPortageデータベースを組んでいる方が簡単に解決されていたため、SQLiteに移行することにした。

まずは、cdbからテキスト形式に移行するため、/etc/portage/modules内をコメントアウト

#portdbapi.auxdbmodule = cache.cdb.database #eclass_cache.dbmodule = cache.cdb.database

続いて、SQLiteとpysqliteをインストール。

emerge pysqlite

/etc/portage/modulesを編集し、SQLiteを使うように指示

#portdbapi.auxdbmodule = cache.cdb.database #eclass_cache.dbmodule = cache.cdb.database portdbapi.auxdbmodule = cache.sqlite.database

(別にコメントアウトは消してもよいのだけどね。)

一応キャッシュを消去

rm -r /var/cache/edb/dep/

データベースを作成

emerge --metadata

メタデータの作成がなかなか早いですよ。

トラックバックURL

このエントリーのトラックバックURL:
http://nns-fact.2y.net/mt/mt-tb.cgi/116

コメントする


画像の中に見える文字を入力してください。