¿Cómo modifican las diferentes distribuciones las ubicaciones de los archivos de configuración para los programas?


14

Muchos programas de Linux afirman que la ubicación de los archivos de configuración depende de la distribución. Me preguntaba cómo las diferentes distribuciones hacen esto. ¿Realmente modifican el código fuente? ¿Hay parámetros de compilación que establezcan estas ubicaciones? He buscado esto pero no puedo encontrar ninguna información. Sé que está ahí afuera, parece que no puedo encontrarlo. ¿Cuál es la "forma de Linux" con respecto a esto?

Respuestas:


14

Depende de la distribución y la fuente original ('ascendente').

Con la mayoría de los paquetes que utilizan autoconf y automake, es posible especificar el directorio donde se buscarán los archivos de configuración utilizando el --sysconfdirparámetro. Otros sistemas de compilación (por ejemplo, CMake) tienen opciones similares. Si el paquete fuente usa uno de esos sistemas de compilación, entonces el empaquetador puede especificar fácilmente los parámetros correctos y no se requieren parches. Incluso si no lo hacen (p. Ej., Debido a que la fuente ascendente utiliza algún sistema de compilación local), a menudo todavía es posible especificar alguna configuración de compilación para mover los archivos de configuración a una ubicación particular sin tener que parchear la fuente ascendente.

Si ese no es el caso, entonces a menudo la distribución tendrá que agregar parches a la fuente para que mueva los archivos en lo que consideran la ubicación "correcta". En la mayoría de los casos, los empaquetadores de distribución escribirán un parche que permitirá configurar la fuente en el sentido anterior, de modo que puedan enviar el parche a los mantenedores en sentido ascendente, y no tengan que seguir manteniéndolo / actualizándolo. Este es el caso para las ubicaciones de los archivos de configuración, pero también para otras cosas, como los bin/ sbinejecutables (la interpretación de lo que es un comando del administrador del sistema difiere entre las distribuciones), la ubicación donde escribir la documentación, etc.

Nota al margen: si se mantiene un cierto software libre, por favor, que sea fácil para los empaquetadores para hablar con usted. De lo contrario, tenemos que mantener tales parches sin una razón particularmente buena ...


8

Tienen parches aplicados al árbol de código fuente que adaptan las ubicaciones.

Hay suficientes "estándares" disponibles para que cada distribución pueda elegir según sus preferencias (personales) y / o prácticas históricas. Rara vez hay una solución que solo tenga ventajas. Eso a veces es molesto / confuso, pero la consistencia dentro de una distribución es el objetivo más importante: conduce a menos desorden y adivina más fácilmente dónde podrían estar las cosas para el programa Y si ya sabe dónde están las cosas similares (archivos de instalación / configuración, por ejemplo) para el programa X.

Ejemplo de aplicación de parche

Mi paquete de Python ruamel.yamlestá disponible en Debian Sid. Solía ​​depender de ruamel.base, y los usuarios que instalaron a través de PyPI podrían tener versiones anteriores e incompatibles de ruamel.baseinstaladas. El uso de setup.py/ PyPI no es una gestión de paquetes real, por lo que no puede eliminar un paquete instalado previamente a través de dependencias. Resolví el problema para los usuarios de PyPI haciendo una versión más nueva ruamel.baseque eliminara los problemas asociados con los ruamel.basepaquetes más antiguos y que ruamel.yamldependiera de esa versión más nueva.

Para Sid esto no es un problema: las versiones anteriores de ruamel.baseno se instalaron (o podrían eliminarse mediante la administración de paquetes). Por lo tanto, aplican un parche , que puede encontrar en la ruamel.yamlpágina de información de Sid que elimina la dependencia de ruamel.yamlon ruamel.base.

Otras distribuciones tienen configuraciones similares. Por ejemplo, si observa las especificaciones de creación de un archivo RPM de origen (por ejemplo, para RedHat / CentOS / SuSE), verá que combina el tarball original original de un paquete con uno o más parches que se aplicarán antes de configurar / compilar .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.