Come recuperare la directory “dpkg” cancellata?


30

Purtroppo ho cancellato la directory dpkg durante la rimozione del blocco. Per errore ho digitato

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

Ora, quando sto cercando di installare / disinstallare i pacchetti, mi viene mostrato il seguente errore.

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

Cosa dovrei fare ora?


Hai provato a copiare (prova a non eliminarli) i file da un CD di Ubuntu Live nel sistema stesso come Superutente ??
Dominic Hayes,

Risposte:


60

root + rm+ -r= disastro

Quindi cosa hai condannato alla perdizione?

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

Hai rimosso 5 directory, il file di stato, ecc. Quindi, proviamo a risolvere il problema. Innanzitutto, crea la directory:

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

Ripristina alcuni backup:

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

Ora vediamo se il tuo dpkg funziona (inizia a pregare):

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

Se tutto è "ok", ripara anche i tuoi file di base:

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

Ora prova ad aggiornare l'elenco dei pacchetti, ecc .:

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

Ora facciamo un respiro profondo. Uff. Fare ls -l /var/lib/dpkge confrontare con l'elenco sopra. Se un -oldfile non è presente, non ti preoccupare, sarà lì domani.


1
Grazie per la risposta Ho seguito i passaggi indicati qui, ma durante l'esecuzione di sudo dpkg -i dpkg * .deb , ricevo un errore come dpkg: errore: impossibile aprire il file di informazioni sul pacchetto `/ usr / local / var / lib / dpkg / status "per la lettura: nessun file o directory di questo tipo
Sambit

@Sambit Impossible. Puoi modificare la tua domanda e aggiungere l'output completo?
Braiam,

@Sambit ls: cannot access /usr/local/var/lib/dpkg/status: No such file or directoryè l'unica cosa che ottengo. /usr/localnon è il posto per installare i file dpkg.
Braiam,

Stesso problema qui, Ubuntu sta cercando di installare /usr/local/invece che dentro /var/lib/dpkg. Come farlo puntare a /var/lib/dpkg?
bagustris

@bagustris scarica il pacchetto dai repository Ubuntu.
Braiam

2

Bene, il dpkgpacchetto (sistema di gestione dei pacchetti Debian) fornisce l'infrastruttura di basso livello per gestire l'installazione e la rimozione dei pacchetti software Debian, quindi rimuoverlo non era una buona idea, e puoi ripristinarlo-

Download del file utilizzando wget:

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

Estrai nella cartella xxx.

cd xxx
./configure
make
sudo make install

spero che funzionerà.


Ho seguito questi passaggi e installato con successo. ma di nuovo sto riscontrando lo stesso problema.
Sambit,

./configure non è riuscita o è riuscita ??
Sukupa91,

Già riavviato e ottengo lo stesso errore menzionato nella mia domanda. Anche i software integrati come "Ubuntu Software Center", "Update Manager" non funzionano.
Sambit,

ehi ho aggiornato i primi comandi di wget, prova la stessa procedura inizia con il comando di wget
Sukupa91,

1
ottenere l'errore, cp: impossibile stat `/ var / lib / dpkg / status-old ': nessun file o directory . Sto affrontando questi problemi perché la directory "dpkg" non esiste nel mio sistema.
Sambit,

1

Ripristina il sistema dal backup. Hai fatto i backup giusto? Il backup del sistema e dei dati è fondamentale per affrontare situazioni impreviste come questa (errore utente) e guasti hardware. Se non si è riusciti a creare backup come quelli discussi qui, è possibile tentare il recupero dei dati.

In futuro ti suggerisco di eseguire il backup su base regolare per evitare la catastrofica perdita di dati. E dubito che dimenticherai che come ha detto @Braiam " root + rm + -r = disastro "


-2

Segui i passaggi seguenti, assicurati di poter recuperare i file, almeno apt-geto dpkgfunzionerebbe.

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

Dopo questo test, funzionerebbe o meno.

sudo apt-get install {Package-name}

sudo dpkg -i {package_name}

Spero che abbia funzionato. In caso contrario commentare di seguito. Ricorda, usa la massima cautela mentre giochi sudo + rm -rf.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.