FreeBSD pkg 数据库已删除

FreeBSD pkg 数据库已删除

解决启动时反复崩溃的问题后,fsck我注意到一些文件被删除了,其中一个是 sqlite pkg 数据库,所以现在当我运行时,例如pkg install somepackage我收到此错误:

pkg: sqlite: file is encrypted or not a databse

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

  1. 我如何pkg重新开始跑步
  2. 有没有办法(日志?)来找出该fsck工具删除了哪些文件?

答案1

pkg(ng) 使用的 (sqlite) 数据库已损坏。

您应该能够使用其每日备份来恢复 pkg db 文件:

  • 看一下/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 db 文件:

    # pkg backup -r /var/backups/pkgng.db
    

相关内容