Comment les différentes distributions modifient-elles l'emplacement des fichiers de configuration des programmes?

14

De nombreux programmes Linux indiquent que l'emplacement des fichiers de configuration dépend de la distribution. Je me demandais comment les différentes distributions font cela. Modifient-ils réellement le code source? Y a-t-il des paramètres de construction qui définissent ces emplacements? J'ai recherché ceci mais je ne trouve aucune information. Je sais que c'est là-bas, je n'arrive pas à le trouver. Quelle est la "manière Linux" à ce sujet?

bfvanrooyen
la source

Réponses:

14

Cela dépend de la distribution et de la source d'origine («en amont»).

Avec la plupart des packages utilisant autoconf et automake, il est possible de spécifier le répertoire dans lequel les fichiers de configuration seront recherchés à l'aide du --sysconfdirparamètre. D'autres systèmes de construction (par exemple, CMake) ont des options similaires. Si le package source utilise l'un de ces systèmes de construction, le packager peut facilement spécifier les bons paramètres et aucun correctif n'est requis. Même s'ils ne le font pas (par exemple, parce que la source en amont utilise un système de construction maison), il est souvent toujours possible de spécifier une configuration de construction pour déplacer les fichiers de configuration vers un emplacement particulier sans avoir à patcher la source en amont.

Si ce n'est pas le cas, alors souvent la distribution devra en effet ajouter des correctifs à la source pour lui faire déplacer les fichiers dans ce qu'ils considèrent comme le «bon» emplacement. Dans la plupart des cas, les conditionneurs de distribution écriront alors un correctif qui permettra à la source d'être configurée dans le sens ci-dessus, afin qu'ils puissent envoyer le correctif aux mainteneurs en amont, et n'aient pas à continuer de le maintenir / le mettre à jour. C'est le cas pour les emplacements des fichiers de configuration, mais aussi pour d'autres choses, comme le bin/sbin exécutables (l'interprétation de ce qui est une commande d'administrateur système diffère selon les distributions), l'emplacement où écrire la documentation, etc.

Note latérale: si vous maintenez un logiciel gratuit, veuillez faciliter la conversation avec les emballeurs. Sinon, nous devons maintenir ces correctifs sans raison particulièrement bonne ...

Wouter Verhelst
la source
8

Ils ont des correctifs appliqués à l'arborescence du code source qui adaptent les emplacements.

Il existe suffisamment de «normes» disponibles pour que chaque distribution puisse faire son choix en fonction de préférences (personnelles) et / ou de pratiques historiques. Il y a rarement une solution qui ne n'a des avantages. C'est parfois ennuyeux / déroutant, mais la cohérence au sein d'une distribution est l'objectif le plus important: cela conduit à moins d'encombrement et à deviner plus facilement où les choses pourraient être pour le programme Y si vous savez déjà où des choses similaires (fichiers d'installation / de configuration, par exemple) sont pour le programme X.

Exemple d'application de patch

Mon paquet python ruamel.yamlest disponible dans Debian Sid. Il dépendait auparavant ruamel.base, et les utilisateurs qui ont installé via PyPI peuvent toujours avoir des versions plus anciennes et incompatibles de ruamel.baseinstallé. L'utilisation de setup.py/ PyPI n'est pas une véritable gestion de package, vous ne pouvez donc pas supprimer un package précédemment installé via des dépendances. J'ai résolu le problème pour les utilisateurs PyPI en créant une version plus récente ruamel.basequi supprimait les problèmes associés aux anciens ruamel.basepackages et rendait ruamel.yamldépendante de cette version plus récente.

Pour Sid, ce n'est pas un problème: les anciennes versions de ruamel.basen'ont pas été installées (ou pourraient être supprimées via la gestion des packages). Par conséquent, ils appliquent un correctif , que vous pouvez trouver sur la ruamel.yamlpage d'informations pour Sid qui supprime la dépendance de ruamel.yamlsur ruamel.base.

D'autres distributions ont des configurations similaires. Par exemple, si vous regardez les spécifications de création d'un fichier RPM source (par exemple pour RedHat / CentOS / SuSE), vous verrez que vous combinez l'archive tar d'origine d'un package avec un ou plusieurs correctifs qui seront appliqués avant la configuration / compilation .

Anthon
la source