FreeBSD的pkg数据库被删除了

在用fsck解决启动重复崩溃后,我注意到一些文件被删除,其中之一是sqlite的pkg数据库,所以现在当我运行例如pkg install somepackage我得到这个错误:

 pkg: sqlite: file is encrypted or not a databse 

所以我的问题实际上是双重的:

  1. 如何让pkg再次运行
  2. 有没有办法(日志?)找出哪些文件被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