No se pudo bloquear /var/lib/dpkg/lock – open (11: Recurso no disponible temporalmente)


Recientemente, durante una instalación se “colgó” el proceso, el caso es que tuve que abortar a lo bestia, así que volví a lanzar la instalación y me lanzó el siguiente mensaje.
E: No se pudo bloquear /var/lib/dpkg/lock - open (11: Recurso
no disponible temporalmente)
E: No se pudo bloquear el directorio de administración (/var/lib/dpkg/),
¿quizás haya algún otro proceso utilizándolo?
Devolviéndome al prompt y no pudiendo continuar. Este problema puede ocasionar que se nos queden paquetes corruptos en el sistema y no podamos hacer actualizaciones o instalaciones nuevas. Tras “googlear” una rato y revisar el man de Ubuntu 12.04, encontré el comando fuser, que nos permite ver los llamados archivos abiertos y matar el proceso que los mantiene ocupados.
Desde un terminar ejecutamos el siguiente comando para desbloquear/var/lib/dpkg/lock.
$ sudo fuser -vki  /var/lib/dpkg/lock
Las opciones utilizadas en el comando sirven para:
  • -v activa el modo verbose, para los que nos gusta ver en todo momento lo que está haciendo.
  • -k mata el proceso que mantiene el fichero ocupado.
  • -i pide confirmación para matar al proceso.
También recomiendan eliminar el fichero en cuestión.
$ sudo rm -f /var/lib/dpkg/lock
Una vez terminado con el bloqueo, ejecutamos el siguiente comando para reparar los posibles paquetes rotos.
$ sudo dpkg --configure -a
Terminado este último paso, ya podemos volver a instalar. Acaba la instalación ejecutamos el siguiente comando para eliminar paquetes que ya no sirvan o se hayan quedado “colgando” y listo.
$ sudo apt-get autoremove
Ya podemos reiniciar después de la instalación y continuar sin problemas. Deciros también que ésta misma solución se puede utilizar cuando nos encontramos con el mismo problema en la apt cache lock.

0 comentarios :