Comment récupérer le répertoire «dpkg» supprimé?


30

Malheureusement, j'ai supprimé le répertoire dpkg lors de la suppression du verrou. Par erreur j'ai tapé

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

Maintenant, lorsque j'essaie d'installer / désinstaller des packages, il me montre l'erreur suivante.

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

Qu'est-ce que je devrais faire maintenant?


Avez-vous essayé de copier (essayez de ne pas les supprimer) les fichiers d'un CD Ubuntu Live dans le système lui-même en tant que superutilisateur ??
— Dominic Hayes

Réponses:


60

racine + rm+ -r= catastrophe

Alors, qu'avez-vous condamné à la perdition?

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

Vous avez supprimé 5 répertoires, le fichier d'état, etc. Essayons donc de corriger le problème. Créez d'abord le répertoire:

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

Récupérez quelques sauvegardes:

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

Voyons maintenant si votre dpkg fonctionne (commencez à prier):

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

Si tout est "ok", réparez également vos fichiers de base:

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

Essayez maintenant de mettre à jour votre liste de paquets, etc.:

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

Maintenant, respirons profondément. Phew. Faites ls -l /var/lib/dpkget comparez avec la liste ci-dessus. Si un -oldfichier n'est pas présent, ne vous inquiétez pas, il sera là demain.


1
Merci pour la réponse. J'ai suivi les étapes comme vous l'avez mentionné ici, mais lors de l'exécution de sudo dpkg -i dpkg * .deb , j'obtiens une erreur en tant que dpkg: error: impossible d'ouvrir le fichier d'informations sur le package `/ usr / local / var / lib / dpkg / status 'à lire: Aucun fichier ou répertoire de ce type
— Sambit

@Sambit Impossible. Pouvez-vous modifier votre question et ajouter la sortie complète?
— Braiam

@Sambit ls: cannot access /usr/local/var/lib/dpkg/status: No such file or directoryest la seule chose que je reçois. /usr/localn'est pas l'endroit pour installer les fichiers dpkg.
— Braiam

Même problème ici, Ubuntu essayant d'installer dans /usr/local/au lieu de dans /var/lib/dpkg. Comment le signaler /var/lib/dpkg?
— bagustris

@bagustris télécharge le package à partir des référentiels Ubuntu.
— Braiam

2

Eh bien dpkg(le système de gestion de paquets Debian) fournit l'infrastructure de bas niveau pour gérer l'installation et la suppression des paquets logiciels Debian.

Téléchargement du fichier en utilisant wget:

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

Extrayez-le dans le dossier xxx.

cd xxx
./configure
make
sudo make install

espérons que cela fonctionnera.


J'ai suivi ces étapes et installé avec succès. mais encore une fois, je reçois le même problème.
— Sambit

est-ce que ./configure a échoué ou a réussi ??
— Sukupa91

Déjà redémarré et j'obtiens la même erreur que celle mentionnée dans ma question. Les logiciels intégrés comme "Ubuntu Software Center", "Update Manager" ne fonctionnent pas non plus.
— Sambit

hey j'ai mis à jour les premières commandes wget, essayez la même procédure commencez avec la commande wget
— Sukupa91

1
obtenir une erreur, cp: ne peut pas stat `/ var / lib / dpkg / status-old ': Aucun fichier ou répertoire de ce type . Je suis confronté à ces problèmes car le répertoire "dpkg" n'existe pas sur mon système.
— Sambit

1

Récupérez votre système à partir d'une sauvegarde. Vous avez bien fait des sauvegardes? La sauvegarde de votre système et de vos données est essentielle pour faire face à des situations inattendues telles que celle-ci (erreur utilisateur) et une défaillance matérielle. Si vous n'avez pas réussi à créer des sauvegardes telles que celles décrites ici, vous pouvez tenter la récupération de données.

À l'avenir, je vous suggère de sauvegarder régulièrement pour éviter la perte catastrophique de données. Et je doute que vous oublierez que, comme @Braiam l'a dit " root + rm + -r = catastrophe "


-2

Suivez simplement les étapes ci-dessous, sûr que vous pouvez récupérer les fichiers, au moins apt-getou dpkgfonctionnerait.

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

Après ce test, cela fonctionnerait-il ou non?

sudo apt-get install {Package-name}

sudo dpkg -i {package_name}

J'espère que cela a fonctionné. Sinon, commentez ci-dessous. Gardez à l'esprit, soyez extrêmement prudent lorsque vous jouez avec sudo + rm -rf.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.