1119 votos

No se puede bloquear el directorio de administración (/var/lib/dpkg/) ¿lo está utilizando otro proceso?

Me aparece este error cuando intento utilizar apt-get :

E: Could not get lock /var/lib/dpkg/lock - open (11 Resource temporarily unavailable)
E: Unable to lock the administration directory (/var/lib/dpkg/) is another process using it?  

¿Cómo puedo solucionarlo?

19 votos

¿Lo mismo ocurre si reinicias? Tal vez algún viejo hilo apt está bloqueando el archivo, es necesario averiguar cuál y matarlo o simplemente reiniciar lo hará.

0 votos

Sí, incluso después de reiniciar im obtener las mismas respuestas. ¿Sabes cómo puedo encontrar qué hilo apt está bloqueando el archivo?. Gracias.

4 votos

Este procedimiento casi siempre soluciona este problema, y cuando no lo hace, su salida (el texto del Terminal) es a veces útil. Si decides hacerlo, puedes añadir este texto a tu pregunta.

930voto

zurdo Puntos 2482

Debe utilizarse como último recurso. Si lo utiliza sin cuidado puede acabar con un sistema roto. Por favor, pruebe el otros respuestas primero antes de hacerlo.

Puede eliminar el archivo de bloqueo con el siguiente comando:

sudo rm /var/lib/apt/lists/lock

Es posible que también tenga que eliminar el archivo de bloqueo en el directorio de caché

sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock

Después de eso, intente abrir Synaptic de nuevo.

16 votos

Vale... ¿pero por qué ha pasado esto?

43 votos

@jaime: probablemente apt-get (o alguna interfaz gráfica de usuario) se detuvo durante la ejecución, dejando apt en un estado bloqueado.

9 votos

@AnwarShah no, hay otras consideraciones antes de ir por ahí eliminando archivos del sistema.

727voto

jamesakadamingo Puntos 126

(Nota: mi respuesta original fue editada extensamente por Guillem Jover, el principal dpkg desarrollador .)

Veo que casi todas las respuestas recomiendan borrar el candado. Que debe nunca se haga, siempre es preferible matar dpkg (que se supone que es resistente frente a ese tipo de eventos), que pensar siquiera en eliminar su archivo de bloqueo (donde su presencia no indica que se mantenga el bloqueo). Los bloqueos se adquieren cuando un dpkg o un apt y son liberados (por el kernel si es necesario) cuando los procesos finalizan o son eliminados. Más reciente dpkg y apt imprimirá el PID del proceso que tiene el archivo de bloqueo en disputa, y apt ahora incluso espera por defecto a que se liberen los bloqueos. Esto se explica en la sección dpkg FAQ .

Si lo intentas:

sudo fuser -vik -TERM /var/lib/dpkg/lock /var/lib/dpkg/lock-frontend /var/lib/apt/lists/lock
sudo dpkg --configure --pending

que le pedirá que termine cualquier proceso que actualmente tenga estos archivos bloqueados, lo que, una vez eliminado, hará que se liberen los bloqueos. Si ve un mensaje apt-get proceso o un aptitude proceso que parece atascado, matarlos debería ser menos perjudicial que cuando el sistema de empaquetado está en medio de la instalación de un paquete. Si los procesos están realmente atascados y no tiene otra opción, puede que necesite matarlos pasando -KILL en lugar de -TERM . A continuación, debe finalizar cualquier configuración pendiente para que dpkg y para que también pueda integrar las actualizaciones de su diario en la base de datos de estado principal.

Matar a un dpkg proceso directamente, si está presente, no es en general una gran idea, porque si dpkg está activo, algún mantenedor script podría estar realizando acciones que no son resistentes contra la terminación abrupta (o fallos), pero dpkg internamente debería ser resistente a tales terminaciones abruptas, y es preferible hacer eso, que eliminar cualquier fichero de bloqueo, que tiene una probabilidad mucho mayor de dañar a ambos la base de datos dpkg y el sistema de archivos.

Matar un frontend como un apt-get o aptitude aunque no es ideal, en general es mucho más seguro.

1 votos

Además, yo mataría a dpkg. Esto funcionó para mí, ya que estaba tratando de terminar algo que se inició antes de que la máquina se detuvo anteriormente, y no podía averiguarlo por su cuenta.

20 votos

@Link No creo que matar dpkg es una buena idea, porque normalmente dpkg está manipulando la base de datos de paquetes directamente, y esto podría causar corrupción.

0 votos

No había necesidad de matar dpkg . Después de matar al atascado apt-get proceso, dpkg desapareció automáticamente.

230voto

gaotter Puntos 116

Retire su /var/lib/dpkg/lock y forzar la reconfiguración del paquete.

sudo rm /var/lib/dpkg/lock
sudo dpkg --configure -a

Debería funcionar después de esto.

0 votos

Estos comandos ayudaron, pero ahora cuando traté de instalar de nuevo, obtuvo esta respuesta : Could not get lock /var/cache/apt/archives/lock - open. Creo que tendría que hacer como problema de desbloqueo anterior, pero por favor dígame las palabras clave exactas para el comando. Soy un principiante absoluto.

1 votos

sudo - ejecutar el comando como root, rm - eliminar archivo. Tal vez intente sudo rm /var/cache/apt/archives/lock

7 votos

Esta no es una buena sugerencia: quitar el bloqueo a ciegas puede corromper el estado de dpkg.

109voto

manveru Puntos 146

Recibirá este mensaje si olvida utilizar sudo al ejecutar un comando apt.

De lo contrario, esto es una señal de que algo más está instalando o eliminando software y ha bloqueado la base de datos apt mientras realiza las acciones. Los programas que pueden hacer esto son:

  • El Centro de Software
  • El Gestor de Actualizaciones
  • El instalador apt link (creo que ahora pasa por SC)
  • Las utilidades de línea de comandos apt-get o aptitude.
  • El gestor de paquetes Synaptic

IMPORTANTE: sólo intente lo siguiente como último recurso, ya que puede bloquear su sistema. Primero intente matar cualquier instancia en ejecución de apt o aptitude como se describe en Respuesta de Faheem .

Puede forzar el bloqueo eliminando el archivo, pero no es recomendable sin antes cerrar el programa que mantiene el bloqueo de forma segura ya que podrías causar corrupción o interrumpir una instalación (malo). El comando proporcionado por João debe cerrar el programa que mantiene el bloqueo y luego eliminar el bloqueo, pero no le protegerá de la interrupción de la instalación:

sudo fuser -cuk /var/lib/dpkg/lock; sudo rm -f /var/lib/dpkg/lock   

Y el mismo comando se puede utilizar para el bloqueo de caché apt:

sudo fuser -cuk /var/cache/apt/archives/lock; sudo rm -f /var/cache/apt/archives/lock

5 votos

Estaba actualizando mi software cuando recibí el mensaje de error.

22 votos

Esto se estrelló para mí-

5 votos

sudo fuser -cuk /var/cache/apt/archives/lock directamente reinicié mi ordenador. apt-get ya está desbloqueado.

53voto

Rob Gray Puntos 1556

Sólo un programa puede mantener el bloqueo. Asegúrese de que no está ejecutando aptitude, synaptic o adept. Cierra el programa y ejecútalo de nuevo, debería funcionar.Puede que tengas synaptic abierto, o que tengas otra ventana de terminal abierta ejecutando apt-get, o que tengas el gestor de actualizaciones ejecutándose.Compruébalo y mira si alguno de ellos se está ejecutando, si alguno de ellos se está ejecutando ciérralo e inténtalo de nuevo.

Pruebe este comando en el terminal para encontrar lo que se está ejecutando

ps -e | grep -e apt -e adept | grep -v grep

Nota:
Si eso no imprime nada, escriba lo siguiente en el terminal para eliminar el bloqueo

sudo rm /var/lib/dpkg/lock    
sudo rm /var/cache/apt/archives/lock

Ahora puedes instalar cualquier Paquete.

9 votos

Borrar el archivo de bloqueo es, lo que yo consideraría, algo peligroso. Si otro proceso se está bloqueando por una razón válida - y eliminas ese archivo de bloqueo y fuerzas una instalación con lo que estabas haciendo antes - podrías afectar seriamente, de forma negativa, a tu sistema.

6 votos

Si todo lo anterior falla la única manera es quitar el bloqueo. No causará ningún problema siempre y cuando los procesos dpkg y apt-get/aptitude no se estén ejecutando.

0 votos

pgrep -f 'apt|adept|dpkg' es mucho más corto.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X