comunidades

Razones y soluciones para el error Incapaz de bloquear (/var/lib/dpkg/) en Ubuntu

Unas cuantas veces, al instalar/actualizar un paquete desde la línea de comandos (usando apt-get o apt) en Ubuntu, obtenemos este error: E: No se puede bloquear el directorio de administración (/var/lib/dpkg/) . Desde el punto de vista de un principiante, es un error complejo, ya que la mayoría de los nuevos usuarios no son conscientes del directorio «/var/lib/dpkg/» y de lo que tiene que ver con la operación actual que están realizando.

Técnicamente, el error es lanzado por el sistema en múltiples escenarios, y uno debería tener cuidado de cómo resuelve este problema. En este artículo discutiremos todos estos aspectos relacionados con este error y cómo puede deshacerse de él con seguridad.

No se puede bloquear (/var/lib/dpkg/) – diagnosticar el problema

Siempre que encuentre este error, el primer paso debe ser leer cuidadosamente la descripción del error. Por lo general, contiene algunos consejos cruciales que ahorran tiempo. Como ejemplo, las siguientes capturas de pantalla muestran el comando «apt-get install» con errores similares.





Sin embargo, si observa más de cerca, observará que el texto entre paréntesis en la primera línea y el texto después de la coma en la segunda línea son diferentes en ambos escenarios, lo que deja claro que el error en el primer escenario tiene algo que ver con los permisos de usuario, mientras que en el segundo escenario está relacionado con el hecho de que el archivo de bloqueo no esté temporalmente disponible.

Si se enfrenta a un error relacionado con el permiso (como se muestra en la primera imagen de arriba), es muy probable que sea porque el usuario que ejecuta el comando «apt-get» o «apt» no tiene suficientes privilegios y el comando se ejecutó sin sudo. Una vez que el comando se ejecuta con privilegios de root, el error desaparece.

Sin embargo, si se trata de un error relacionado con el bloqueo, es necesario seguir investigando.

¿Qué es /var/lib/dpkg/?

«/var/lib/dpkg/» puede considerarse como el directorio de trabajo del gestor de paquetes «dpkg», que a su vez es el motor detrás de «apt-get» (así como de las herramientas «apt» y «aptitude»). Siempre que se utilizan estas herramientas para instalar o eliminar software, bloquean la base de datos de paquetes (creando un archivo de bloqueo) antes de realizar la operación real, algo que se hace consiguiendo el bloqueo para el directorio «/var/lib/dpkg/». Este paso ayuda a evitar la corrupción de datos o la interrupción de una operación en curso que está siendo realizada por algún otro proceso.

Asumiendo que usted ha entendido el concepto explicado anteriormente, ahora vamos a discutir los pasos de la investigación.

Paso 1: Compruebe si hay algún otro proceso que retenga la cerradura

Esto debería parecer bastante lógico, ¿no? Y para hacer esto, puedes usar la ayuda del viejo comando ps y canalizar su salida al comando grep para que pases menos tiempo buscando lo que quieres. Por ejemplo, aquí hay un comando que le permite encontrar si algún proceso «apt», «apt-get» o «aptitude» ya se está ejecutando:

ps aux | grep apt

Paso 2: Espere un rato y luego tome medidas

Si hay un comando que ya ha adquirido el bloqueo, lo ideal es que espere a que se complete y libere el bloqueo. Sin embargo, si el comando tarda más de lo esperado y estás seguro de que está atascado en algún sitio, puedes seguir adelante y matarlo usando los comandos kill o killall disponibles (más información sobre ellos aquí ). Esto debería resolver el problema al que te enfrentas.

Una cosa que vale la pena mencionar aquí es que nunca se recomienda matar un proceso «dpkg» directamente – puede corromper la base de datos de paquetes. Subrayo este punto porque ahora sabes que herramientas como «apt» y «apt-get» invocan «dpkg» internamente, así que es muy posible que pienses en matar el proceso «dpkg» si lo ves en la salida de comandos «ps».

Los procesos de matanza iniciados al ejecutar comandos apt, apt-get o aptitude generalmente son mucho más seguros.

Paso 3: Cuando la salida de comando «ps» no ayuda

Tenga en cuenta que además de las herramientas de línea de comandos como apt y apt-get, algunas aplicaciones basadas en GUI como el Software Center o el Update Manager también adquieren este bloqueo.

Nota : si está obteniendo el error relacionado con el bloqueo justo después de haber arrancado en Ubuntu, es muy posible que su operación se traslape con el sondeo automático iniciado por el update-manager. Esperar un poco debería resolver el problema en este caso.

Volviendo a las aplicaciones basadas en GUI de las que hablábamos, otra opción útil y que ahorra tiempo es usar el comando fusor.

Con «fuser» sólo necesitas saber a qué fichero se accede («/var/lib/dpkg/lock» en nuestro caso), y puedes matar el proceso de acceso a ese fichero aunque no sepas de qué proceso se trata. Por ejemplo:

sudo fusor -cuk /var/lib/dpkg/lock

Ten en cuenta que el comando fusor no liberará el bloqueo adquirido por el proceso que acabas de matar, así que tendrás que hacerlo manualmente:

sudo rm -f /var/lib/dpkg/lock

Nota : a » liberar el bloqueo » simplemente significa borrar el archivo «lock» para que otros procesos puedan » adquirir el bloqueo » recreándolo.

También es posible que necesite ejecutar los dos comandos siguientes:

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

Consejo importante : nunca borres archivos de bloqueo como primer paso – este debería ser tu último recurso.

Conclusión

En general, siempre es bueno entender la razón detrás del problema antes de seguir adelante y resolverlo. Intentar a ciegas soluciones para resolver un problema nunca le ayudará – puede que tenga éxito en algunos casos, pero la mayoría de las veces se encontrará en un lío aún mayor, especialmente si el sistema operativo es Linux.

¿Alguna vez ha enfrentado el error que discutimos aquí? ¿Cómo lo resolviste? Deje su respuesta en los comentarios.

Fuente: este post proviene de Vida Tecno, donde puedes consultar el contenido original.
¿Vulnera este post tus derechos? Pincha aquí.
¿Qué te ha parecido esta idea?

Esta idea proviene de:

Y estas son sus últimas ideas publicadas:

Etiquetas: Linux

Recomendamos

Relacionado

Linux

Cómo resolver Las siguientes firmas no eran válidas: Error de BADSIG en las actualizaciones de Ubuntu

Hacía mucho tiempo que no conectaba mi portátil Ubuntu a Internet. Como resultado, cuando lo conecté a Internet después de dos semanas de vacío, como todos sabemos que Ubuntu es bastante aficionado a proporcionar actualizaciones de forma regular, estaba esperando un montón de actualizaciones que se proporcionarán por Ubuntu. Escribí los siguientes comandos en la terminal para intentar actualizar e ...

Linux

La guía para principiantes del comando dpkg en el Distro de Linux basado en Debian

Cada distribución de Linux viene con un gestor de paquetes específico. Para Debian o una distribución basada en Debian, el gestor de paquetes por defecto es «apt» o «apt-get» o el gráfico Software Center/Synaptic. Estos gestores de paquetes, a su vez, confían en la herramienta de bajo nivel dpkg para gestionar los paquetes de software. En este artículo le mostramos los concepto ...

Linux

Cómo configurar AWStats en el servidor Ubuntu

AWStats es una herramienta de generación de informes de analítica web de código abierto que genera gráficamente estadísticas avanzadas de web, streaming, FTP o servidor de correo. Este analizador de registros funciona como un CGI o desde la línea de comandos y le muestra toda la información posible que su registro contiene en unas cuantas páginas web gráficas. Utiliza un archivo de información par ...

Linux

Cómo configurar la pila de LEMH (Linux, Nginx, MariaDB, HHVM) en el servidor Ubuntu

Si ha administrado un servidor Linux anteriormente, estará familiarizado con la pila LAMP (Linux, Apache, MySQL, PHP) comúnmente utilizada. Sin embargo, Apache, MySQL y PHP a veces pueden ser intensivos en recursos y pueden no ser los mejores para su servidor. En este tutorial, vamos a reemplazar todas y cada una de las partes de la pila, excepto Linux, con una alternativa mejor – Nginx, Mar ...

Linux

Cómo] Configurar la terminal como un fondo de pantalla transparente en el escritorio de Ubuntu

En Ubuntu (y muchas otras distribuciones de Linux), el Terminal es la aplicación única que se utiliza con más frecuencia. En lugar de ver el monótono fondo blanco sobre negro cada vez que lo lanza, ¿por qué no ponerlo como un caramelo en su escritorio? Configuración del perfil de terminal El perfil le permite configurar el comportamiento y el aspecto de su Terminal. Abra su Terminal ( Aplicaci ...

Linux

Cómo instalar y configurar Samba en Ubuntu para compartir archivos

Samba es un servicio útil que se encuentra en la mayoría de los sistemas Unix y Linux y que le permite compartir archivos y servicios de impresión con otro ordenador, especialmente con un cliente de Microsoft Windows. En Ubuntu, aunque el gestor de archivos Nautiilus viene con una serie de protocolos de conexión para acceder a los archivos desde un servidor remoto, no convierte la máquina en un se ...

Linux

Cómo instalar el subsistema Linux para Windows 10 (y Ejecutar Linux en Windows)

Como sistema operativo, Linux ofrece una estabilidad impresionante, un increíble soporte de código abierto y una increíble gama de potentes herramientas de administración. Aunque Windows 10 es capaz de ofrecer soporte para algunas de estas cosas, no hay nada como usar un intérprete de comandos bash para administrar sus máquinas locales y de red. Hasta hace poco, la ejecución de bash en Windows req ...

Linux

Optimizando el rendimiento de Apache – Parte 2

Este artículo forma parte de la serie Guía del servidor Apache : Securing Apache on Ubuntu – Part 1 Securing Apache on Ubuntu – Part 2 Optimización del rendimiento de Apache – Parte 1 Optimizando el rendimiento de Apache – Parte 2 Setting Up Name-Based Virtualhost Apache Configuración de IP y Port-Based Virtualhost en Apache Cómo configurar el directorio web de protecc ...

Linux

Cómo comprobar y gestionar el espacio en disco en Linux

Una habilidad esencial que los administradores de sistemas necesitan es mantener la salud de los sistemas en línea y fuera de línea. Esto es especialmente importante en servidores de producción donde el tiempo de inactividad o los problemas pueden causar pérdida de datos. Un problema común es que las actualizaciones fallan debido a la falta de espacio en disco, pero hay algunas comprobaciones senc ...