Los paquetes rotos en Linux son paquetes de software que se han corrompido o dañado. Puede utilizar gestores de paquetes para identificar y reparar los paquetes rotos y evitar problemas como el mal funcionamiento de los programas, la inestabilidad del sistema y la pérdida de datos.
A continuación se explica cómo encontrar y resolver errores de paquetes rotos en Linux.
¿Cómo se rompe un paquete Linux?
Los paquetes Linux son archivos que contienen código de software instalable. Estos paquetes tienen todos los archivos esenciales, dependencias e instrucciones para que el software funcione según lo previsto. Cuando un paquete se rompe, significa que algo ha ido mal con su instalación o configuración, y ya no es funcional o actualizado.
Por ejemplo, cuando un proceso se interrumpe, puede dejar un paquete en un estado medio instalado o medio eliminado. Además, pueden surgir problemas de dependencias cuando un paquete depende de otros paquetes (dependencias) para funcionar correctamente, y si una dependencia falta o está rota, puede inutilizar el paquete principal.
Puede leer también | La Importancia de los paquetes Snap para KDE
Además, los problemas de repositorio también pueden provocar paquetes rotos. Los repositorios son colecciones de paquetes de software, y si están mal configurados o contienen paquetes defectuosos, pueden causar problemas con los paquetes instalados desde ellos.
Cómo arreglar paquetes rotos en Linux
El proceso de arreglar paquetes rotos varía dependiendo de la distribución de Linux que estés usando. Aquí, discutiremos los métodos para Ubuntu/Debian, Fedora/CentOS/RHEL, y Arch Linux.
Puede leer también | Comparación de Sistemas de Gestión de Paquetes en Linux: Snap, Yum, RPM y Flatpak
Eliminar paquetes rotos puede ser arriesgado si se hace incorrectamente. Generalmente se recomienda intentar arreglar el paquete roto primero. Sin embargo, si el paquete ya no es necesario, y está seguro de que no está causando conflictos, puede eliminarlo utilizando el comando apropiado del gestor de paquetes.
Actualización de paquetes rotos en Ubuntu y Debian
Si usted es un usuario de Ubuntu/Debian, puede arreglar los paquetes rotos usando APT o el comando dpkg. Empecemos por actualizar los paquetes usando APT.
APT es el gestor de paquetes por defecto en Ubuntu, Debian y distribuciones relacionadas. Puede utilizarlo para instalar, actualizar y eliminar paquetes.
Ejecute el siguiente comando para actualizar el índice de paquetes mientras corrige los paquetes corruptos:
sudo apt update --fix-missing
Utilice la opción -f o --fix-broken para identificar y corregir paquetes rotos reinstalándolos desde los repositorios oficiales.
sudo apt install -f
Después de instalar los paquetes rotos, actualice su lista de paquetes ejecutando esto:
sudo apt update
Si la salida no tiene ningún error, has arreglado los paquetes rotos.
También puede usar el comando dpkg para detectar y arreglar paquetes rotos. Para reconfigurar cualquier paquete parcialmente instalado usando dpkg, use:
sudo dpkg --configure -a
Aquí, la opción --configure le dice a dpkg que configure un paquete. Cuando la instalación de un paquete falla, puede dejar el paquete en un estado no configurado. Esta opción ayuda a resolver estos problemas. Además, la opción -a significa all y se utiliza para seleccionar todos los paquetes que están en un estado no configurado, en lugar de especificar un único paquete.
Canalicemos grep con dpkg para ver una lista de paquetes rotos que necesitan ser reinstalados:
sudo dpkg -l | grep ^..r
Una vez que tenga la lista de programas rotos, puede eliminarlos uno por uno usando el siguiente comando:
sudo dpkg --purge <nombre_paquete>
Aquí, la opción --purge le dice a dpkg que elimine completamente el paquete, incluyendo sus archivos de configuración. Después de eliminar todos los paquetes rotos, necesita limpiar la caché de paquetes usando:
sudo apt clean
Por último, para actualizar la lista de paquetes, ejecute:
sudo apt update
Si no hay errores en la salida, has arreglado con éxito todos los paquetes rotos.
A veces, mientras se arreglan los paquetes rotos, aparece el error dpkg lock. Este error ocurre cuando intenta instalar un paquete, pero el sistema piensa que ya se está realizando otra instalación. A veces, aparece incluso si no hay otras instalaciones en curso.
Puede leer también | El gestor de paquetes de Windows ahora admite alias (así que puedes utilizar comandos de Linux)
Para solucionarlo, puede esperar a que finalicen las instalaciones en curso, comprobar si hay actualizaciones automáticas o, si es necesario, eliminar cuidadosamente el archivo de bloqueo usted mismo. Para eliminar el archivo de bloqueo, ejecute este comando:
sudo rm /var/lib/apt/lists/lock
También puede eliminar el bloqueo de caché con este comando:
sudo rm /var/cache/apt/archives/lock
Al eliminar estos archivos de bloqueo, podrá volver a utilizar los comandos de gestión de paquetes sin ningún problema.
Reinstalar paquetes corruptos en Fedora y RHEL
YUM y DNF son útiles para manejar paquetes rotos, pero aún pueden ocurrir problemas dado el gran número de paquetes presentes en un sistema Linux. Sin embargo, puede arreglar problemas de paquetes rotos en Fedora, CentOS y RHEL utilizando el gestor de paquetes RPM.
Puede leer también | Souk, un nuevo gestor independiente para paquetes Flatpak
Para identificar problemas potenciales, verifique todos los paquetes en su sistema usando la bandera -V:
sudo rpm -Va
Este comando comprueba los metadatos de los paquetes almacenados en la base de datos RPM para identificar cualquier problema con sus paquetes. También puede resolver problemas de paquetes rotos actualizando los paquetes instalados a su última versión disponible.
sudo dnf upgrade -b
La opción -b fuerza a DNF a considerar sólo la última versión de los paquetes.
Encontrar un paquete roto entre muchos puede ser frustrante. Sin embargo, una vez que haya identificado un paquete específico que está roto, puede reinstalarlo utilizando este comando dnf:
sudo dnf --refresh reinstalar <nombre_paquete>
Asegúrese de sustituir <nombre_paquete> por el nombre real del paquete roto.
Si está utilizando YUM y se encuentra con un error de paquete roto, intente reinstalar todos los paquetes.
sudo yum reinstall \*
Desafortunadamente, si reinstalar todos los paquetes no resuelve su problema, entonces puede intentar omitir los paquetes rotos.
sudo yum update --skip-broken
Si el problema no se resuelve después de seguir todos los pasos anteriores, entonces puede que tenga que eliminar el paquete roto y sus dependencias:
sudo dnf remove nombrepaquete
Arreglar paquetes rotos en Arch Linux
En Arch Linux, puede detectar y arreglar fácilmente paquetes rotos usando Pacman. Pacman tiene una opción -Qk para comprobar si hay problemas con los paquetes en el sistema. Puede obtener una lista de todos los paquetes actualmente instalados en su sistema usando esta opción:
sudo pacman -Qk
Puede utilizar esta lista para comprobar el software instalado, identificar paquetes obsoletos y realizar un seguimiento de la configuración del sistema. Sin embargo, para obtener una lista de todos los paquetes con archivos faltantes, ejecute esto:
sudo pacman -Qk 2>/dev/null | grep -v ' 0 missing files'
Una vez que tenga la lista de paquetes rotos, puede reinstalarlos. Puede hacerlo individualmente con el siguiente comando:
sudo pacman -S --force <nombre-paquete>
Puede utilizar la opción --force para sobrescribir los paquetes existentes. Pacman actualizará la lista de paquetes y reinstalará el paquete especificado, solucionando cualquier dependencia rota en el camino.
También puede arreglar los paquetes rotos actualizando la lista de paquetes de su sistema.
sudo pacman -Syu
Haz siempre una copia de seguridad del sistema
Sólo un aviso, arreglar paquetes rotos no debería afectar a la estabilidad de tu sistema, pero siempre es una buena idea hacer una copia de seguridad de tu sistema antes de hacer cualquier cambio. Para evitar paquetes rotos en primer lugar, mantén tu lista de paquetes actualizada, ten cuidado al instalar o eliminar paquetes y utiliza las funciones de seguridad del gestor de paquetes.