¿Qué se entiende por "depende" y "pre-depende", y la diferencia entre esos 2 tipos de requisitos de paquete cuando estoy instalando algo en Ubuntu?
fuente
¿Qué se entiende por "depende" y "pre-depende", y la diferencia entre esos 2 tipos de requisitos de paquete cuando estoy instalando algo en Ubuntu?
Tomado de este enlace: https://www.debian.org/doc/debian-policy/#document-ch-relationships
Hay 5 tipos de dependencias:
El significado de los cinco campos de dependencia es el siguiente:
Esto declara una dependencia absoluta. Un paquete no se configurará a menos que todos los paquetes enumerados en su campo Depende se hayan configurado correctamente. El campo Depende debe utilizarse si se requiere el paquete dependiente para que el paquete dependiente proporcione una cantidad significativa de funcionalidad. El campo Depende también se debe usar si las secuencias de comandos postinst o prerm requieren que el paquete dependiente esté desempaquetado o configurado para ejecutarse. En el caso de la configuración posterior, los paquetes dependientes se desempaquetarán y configurarán primero.
En el caso de acciones previas u otras acciones posteriores, las dependencias del paquete normalmente se desempaquetarán al menos, pero solo pueden estar "medio instaladas" si falla una actualización previa de la dependencia. Finalmente, el campo Depende debe usarse si el script postrm necesita el paquete dependiente para limpiar completamente después de la eliminación del paquete. No hay garantía de que las dependencias del paquete estarán disponibles cuando se ejecute postrm, pero es más probable que el paquete dependiente esté disponible si el paquete declara una dependencia (particularmente en el caso de la eliminación postrm). El script postrm debe omitir correctamente las acciones que requieren una dependencia si esa dependencia no está disponible.
Este campo es como Depende, excepto que también obliga a dpkg a completar la instalación de los paquetes nombrados incluso antes de comenzar la instalación del paquete que declara la dependencia previa . Funciona así, cuando un paquete que declara una dependencia previa está a punto de se desempaquetará, la dependencia previa puede satisfacerse si el paquete dependiente está completamente configurado, o incluso si el (los) paquete (s) dependiente (s) solo se desempaquetan o están en el estado "Medio configurado", siempre que se hayan configurado correctamente en algún momento en el pasado (y no eliminado o eliminado parcialmente desde entonces).
En este caso, las versiones configuradas previamente y actualmente desempaquetadas o "semiconfiguradas" deben cumplir con cualquier cláusula de versión en el campo Predepende. Cuando el paquete que declara una dependencia previa está a punto de configurarse, la dependencia previa se tratará como una dependencia normal. Se considerará satisfecho solo si el paquete dependiente se ha configurado correctamente. Sin embargo, a diferencia de Depends, Pre-Depends no permite que se rompan las dependencias circulares. Si se encuentra una dependencia circular al intentar cumplir con las Predependencias, la instalación se cancelará.
Los pre-dependientes también son necesarios si el script preinst depende del paquete nombrado. Es mejor evitar esta situación si es posible. Pre-Depends debe usarse con moderación, preferiblemente solo por paquetes cuya actualización o instalación prematura dificulte la capacidad del sistema para continuar con cualquier actualización que pueda estar en progreso.
Versión más pequeña:
El término "dependencia" puede usarse ampliamente para abarcar las relaciones "Depende" y "Predepende" (y, a veces, incluso otras relaciones más débiles), o puede usarse de forma restringida como sinónimo de "Depende".
La diferencia entre las relaciones de paquete "Depende" y "Predepende" es que si X depende de Y, entonces Y debe estar completamente configurado antes de que X se configure. (La configuración es el paso de instalación donde un paquete, una vez que sus archivos se descomprimen en las ubicaciones adecuadas, es decir, una vez "instalado", tiene cualquier otro cambio necesario para que sea posible utilizar el software que proporciona. Por ejemplo , la configuración de un servidor HTTP podría implicar asegurarse de que haya un
www
usuario con las capacidades adecuadas y un/var/www
directorio con los permisos adecuados.) Por el contrario, si X depende previamente de Y, entonces Y debe estar instalado y (generalmente) completamente configurado antes de que X sea uniforme. instalada .Consulte la Sección 7.2 del Manual de Políticas de Debian para más detalles. Cito las dos secciones más relevantes aquí, pero hay otra información en esa sección (y en el capítulo 7 de manera más general) que ayuda a aclarar cómo funcionan las dependencias.
fuente