Depende de la distribución y de la fuente original ("upstream").
Con la mayoría de los paquetes que usan autoconf y automake, es posible especificar el directorio donde se buscarán los archivos de configuración usando el --sysconfdir
pará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., porque la fuente ascendente usa algún sistema de compilación desarrollado internamente), a menudo 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 considera que es la ubicación 'correcta'. En la mayoría de los casos, los empaquetadores de distribución luego escribirán un parche que permitirá que la fuente se configure en el sentido anterior, para que puedan enviar el parche a los mantenedores ascendentes y no tengan 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 el bin
/sbin
ejecutables (la interpretación de lo que es un comando del administrador del sistema difiere entre distribuciones), ubicación donde escribir documentación, etc.
Nota al margen:si mantiene algún software gratuito, por favor facilite que los empaquetadores hablen con usted. De lo contrario, tenemos que mantener dichos parches sin ninguna razón particularmente buena...
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 sólo tiene 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 es más fácil adivinar 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.yaml
está disponible en Debian Sid. Solía depender de ruamel.base
, y es posible que los usuarios que instalaron a través de PyPI aún tengan versiones anteriores e incompatibles de ruamel.base
instalado. Usando setup.py
/PyPI no es una gestión de paquetes real, por lo que no puede eliminar un paquete previamente instalado a través de dependencias. Resolví el problema para los usuarios de PyPI creando una versión más nueva de ruamel.base
que eliminó los problemas asociados con el antiguo ruamel.base
paquetes e hizo ruamel.yaml
depende de esa versión más nueva.
Para Sid esto no es un problema:versiones anteriores de ruamel.base
no se instalaron (o podrían eliminarse a través de la administración de paquetes). Por ello aplican un parche, que puedes encontrar en el ruamel.yaml
página de información para Sid que elimina la dependencia de ruamel.yaml
en ruamel.base
.
Otras distribuciones tienen configuraciones similares. P.ej. si observa las especificaciones para crear 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.