¿Cómo se rompe un paquete Debian?

¿Cómo se rompe un paquete Debian?

He visto muchas respuestas sobre cómo reparar un paquete roto en múltiples distribuciones, lo que parece ser muy útil y resolver los problemas. Pero tengo curiosidad por saber cómo se rompe un paquete.

Estaba solucionando problemas de una canalización que usaba un apt-get installcomando y no se pudo instalar alguna dependencia. Después de algunos intentos, pude hacer que la canalización funcionara. Pero buscando soluciones, descubrí que apt-get tiene un --fix-brokenindicador muy útil, que resolvió mi problema. Pero la pregunta sigue siendo,¿cual fue el problema? No tengo claro cómo encontrar el problema exacto que --fix-brokenme resolvió.

Mirando su página de manual, hay información genérica sobre:

Fix; attempt to correct a system with broken dependencies in place. This option, when
           used with install/remove, can omit any packages to permit APT to deduce a likely
           solution. If packages are specified, these have to completely correct the problem. The
           option is sometimes necessary when running APT for the first time; APT itself does not
           allow broken package dependencies to exist on a system. It is possible that a system's
           dependency structure can be so corrupt as to require manual intervention.

En el caso de una tubería, cuyo sistema está instanciado en este momento, ¿qué podría haber pasado con el paquete que lo hizo fallar? ¿Alguien puede profundizar más sobre cómo funcionan estas banderas? Y más concretamente, ¿cómo se rompe un paquete?

Respuesta1

La rotura típica que apt install --fix-brokensoluciona son las dependencias que faltan. La forma habitualesoLo que sucede es usarlo dpkgpara instalar directamente un paquete: dpkgsabrá si faltan dependencias, pero no puede recuperar las dependencias que faltan, por lo que el paquete terminará parcialmente instalado (instalado pero no configurado). apt install --fix-brokenresuelve las dependencias rotas e instala los paquetes necesarios, o elimina paquetes completamente rotos si sus dependencias no se pueden resolver.

Si ustedsonSi lo usa dpkgdirectamente, normalmente es mejor usarlo apt install: puede apuntarlo a un paquete local y resolverá sus dependencias durante la instalación.

Respuesta2

Un paquete es solo una pieza de software con una lista de dependencias. Si su sistema tiene algunas instalaciones no estándar (creadas desde el código fuente, por ejemplo), o si ha vinculado una versión específica de un paquete (usando "dpkg hold" o "dnf --exclude") para evitar interrumpir alguna otra instalación , luego intentar instalar un paquete que requiere un estado diferente de todos esos paquetes dependientes fallará, lo que dará como resultado un paquete "roto".

Es importante tener en cuenta que es posible que no haya ningún problema con el paquete o el estado de su sistema. El paquete original puede estar bien con su compilación manual (lo que sea), pero como no es lo que esesperadose ve roto.

información relacionada