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
メタデータの作成がなかなか早いですよ。
コメントする