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.

Espero que os sirva de ayuda, au!!

Fuente: askubuntu.com