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

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

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

Respuesta1

Depende de la distribución y de la fuente original ("upstream").

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 utiliza 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 (por ejemplo, porque la fuente ascendente usa algún sistema de compilación local), a menudo aún 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, a menudo la distribución tendrá que agregar parches al código fuente para que mueva los archivos a 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á que el código fuente se configure en el sentido anterior, de modo que puedan enviar el parche a los mantenedores ascendentes y no tener que seguir manteniéndolo/actualizándolo. Este es el caso de las ubicaciones de los archivos de configuración, pero también de otras cosas, como los ejecutables bin/ sbin(la interpretación de lo que es un comando de administrador del sistema difiere entre distribuciones), la ubicación donde escribir la documentación, etc.

Nota al margen: si mantiene algún software gratuito,por favorFacilite a los empaquetadores hablar con usted. De lo contrario, tendremos que mantener dichos parches sin ninguna razón particularmente buena...

Respuesta2

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 en función de preferencias (personales) y/o prácticas históricas. Pocas veces hay una solución quesolotiene ventajas. Esto a veces resulta molesto/confuso, pero la coherencia dentro de una distribución es el objetivo más importante: conduce a menos desorden y a adivinar más fácilmente dónde podrían estar las cosas para el programa Y si ya sabes dónde están cosas similares (por ejemplo, archivos de instalación/configuración) para el programa. X.

Ejemplo de aplicación de parche

Mi paquete Python ruamel.yamlestá disponible en Debian Sid. Solía ​​​​depender de ruamel.base, y los usuarios que instalaron a través de PyPI aún podrían tener instaladas versiones anteriores e incompatibles ruamel.base. Usar setup.py/PyPI no es una gestión real de paquetes, por lo que no puedesborrarun paquete previamente instalado a través de dependencias. Resolví el problema para los usuarios de PyPI creando una versión más nueva que ruamel.baseeliminó los problemas asociados con ruamel.basepaquetes más antiguos y los hizo ruamel.yamldependientes de esa versión más nueva.

Para Sid esto no es un problema: las versiones anteriores de ruamel.baseno estaban instaladas (o podían eliminarse mediante la administración de paquetes). Por ello aplican unaparche, que puedes encontrar en elruamel.yamlpágina de información de Sideso elimina la dependencia de ruamel.yamlon ruamel.base.

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

información relacionada