在用fsck解决启动重复崩溃后,我注意到一些文件被删除,其中之一是sqlite的pkg数据库,所以现在当我运行例如pkg install somepackage我得到这个错误:
pkg: sqlite: file is encrypted or not a databse
所以我的问题实际上是双重的:
pkg再次运行 fsck工具删除? pkg(ng)使用的(sqlite)数据库已损坏。
您应该能够使用其每日备份来恢复pkg数据库文件:
看看/var/backups/
# ls -lrt /var/backups/pkg* -rw-r--r-- 1 root wheel 16462211 May 3 03:01 pkgdb.bak.tbz -rw-r--r-- 1 root wheel 16462853 Apr 16 03:01 pkgdb.bak.tbz.2 -rw-r--r-- 1 root wheel 17824768 May 3 03:02 pkgng.db
移走损坏的数据库文件(您可以稍后删除):
# mv /var/db/pkg/local.sqlite /var/db/pkg/local.sqlite.corrupted
使用最新的备份来恢复您的pkg数据库文件:
# pkg backup -r /var/backups/pkgng.db