¿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.