banco de dados do FreeBSD pkg excluído

2

depois de resolver falhas repetidas na inicialização com fsck eu notei que alguns arquivos foram removidos, um deles era o banco de dados sqlite pkg, então agora quando eu corro por exemplo pkg install somepackage eu recebo este erro:

pkg: sqlite: file is encrypted or not a databse

Então, minha pergunta é na verdade dupla:

  1. Como obtenho o pkg em execução novamente
  2. Existe uma maneira (logs?) de descobrir qual arquivo foi removido com a ferramenta fsck ?
por arul 27.04.2014 / 12:48

1 resposta

6

O banco de dados (sqlite) usado pelo pkg (ng) está corrompido.

Você deve conseguir restaurar o arquivo pkg db usando seu backup diário:

  • dê uma olhada em /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
    
  • afaste seu arquivo db corrompido (você pode removê-lo depois):

    # mv /var/db/pkg/local.sqlite /var/db/pkg/local.sqlite.corrupted
    
  • use o backup mais recente para restaurar seu arquivo pkg db:

    # pkg backup -r /var/backups/pkgng.db
    
por 03.05.2014 / 03:57