¿Cómo recuperar el directorio "dpkg" eliminado?


30

Lamentablemente, he eliminado el directorio dpkg al eliminar el bloqueo. Por error escribí

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

Ahora, cuando intento instalar / desinstalar paquetes, me muestra el siguiente error.

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

¿Qué debería hacer ahora?


¿Has intentado copiar (Intenta no eliminarlos) los archivos de un CD de Ubuntu Live en el sistema como Superusuario?
Dominic Hayes

Respuestas:


60

raíz + rm+ -r= desastre

Entonces, ¿qué condenaste a la perdición?

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

Eliminaste 5 directorios, el archivo de estado, etc. Entonces, intentemos arreglarlo. Primero, cree el directorio:

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

Recupere algunas copias de seguridad:

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

Ahora, veamos si su dpkg está funcionando (comience a orar):

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

Si todo está "bien", repare también sus archivos base:

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

Ahora intente actualizar su lista de paquetes, etc.

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

Ahora, respiremos profundo. Uf. Hacer ls -l /var/lib/dpkgy comparar con la lista anterior. Si algún -oldarchivo no está presente, no se preocupe, estará allí mañana.


1
Gracias por responder. Seguí los pasos como mencionaste aquí, pero al ejecutar sudo dpkg -i dpkg * .deb , recibo un error como dpkg: error: no se pudo abrir el archivo de información del paquete `/ usr / local / var / lib / dpkg / status 'para leer: No
existe

@Sambit Imposible. ¿Puedes editar tu pregunta y agregar el resultado completo?
Braiam

@Sambit ls: cannot access /usr/local/var/lib/dpkg/status: No such file or directoryes lo único que obtengo. /usr/localno es lugar para instalar archivos dpkg.
Braiam

El mismo problema aquí, Ubuntu intenta instalar en /usr/local/lugar de en /var/lib/dpkg. ¿Cómo hacer que señale /var/lib/dpkg?
bagustris

@bagustris descargue el paquete desde los repositorios de Ubuntu.
Braiam

2

Bueno, el dpkgpaquete (sistema de gestión de paquetes de Debian) proporciona la infraestructura de bajo nivel para manejar la instalación y eliminación de paquetes de software de Debian. Por lo tanto, eliminarlo no era una buena idea, y puede recuperarlo al:

Descargando el archivo usando wget:

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

Extraerlo en la carpeta xxx.

cd xxx
./configure
make
sudo make install

Espero que funcione.


He seguido esos pasos y los he instalado con éxito. pero nuevamente estoy teniendo el mismo problema.
Sambit

¿./configure falló o fue exitoso?
Sukupa91

Ya se reinicia y aparece el mismo error que se menciona en mi pregunta. También el software incorporado como "Ubuntu Software Center", "Update Manager" tampoco funcionan.
Sambit

hey, he actualizado los primeros comandos de wget, intente el mismo procedimiento, comience con el comando wget
Sukupa91

1
obteniendo error, cp: no puede stat `/ var / lib / dpkg / status-old ': No existe tal archivo o directorio . Estoy enfrentando este problema porque el directorio "dpkg" no existe en mi sistema.
Sambit

1

Recupere su sistema de la copia de seguridad. Hiciste copias de seguridad ¿verdad? Hacer una copia de seguridad de su sistema y sus datos es fundamental para hacer frente a situaciones inesperadas como esta (error del usuario) y falla del hardware. Si no pudo crear copias de seguridad como se describe aquí , puede intentar la recuperación de datos.

En el futuro, le sugiero que realice copias de seguridad de forma regular para evitar la pérdida catastrófica de datos. Y dudo que lo olvides como dijo @Braiam " root + rm + -r = disaster "


-2

Simplemente siga los pasos a continuación, asegúrese de que puede recuperar los archivos, al menos el apt-geto dpkgfuncionaría.

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

Después de esta prueba, ¿funcionaría o no?

sudo apt-get install {Package-name}

sudo dpkg -i {package_name}

Espero que haya funcionado. Si no comenta a continuación. Tenga en cuenta, tenga mucho cuidado al jugar con sudo + rm -rf.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.