(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.
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.
1 votos
Le sugiero una cosa más que puede tener en cuenta cuando se enfrente a esta cuestión. Compruebe si las unidades de disco están montadas. Si no lo están, es posible que no pueda adquirir el bloqueo, ya que el instalador del paquete no podrá acceder al sistema de archivos. Espero que esto te ayude. :)
60 votos
Puede utilizar
sudo lsof /var/lib/dpkg/lock
para encontrar el proceso al que pertenece el archivo de bloqueo (si está vacío, se asume que el bloqueo es de un arranque anterior y puede sersudo rm
d), entonces considere hacer unasudo kill -9 <PID>
(obtener <PID> delsof
salida.1 votos
Esto es viejo, pero me estoy dando cuenta de su pregunta original no indica que está ejecutando esto como root oa través de
sudo
.11 votos
Esto puede ser 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.
0 votos
En mi caso, reiniciando se solucionó.
1 votos
No creo mucho en ninguna de las respuestas aquí. Sería mejor averiguar qué proceso tiene el bloqueo y matar a ese proceso. Vea esto para más información: ubuntuforums.org/showthread.php?t=1858466
0 votos
Así que esto me pasa todo el tiempo y las soluciones son más simples como comprobar si tiene Synaptic Package Installer abierto al intentar instalar en el terminal.
1 votos
Si el bloqueo es causado por apt-daily.service, entonces intente askubuntu.com/a/878982/288250
0 votos
Era sólo el actualizador de software. Pero por RDP se encuentra en el menú Aplicaciones, Configuración. Una vez que apareció y se detuvo, entonces todo estaba bien.
0 votos
Reiniciar me lo ha solucionado
0 votos
A mí me pasó justo después de reiniciar. Había un dkpg ya en ejecución probablemente para auto-actualizar el software. Esperé hasta que terminó. Entonces pude instalar.
0 votos
Ejecutar
sudo pkill apt-get
funcionó para mí.0 votos
Esto me pasó a mí, y resultó que Ubuntu estaba esperando pacientemente en segundo plano a que yo siguiera adelante con las actualizaciones (icono de actualización de software visible en la barra del lanzador). Una vez que lo hice y se completó, pude seguir usando apt-get sin problemas.
0 votos
OK, así que tuve el mismo problema, pero aquí está el trato: No me di cuenta de que el "'Hay actualizaciones disponibles', instalar, cancelar, recuérdamelo más tarde"-ventana estaba abierta en el fondo. Así que la cerré y funcionó.
6 votos
En mi Ubuntu 18.04 VM hay un proceso llamado unattended-update, que es ejecutado por un proceso como
root <pid> <ppid> 0 15:58 ? 00:00:00 /bin/sh /usr/lib/apt/apt.systemd.daily lock_is_held install
que parece ejecutar apt update cada vez que enciendo la máquina. Dependiendo del tamaño de la actualización (que a menudo corresponde al tiempo que ha pasado desde la última vez que usé la máquina), puede tardar entre 1 y 10 minutos en completarse. Después de eso, el bloqueo se libera para las instalaciones y actualizaciones manuales de apt. Inténtelo:sudo ps aux|grep apt
o `sudo ps aux|grep desatendido.0 votos
Lo primero que debe hacer es comprobar si algún otro programa podría estar ejecutando la actualización del sistema o instalando un programa. Si está utilizando la línea de comandos, compruebe si una aplicación como Software Center, Software Updater, Synaptic, Gdebi está ejecutando alguna actualización/instalación. Si ese es el caso, Si no hay tal aplicación en ejecución, por favor, compruebe todos los Windows terminal abierto y ver si se está ejecutando una actualización o instalación de un programa. Si nada de lo anterior está sucediendo, compruebe qué otro proceso está ejecutando el comando apt
0 votos
Si acabas de arrancar tu máquina, te recomiendo encarecidamente la respuesta de @poolie a continuación askubuntu.com/a/15440/1115972 .tl;dr ESPERE unos minutos para que el auto-actualizador termine su trabajo, luego inténtelo de nuevo.