Como recuperar o diretório “dpkg” excluído?

30

Infelizmente, excluí o diretório dpkg ao remover o bloqueio. Por engano, digitei

root@sam:~$ rm -r /var/lib/dpkg

Agora, quando estou tentando instalar / desinstalar pacotes, ele me mostra o seguinte erro.

E: Could not open lock file /var/lib/dpkg/lock - open (2: No such file or directory)

O que eu deveria fazer agora?

Sambit
fonte
Você tentou copiar (tente não excluí-los) os arquivos de um Ubuntu Live CD no próprio sistema como Superusuário?
Dominic Hayes

Respostas:

60

raiz + rm+ -r= desastre

Então, o que você condenou à perdição?

ls -l /var/lib/dpkg/
total 9964
drwxr-xr-x 2 root root    4096 nov 28 11:18 alternatives
-rw-r--r-- 1 root root      11 sep 18 14:08 arch
-rw-r--r-- 1 root root 2573807 nov 28 11:18 available
-rw-r--r-- 1 root root 2561322 nov 28 10:25 available-old
-rw-r--r-- 1 root root       8 abr 24  2013 cmethopt
-rw-r--r-- 1 root root     538 sep 25 17:24 diversions
-rw-r--r-- 1 root root     457 sep 25 17:24 diversions-old
drwxr-xr-x 2 root root  483328 nov 28 11:17 info
-rw-r----- 1 root root       0 nov 28 11:18 lock
drwxr-xr-x 2 root root    4096 mar 22  2013 parts
-rw-r--r-- 1 root root     135 abr 24  2013 statoverride
-rw-r--r-- 1 root root 2269113 nov 28 11:18 status
-rw-r--r-- 1 root root 2268870 nov 28 11:18 status-old
drwxr-xr-x 2 root root    4096 nov 28 11:18 triggers
drwxr-xr-x 2 root root    4096 nov 28 11:18 updates

Você removeu 5 diretórios, o arquivo de status, etc. Então, vamos tentar consertar as coisas. Primeiro, crie o diretório:

sudo mkdir -p /var/lib/dpkg/{alternatives,info,parts,triggers,updates}

Recupere alguns backups:

sudo cp /var/backups/dpkg.status.0 /var/lib/dpkg/status

Agora, vamos ver se o seu dpkg está funcionando (comece a orar):

apt-get download dpkg
sudo dpkg -i dpkg*.deb

Se tudo estiver "ok", repare também os arquivos base:

apt-get download base-files
sudo dpkg -i base-files*.deb

Agora tente atualizar sua lista de pacotes, etc .:

dpkg --audit
sudo apt-get update
sudo apt-get check

Agora, vamos respirar fundo. Ufa. Faça ls -l /var/lib/dpkge compare com a lista acima. Se algum -oldarquivo não estiver presente, não se preocupe, ele estará lá amanhã.

Braiam
fonte
1
Obrigado pela resposta. Eu segui as etapas como você mencionou aqui, mas durante a execução do sudo dpkg -i dpkg * .deb , estou recebendo um erro como dpkg: error: falha ao abrir o arquivo de informações do pacote `/ usr / local / var / lib / dpkg / status 'para leitura: Não
existe
@Sambit Impossible. Você pode editar sua pergunta e adicionar a saída completa?
Braiam 29/11
@Sambit ls: cannot access /usr/local/var/lib/dpkg/status: No such file or directoryé a única coisa que recebo. /usr/localnão é um lugar para instalar arquivos dpkg.
Braiam
Mesmo problema aqui, o Ubuntu tentando instalar no em /usr/local/vez de no /var/lib/dpkg. Como fazê-lo apontar /var/lib/dpkg?
bagustris
O @bagustris baixa o pacote dos repositórios do Ubuntu.
Braiam 08/08/19
2

O dpkgpacote Well (sistema de gerenciamento de pacotes Debian) fornece a infraestrutura de baixo nível para lidar com a instalação e remoção de pacotes de software Debian. Portanto, removê-lo não era uma boa ideia e você pode voltar atrás-

Fazendo o download do arquivo usando wget:

wget https://launchpad.net/ubuntu/+archive/primary/+files/dpkg_1.16.1.2ubuntu7.2.tar.bz2

Extraia-o na pasta xxx.

cd xxx
./configure
make
sudo make install

espero que funcione.

Sukupa91
fonte
Eu segui essas etapas e instalei com sucesso. mas, novamente, estou tendo o mesmo problema.
Sambit
./configure falhou ou foi bem sucedido?
Sukupa91
Já reiniciei e recebo o mesmo erro mencionado na minha pergunta. Também softwares embutidos como "Ubuntu Software Center", "Update Manager" também não estão funcionando.
Sambit
ei, eu atualizei os comandos do wget first, tente o mesmo procedimento, inicie com o comando wget
Sukupa91
1
recebendo erro, cp: não pode stat `/ var / lib / dpkg / status-old ': Não existe esse arquivo ou diretório . Estou enfrentando esses problemas porque o diretório "dpkg" não existe no meu sistema.
Sambit
1

Recupere seu sistema do backup. Você fez backups, certo? O backup do sistema e dos dados é fundamental para lidar com situações inesperadas como essa (erro do usuário) e falha de hardware. Se você não conseguiu criar backups, como discutido aqui, pode tentar a recuperação de dados.

No futuro, sugiro que você faça backup regularmente para evitar perda de dados catastrófica. E duvido que você esqueça isso como @Braiam disse " root + rm + -r = disastre "

Elder Geek
fonte
-2

Basta seguir as etapas abaixo, para recuperar os arquivos, pelo menos apt-getou dpkgfuncionaria.

sudo cp /var/backups/dpkg.status.0  /var/lib/dpkg/

sudo mv /var/backups/dpkg.status.0  /var/backups/status

sudo mkdir /var/lib/dpkg/updates

Após este teste, funcionaria ou não.

sudo apt-get install {Package-name}

sudo dpkg -i {package_name}

Espero que funcionou. Se não comentar abaixo. Tenha em mente, tenha muito cuidado ao brincar sudo + rm -rf.

Srudeep PA
fonte