Cómo arreglar paquetes rotos en Linux

Los administradores de paquetes de Linux, como Apt y DNF, son extremadamente poderosos e intuitivos, pero eso no significa que las cosas no puedan salir mal. Ocasionalmente, la instalación de un paquete sale mal y usted tiene que recoger las piezas. Los administradores de paquetes tienen la capacidad de reparar paquetes rotos y omitir actualizaciones rotas para que su sistema vuelva a funcionar y evitar problemas en el futuro. Este artículo cubre cómo reparar paquetes rotos en Linux.

Estos consejos y trucos deberían ayudarlo a despegarse en la mayoría de los casos. Todos son bastante universales, pero cada situación es diferente, así que tenlo en cuenta cuando intentes depurar tu propia situación.

Reparación de paquetes rotos en Ubuntu/Mint/Debian

Apt tiene un par de banderas que puede usar para reparar dependencias faltantes o paquetes que se rompieron por una razón u otra durante la instalación. Un uso común aquí sería instalar un .deb de terceros y descubrir que tenía dependencias que no conocía. Esas dependencias probablemente no se incorporarán por sí solas, y dpkg se quejará de que falta el paquete en ellos. En cualquier caso, puedes intentar los siguientes pasos.

Falta la corrección de Ubuntu Apt

Primero, ejecute una actualización para asegurarse de que no haya versiones más nuevas de los paquetes requeridos.

sudo apt --fix-missing update

A continuación, puede intentar obligar a Apt a buscar y corregir las dependencias faltantes o los paquetes rotos cuando intente instalar el paquete ofensivo nuevamente. Esto realmente instalará las dependencias faltantes y reparará las instalaciones existentes.

Otro lugar donde puede aparecer un error en la instalación de paquetes es el proceso de configuración. Detrás de escena, dpkg se encarga de esta parte, no Apt, por lo que sería lógico que cuando un paquete falla durante la configuración, dpkg es la herramienta a la que recurrir para solucionarlo.

Reconfigurar Ubuntu DPKG

Empiece por intentar forzar a dpkg a reconfigurar cualquier paquete roto o parcialmente configurado.

Si eso no resuelve el problema, puede adoptar un enfoque más contundente. Comience enumerando los paquetes que dpkg marcó como que requieren una reinstalación.

Debería ver los paquetes problemáticos allí. Siempre que no haya nada que no parezca pertenecer allí, puede forzar la eliminación de los paquetes rotos.

sudo dpkg --remove --force-remove-reinstreq [package name]

Cuando termine dpkg, intente limpiar con Apt.

sudo apt clean
sudo apt update

Con un poco de suerte, eso te llevará de vuelta a donde empezaste. No obtendrá los paquetes rotos que intentó instalar, pero al menos Apt volverá a funcionar y podrá volver a usarlo para intentar instalar el paquete y sus dependencias.

Bloqueo DPKG permanente

Hay un problema menos común con los bloqueos de dpkg que le impiden hacer algo. Cada vez que intenta usar Apt o dpkg, obtiene un error que dice que ya hay otra aplicación… cuando no es así.

En realidad, es fácil eliminar el archivo de bloqueo que le impide usar Apt y volver a hacer lo que necesita. A veces, estos archivos de bloqueo permanecen en su lugar después de un error de instalación o un corte de energía, lo que descarrila el proceso y evita que el archivo se elimine automáticamente. En este caso, tendrás que hacerlo tú mismo.

sudo rm /var/lib/apt/lists/lock

Por si acaso, elimine el bloqueo en caché.

sudo rm /var/cache/apt/archives/lock

Reparación de paquetes rotos en Fedora/CentOS/RHEL

La reparación de paquetes rotos en Fedora/CentOS/RHEL es menos común, ya que yum y dnf hacen un gran trabajo para asegurarse de que los paquetes se instalen correctamente. Sin embargo, a veces las cosas se mezclan en el uso del paquete. El comando para hacer eso en sistemas basados ​​en rpm es:

Arreglar paquetes rotos Linux Rpm Va

los -V La opción es para verificar, lo que significa que revisará y comparará la información de los archivos instalados con la información almacenada en el rpm base de datos. Esto es un poco inútil, ya que generalmente le dará una larga lista de archivos, pero puede darle un punto de partida si tiene problemas con una aplicación en particular. Puedes ejecutar un dnf reinstall en cualquier paquete que vea en esa lista que podría estar causándole problemas.

sudo dnf --refresh reinstall PACKAGE_NAME

Eso configurará todos los metadatos como caducados, por lo que rastreará todos los repositorios que haya habilitado y buscará una nueva versión de ese paquete. Si encuentra que hay dependencias rotas con ese paquete, DNF probablemente se quejará y le dirá que use el --skip-broken bandera. Esto también puede significar que no tiene un repositorio en particular habilitado para obtener una dependencia, por lo que es posible que deba investigar un poco allí.

Reparación de paquetes rotos en Arch

Aunque el administrador de paquetes de Arch tiene muchas similitudes con el de Debian, es una bestia completamente diferente. El primer paso para diagnosticar su problema es asegurarse de que los repositorios estén actualizados e intentar una actualización completa:

Si sus intentos de instalar su paquete o hacer una actualización del sistema siguen fallando, tenemos que aislar la causa de acuerdo con lo que le dijo la terminal:

“Paquete no válido o corrupto”

Hacer cambios en «pacman.conf» de cualquier manera puede causar problemas que causen pacman para etiquetar incorrectamente los paquetes como corruptos. El culpable más probable aquí es un archivo parcial («.part») en el caché del administrador de paquetes, y su solución es eliminarlo:

sudo find /var/cache/pacman/pkg/ -iname "*.part" -delete

Siempre existe la posibilidad de que el paquete que está intentando instalar esté corrupto y no proporcione metadatos válidos a Arch. En ese caso, tendrá que esperar a que el mantenedor del paquete lo actualice. Si el paquete está instalado en su sistema y causa problemas durante una actualización, elimínelo con:

sudo pacman -Rns [package name]

“No se puede bloquear la base de datos”

Al igual que el apt de Debian, el administrador de paquetes de Arch crea un archivo de bloqueo durante las operaciones. Si experimentó un corte de energía o pacman experimentó una interrupción fuerte de la que no pudo eliminar el bloqueo, es muy probable que deje un archivo de bloqueo.

Primero, averigüe si algún proceso en su computadora todavía está usando el archivo:

sudo fuser /var/lib/pacman/db.lck

Paquetes de Linux Lockpid

En la imagen de arriba, un proceso con ID 121497 está usando el bloqueo de archivos. Si tiene curiosidad sobre el proceso y desea obtener más información, utilice ps:

Paquetes Linux Pspid

En mi caso, otra instancia de pacman posee el archivo de bloqueo. La forma más segura de eliminar el bloqueo es eliminar primero ese proceso:

Ahora que el proceso está muerto, elimine el archivo de bloqueo:

sudo rm /var/lib/pacman/db.lck

¡Ya puedes irte!

“Archivos en conflicto/Existe un archivo en el sistema de archivos”

Esto sucede durante las actualizaciones donde pacman detecta un conflicto. Antes de arreglar cualquier cosa, preste atención a la ruta del archivo del que se queja el administrador de paquetes.

Lo primero que tenemos que averiguar es a quién pertenece el archivo:

pacman -Qo [path to the file]

Si es propiedad de un usuario y no de otro paquete, simplemente elimínelo:

sudo rm [path to the file]

Si es propiedad de otro paquete, lo más seguro que puede hacer es esperar a que el mantenedor del paquete solucione este conflicto por sí mismo. Sin embargo, a veces esa no es una opción y desea hacer las cosas ahora.

La forma más sencilla de lograr esto es usando el --overwrite bandera en pacman. Solo sepa que esto generalmente no es seguro y podría provocar que algunas aplicaciones no funcionen correctamente en su sistema. Sugiero hacer copias de seguridad antes de ejecutar esto.

los --overwrite flag permite que el administrador de paquetes de Arch ignore las reglas de propiedad para un archivo en particular y simplemente avance a través de la actualización. Ejemplo:

pacman -Syu --overwrite [file name]

Si el comando anterior no funciona, reemplace el nombre del archivo con su ruta absoluta. Algunos usuarios informaron que quitar la barra inclinada («/») delante de la ruta hace que el comando funcione cuando es obstinado.

Preguntas frecuentes

1. ¿Puedo aplicar Arch Fixes con un ayudante de AUR?

Generalmente, sí. Reemplace «pacman» con su ayudante AUR en los comandos de esta guía. Ejemplo:

2. ¿Son seguras estas instrucciones?

En su mayor parte, cada instrucción aquí es tan segura como cualquier otra operación de administración de paquetes. La principal excepción es cuando está eliminando archivos de bloqueo. Si tiene una forma de hacerlo, siempre es importante eliminar cualquier proceso que pueda estar usando esos archivos antes de eliminarlos. Esté al tanto de lo que está haciendo su sistema. ¡Es posible que haya olvidado una instancia de apt o pacman ejecutándose en alguna parte!

La mejor práctica sería siempre hacer una copia de seguridad de su sistema antes de cualquier actualización.

3. ¿Qué debo hacer si interrumpo una actualización?

Interrumpir un proceso de actualización presionando Ctrl + C , eliminando el proceso del administrador de paquetes o cerrando la terminal prematuramente dará como resultado cierto nivel de corrupción en la base de datos de paquetes que podría complicarle las cosas cuando intente instalar otra cosa. Para solucionar esto, borre el caché y repita la actualización.

En Debian/Ubuntu/Mint/Pop!_OS/etc.:

En Fedora/CentOS/RHEL:

En Arco:

Terminando

Con suerte, una de estas correcciones funcionó para usted y volverá a trabajar en su sistema Linux normalmente. Recuerde que la mejor manera de manejar una situación totalmente fuera de control es tratar de volver a ser como antes. No intente encender y agregar más cosas para resolver una rotura agregando más cosas a menos que sepa exactamente lo que está haciendo. Lo más probable es que termines con un lío enredado de cosas rotas que serán más difíciles de resolver.

También es posible que deba limpiar su sistema Linux para deshacerse de paquetes innecesarios y rotos. Si la causa es que una PC antigua no admite software más nuevo, también puede utilizar estas tres formas de hacer un buen uso de su PC anterior.

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *