Recibo este error cuando intento usar 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 arreglar esto?
apt
package-management
dpkg
La Ode Adam Saputra
fuente
fuente
sudo lsof /var/lib/dpkg/lock
para encontrar el proceso que posee el archivo de bloqueo (si está vacío, suponga que el bloqueo se ha dejado de un arranque anterior y puede sersudo rm
d), luego considere hacer unsudo kill -9 <PID>
(obtener <PID> de lalsof
salida.root <pid> <ppid> 0 15:58 ? 00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install
, que parece ejecutar una actualización adecuada cada vez que enciendo la máquina. Dependiendo del tamaño de la actualización (que a menudo corresponde al tiempo transcurrido desde que usé esa máquina la última vez), esto puede tardar entre 1 y 10 minutos en completarse. Después de eso, el bloqueo se libera para las instalaciones y actualizaciones manuales. Pruebe:sudo ps aux|grep apt
o `sudo ps aux | grep desatendido.Respuestas:
Esto debería usarse como último recurso. Si usa esto descuidadamente, puede terminar con un sistema roto. Pruebe las otras respuestas primero antes de hacer esto.
Puede eliminar el archivo de bloqueo con el siguiente comando:
También es posible que deba eliminar el archivo de bloqueo en el directorio de caché
Después de eso, intente abrir Synaptic nuevamente.
fuente
Veo que casi todas las respuestas recomiendan eliminar el bloqueo. No recomiendo hacerlo como primera medida; quizás si no hay alternativa. El bloqueo se coloca cuando se está ejecutando un proceso apto y se elimina cuando se completa el proceso. Si hay un bloqueo sin un proceso aparente en ejecución, esto puede significar que el proceso se atascó por alguna razón.
Si intentas
o
eso capturará procesos que contengan la palabra
apt
, al menos. Si ve unapt-get
proceso o unaptitude
proceso que parece atascado, puede intentary si eso no funciona prueba
Esto debería matar el proceso y puede eliminar el bloqueo. Matar un proceso
apt
oaptitude
es inofensivo a menos que esté realmente en medio de la instalación del paquete. En cualquier caso, si el proceso se atascó, probablemente no tenga más remedio que matarlo.Matar un
dpkg
proceso directamente, si está presente, no es una buena idea, porque sidpkg
está activo, probablemente esté manipulando la base de datos del paquete, y matarlo puede dejar la base de datos del paquete en un estado inconsistente; es decir, corrompido.En general, matar
apt-get
oaptitude
procesar es mucho más seguro.fuente
dpkg
sea una buena idea, porque generalmentedpkg
está manipulando la base de datos del paquete directamente, y esto podría causar corrupción.dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
al ejecutar desudo apt-get dist-upgrade
nuevo. Ejecutar el comando resolvió el problema. ¡Amo a Nix!killall apt-get
hace lo mismo que sups
/kill
combo.sudo dkpg --configure -a
después de matar el proceso de pícaro apto para que las cosas volvieran a la normalidad.Elimine su
/var/lib/dpkg/lock
archivo y fuerce la reconfiguración del paquete.Debería funcionar después de esto.
fuente
sudo
- ejecutar el comando como root,rm
- eliminar el archivo. Tal vez intentesudo rm /var/cache/apt/archives/lock
Recibirá este mensaje si olvida usarlo
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 de apt mientras realiza las acciones. Los programas que pueden hacer esto son:
IMPORTANTE: solo intente lo siguiente como último recurso, ya que puede bloquear su sistema. Primero intente matar cualquier instancia en ejecución de
apt
oaptitude
como se describe en la respuesta de Faheem .Puede forzar el bloqueo quitando el archivo, pero no se recomienda sin cerrar primero el programa que mantiene el bloqueo de forma segura , ya que podría causar daños o interrumpir una instalación (incorrecta). El comando proporcionado por João debería cerrar el programa que contiene el bloqueo y luego eliminar el bloqueo, pero no lo protegerá de la interrupción de la instalación:
Y se puede usar el mismo comando para el bloqueo de caché de apt:
fuente
sudo fuser -cuk /var/cache/apt/archives/lock
directamente reinició mi computadora.apt-get
ahora está desbloqueadoLa forma más probable de lograr esto es:
sudo apt-get install whatever
y la línea de comandos se
apt
superpone conupdate-manager
sondeo automático.Entonces, si intentas nuevamente en unos minutos, eso debería solucionarlo.
fuente
sudo apt-get install
pudiera funcionar.Solo un programa puede mantener el bloqueo. Asegúrese de que no está ejecutando aptitude, synaptic o adept. Cierre el programa y ejecútelo de nuevo, debería funcionar. Puede tener Synaptic Open, o tener otra ventana de terminal abierta ejecutando apt-get, o tener el administrador de actualizaciones ejecutándose. Verifíquelo y vea si alguno de ellos se está ejecutando, si alguno ellos se están ejecutando, ciérrelo e intente nuevamente.
Pruebe este comando en la terminal para encontrar lo que se está ejecutando
Nota:
Si eso no imprime nada, escriba lo siguiente en la terminal para eliminar el bloqueo
Ahora puede instalar cualquier paquete.
fuente
pgrep -f 'apt|adept|dpkg'
Es mucho más corto.pgrep -a 'apt|adept|dpkg'
es un mejor equivalente más corto.Hasta ahora, la mejor manera de hacerlo funcionar sin romper una posible instalación en segundo plano (como podría suceder al eliminar el archivo de bloqueo), es detener el servicio usando apt:
Error:
Solución:
Después de actualizar el sistema, sugiero volver a habilitarlo, ya que el bloqueo de error podría solucionarse con la actualización.
sudo systemctl start apt-daily.timer
No he verificado que este error se solucione después de la actualización. Agregaré un nuevo comentario una vez que haya verificado
fuente
En primer lugar, debemos verificar qué proceso creó el archivo de bloqueo usando
lsof
:o en otra situación donde
/var/lib/apt/lists/lock
es problemático:La salida estará cerca de algo como:
Luego deberíamos verificar qué está haciendo el comando, podemos averiguarlo usando
ps
,pgrep
etc; el comando esapt-get
así que ejecuto:El
-a
interruptor enumera el comando completo para mí, en mi caso es:podemos ver que está ejecutando un
update
subcomando, yo también podría ejecutar algo como esto:que produce:
En este caso, esperaría un minuto para que se liberen los recursos y si después de 2 o 3 minutos el problema persiste o si el comando era algo que no me importaba o que no era perjudicial para el sistema (como este
apt-get update
), envío un mensajeSIGTERM
a el proceso:Debería hacer el trabajo. Si no fuera así, lo enviaré
SIGINT
esta vez (es como presionar CTRL+ C):Si no funcionó también, deberíamos enviar un
SIGHUP
(kill -1
), y finalmente si nada funciona, simplemente elimino el proceso:o
Luego elimino los recursos ocupados:
fuente
/var/lib/dpkg/lock
lugar/var/lib/apt/lists/lock
del archivo en la pregunta.pgrep
ypkill
.dpkg --configure -a
podría ser necesarioEste error puede deberse a que Update Manager intenta actualizar automáticamente la lista de paquetes en segundo plano, generalmente justo después de iniciar sesión, bloqueando así el directorio.
En este caso, solo espere unos segundos (o más, si su última actualización fue hace mucho tiempo) para que se complete o inicie Update Manager para verificar el estado.
fuente
ps
varias veces pude ver quedpkg
estaba actualizando un montón de cosas y esperé pacientemente a que todo terminara . Luego ejecuté Software Updater hasta que todo estuvo actualizado antes de intentar instalar algo nuevo.Esto sucederá si tiene 'Update Manager' ejecutándose en paralelo para cualquier verificación de actualización o instalación a medida que el proceso de instalación coloca el bloqueo. Si enfrenta el mismo error sin ejecutar 'Update Manager', debe eliminarlo
/var/lib/dgkg/lock
, lo que definitivamente no puede hacer manualmentefunciona bien. Tomado de: https://askubuntu.com/a/15469/68707
fuente
No sea tan rápido para eliminar algo, puede dañar totalmente su sistema; más bien espere hasta que el programa de instalación o desinstalación finalice su tarea y después de eso obtendrá acceso. Si cree que actualmente no hay nada instalando o desinstalando, simplemente reinicie su sistema con el comando
sudo reboot
.fuente
Si tiene actualizaciones de seguridad configuradas para la instalación automática, esto sucederá con frecuencia. Literalmente espero 30 segundos y soluciona el problema. Simplemente arrojando esto por si alguien más se encuentra con este problema.
fuente
En mi caso, tuve que esperar varios minutos para que se desbloqueara (parece que se
apt
usó para sostenerlo). Todo esto sucedió justo después del arranque del sistema.fuente
Solo
sudo rm -f /var/lib/apt/lists/lock
e inténtalo de nuevo.apt-fast PUEDE ser responsable de no desbloquear adecuadamente; Esto sucede a veces cuando abortas
apt-get
odpkg
también.fuente
He tenido este problema en numerosas ocasiones. Para mí, casi siempre fue causado por apt-get o alguna GUI que lo llamó colgado por alguna razón. Tuve que matarlo, lo que dejó varias cerraduras en su lugar.
Las otras respuestas traen muy buenos puntos sobre asegurarse de que no se estén ejecutando actualizaciones antes de hacer algo drástico como eliminar archivos de bloqueo. Sin embargo, una vez que esté seguro de que ese no es el caso, lo siguiente generalmente funciona para mí. Lo entendí leyendo muchas respuestas a preguntas como esta.
Si bien la mayoría o todo esto se presenta en las otras respuestas, esto destila la solución a unos pocos comandos.
Úselo para desbloquear el sistema de paquetes después de que una actualización de algún tipo se bloquee o finalice sin finalizar de alguna otra manera. Estos comandos deben ejecutarse en el orden presentado.
fuente
No veo esta respuesta en ninguna parte anterior, pero en Ubuntu 16.04, también encontré este problema. La causa fue que el tiempo en mi computadora se estableció en el futuro . (Esto se debe a que estoy en un sistema de arranque dual Windows + Ubuntu y supongo que he estropeado la hora local frente a la hora UTC).
Una cosa extraña fue que la fecha y hora del archivo bloqueado era la fecha y hora exactas en que ejecuté el programa.
Luego usé "fusor" como se describe en publicaciones anteriores y apt funcionó, pero recibí quejas sobre la necesidad de ejecutar
dpkg -a -reconfigure
. Cuando hice eso, obtuve errores como:en archivos como '/ var / lib / dpkg / updates / 0003'.
Todo esto fue muy extraño ya que nunca lo había visto antes. Entonces, pensé que estos eran síntomas y cambié mis datos y mi tiempo manualmente. Sabía que había un problema con la fecha / hora cuando inicié sesión, pero lo estaba ignorando. (Anteriormente, lo configuraba automáticamente a través de Internet y NTP).
Entonces, todos los problemas anteriores se solucionaron ... ¡Esperemos que esto ayude a alguien más! El síntoma más notable es quizás la fecha / hora del archivo de bloqueo que es la fecha / hora exacta en la que está intentando ejecutar el comando.
fuente
En mi caso, X se estrelló mientras
apt-get
todavía estaba eliminando granos viejos. Utilicé el Monitor del sistema para confirmar que todavía se estaba ejecutando y no estaba atascado. Todo estuvo bien una vez que el proceso terminó.fuente
Verifique el Iniciador para ver si se
Software Updater
está ejecutando. Si es así, maximícelo y eche un vistazo a lo que está haciendo. Si todavía está comprobando, espere a que se complete. Cuando se complete, podría decirle que el software está actualizado, así que cierre la aplicación. Si dice que hay actualizaciones disponibles, realice la actualización o haga clic en "recordar más tarde". Después de que esta aplicación se cierre, puede volver a usarapt-get
oapt
.Si
Software Updater
no se está ejecutando, simplemente use el Tablero para invocarlo y espere a que se complete y luego decida si desea actualizar o haga clic en "recordar más tarde". Después de que esta aplicación se cierre, puede volver a usarapt-get
oapt
.fuente
En mi caso, recibí el mismo mensaje al no darme cuenta de que había cambiado a usuario root e intentaba sudo apt-get. Una vez que me di cuenta de esto, simplemente ejecuté apt-get, y funcionó. Tonto, pero aún podría explicar el error para algunos.
fuente
sudo
como root (e incluso si no pudiera, no produciría este mensaje de error). Lo más probable es que lo que sucedió fue que el otro proceso terminó mientras escribía el siguiente comando.Úselo bajo su propio riesgo
fuente
en mi caso, después de:
escribí
entonces tengo esos problemas Lo arreglé, ejecutando el comando que me mostraron después de ejecutarsudo apt update
Este comando le mostrará una lista de programas en mi caso solo Firefox, cerré Firefox, luego pude ejecutar el comando nuevamente sin problemas.
fuente
Para las personas que están interesadas en prevenir de manera proactiva este error en sus scripts, descubrí que el indicador -q activado me
apt upgrade -yq
estaba causando este problema. Durante el proceso de actualización, supongo que ocasionalmente me daría advertencias (algo parecido a la actualización del escritorio, me gustaría continuar), y si estas advertencias se suprimieran, entonces supongo que eso hace que no se desbloqueen los archivos que estaba protegiendo. y se atascóEs cierto que tuve problemas para reproducir este error el 100% del tiempo, pero eliminar esa opción -q solucionó por completo el problema .
fuente
Como la mayoría de los demás, esperé a que se quitara la cerradura. Después de 30 minutos, me di por vencido y arranqué con una distribución diferente. A partir de ahí, utilicé Internet para algunas investigaciones que me llevaron aquí.
Resulta que se
unattended-upgrades.service
está ejecutando. Descubrí que se reinicia en el sistema roto y se ejecuta:me permitió hacer que el sistema roto funcionara nuevamente para:
Sin embargo, no solucionó los paquetes retenidos y la situación imposible reportada
apt
en primer lugar. Parece que esto estaba causandoapt
que se bloqueara en el arranque en primer lugar.fuente