2

after resolving repeated crashes on startup with fsck I noticed some files were removed, one of them was the sqlite pkg database, so now when I run for example pkg install somepackage I get this erro:

pkg: sqlite: file is encrypted or not a databse

So my question is actually two-fold:

  1. How do I get pkg running again
  2. Is there a way (logs?) to find out what file were removed with the fsck tool?
arul
  • 193
  • 1
  • 3
  • 7

1 Answers1

6

The (sqlite) database used by pkg(ng) is corrupted.

You should be able to restore the pkg db file using its daily backup:

  • have a look at /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
    
  • move away your corrupted db file (you can remove it later):

    # mv /var/db/pkg/local.sqlite /var/db/pkg/local.sqlite.corrupted
    
  • use the latest backup to restore your pkg db file:

    # pkg backup -r /var/backups/pkgng.db
    
Ouki
  • 1,367
  • 1
  • 11
  • 16