Bonsoir,
Le 17/01/2019 à 17:37, jonas.dorel--- via FRsAG a écrit :
Et ils ont raison pour autant que je saches.
/usr/lib/systemd/system, c’est pour les paquets installés via la
distribution.
/usr/local/lib/systemd/system, c’est pour les paquets installés
localement.
/etc/systemd/system, c’est pour les ajouts d’units locaux. Par
exemple pour un programme qui ne fournit pas d’unit. Je suis d'accord que c'est le système qui fait consensus (même si la documentation n'est pas très explicite actuellement). Ma question vise également à questionner les habitutes prises par la communauté jusque là.
Ah, là je suis biaisé alors, je suis « développeur » pour une distribution Linux, donc mes habitudes correspondent à nos règles, qui sont celles sus-citées.
Globalement, tu peux retenir que tu n’es jamais censé toucher à
/usr/* à la main, que dans /usr, le seul dossier où tu peux faire des modifs sans le gestionnaire de paquet de ta distro, c’est /usr/local (via des make install, pip, node, etc.) mais encore une fois normalement tu n’y touches pas toi-même directement, et qu’enfin tout ce qui est configuration d’un système par un admin (et les units systemd en font partie), ça se passe dans /etc. Quid des scripts créés par l'administrateur ?
Ça dépend, mais potentiellement à déployer dans /usr/local/. Mais quand même pas à la main, tu te fais un outil qui prend tes sources et les mets en place proprement.
Je regarderai la PR quand je serais sur un ordi.
Bruno
Il est évident que mon avis est biaisé sur la question, mais je ne comprends pas la raison initial qui fait que des fichiers qui se trouvent initialement dans /usr/lib se retrouve dans /etc, mis à part le fait historique que les scripts init.d y étaient précédemment.
Parce que ce sont des fichiers de configurations, et que la règle pour les fichiers de configurations est que ceux fournis par les paquets sont censés être dans /usr/* (où *!=local), et tout ce qui est configuration locale par l’administrateur se passe dans /etc. Et donc non, ce n’est pas “legacy”.
Il existe à mon sens une raison seule raison logique d'utiliser /etc, qui est que les units de ce dossier ont précédence sur les autres, mais ma question vise à mettre en place la meilleur pratique possible en prenant en compte l'architecture des fichiers Linux. A mon sens l'utilisation de /usr/local fait sens, ne nécessite pas de changement de code, et la mise en place de d'une documentation spécifiant cette utilisation serait un premier pas vers cette utilisation.
Les personnes qui t’ont répondu sur GitHub ont tout très bien expliqué je trouve, particulièrement le résumé de Lennart. ;)
Bruno