A template next to the file: .clt
Updated 5 Novembre 2026
Un modèle .clt est un moyen de remplacer un fichier de configuration spécifique sans créer de répertoire de modèles et sans avoir à retenir dans quel répertoire il se trouve. Un tel modèle se trouve à côté du fichier configuré et diffère de lui par son extension. Le fait qu'il modifie le fichier sur place dépend de l'état de la cible : si le fichier diffère de ce qui est enregistré dans la liste des fichiers du paquet (il a été modifié à la main ou recréé), le moteur préserve votre version et place le résultat à côté - dans un fichier de la forme .cfg0000[HTML_REMOVED] - tandis que la cible reste inchangée. Sur un fichier intact, le même modèle modifie la cible sur place ; equery b <file> et qcheck <package> vous aident à identifier le paquet et les divergences.
/etc/conf.d/consolefont le fichier configuré /etc/conf.d/consolefont.clt le modèle qui le configure
Le chemin et le nom de la cible sont déduits de l'emplacement du modèle lui-même : l'extension .clt est retirée, et tout le reste devient l'adresse du fichier de configuration. Donc l'en-tête du modèle n'a besoin ni de path=, ni de name= - ils découlent du nom du fichier. Les outils fusionnent les modèles .clt en balayant récursivement /etc et les répertoires de CONFIG_PROTECT.
Exemple minimal
Vous devez définir la taille de la police de console. Une mauvaise option consiste à copier tout le fichier
/etc/conf.d/consolefont.clt
# Calculate format=openrc consolefont="ter-v12n"
Le format est indiqué, donc seul ce paramètre changera, le reste du fichier sera conservé, et une note apparaîtra en haut pour signaler que le fichier est géré par un modèle :
#------------------------------------------------------------------------------ # Modified Calculate Utilities 3.7.6.8 # Processed template files: # /etc/conf.d/consolefont.clt #------------------------------------------------------------------------------
Quand .clt est appliqué
Le nom du fichier jusqu'à .clt est lui-même la liaison est lui-même la liaison : il doit
Le nom du fichier jusqu'à .clt est lui-même la liaison est lui-même la liaison : il doit correspondre exactement au nom du fichier configuré (smb.conf.clt configure smb.conf). L'outil prend alors, depuis l'emplacement du modèle, le chemin, le nom (path=, name=), et le paquet auquel appartient le fichier ciblé - vous n'avez pas besoin de l'indiquer dans l'en-tête du modèle : il est renseigné d'avance et fonctionne dans mergepkg(), , merge() et et pkg()..
mergepkg(), , merge() et et pkg()..
La mécanique dans le codeun .clt nommé arbitrairement, posé dans /etc, sera simplement ignoré.
La deuxième façon d'être pris en traitement est une liaison explicite dans l'en-tête du modèle
# Calculate format=openrc merge(sys-apps/openrc)!= consolefont="ter-v12n"
Le troisième cas est une reconfiguration complète du système, et non d'un seul paquet : alors les .clt sans liaison explicite sont traités aussi.
Vous pouvez vérifier la liaison explicite à l'avance, sans attendre emerge :
grep -l 'merge(' /etc/conf.d/*.clt
Il est commode de vérifier l'application dans la sortie détaillée de la configuration du paquet :
cl-core-setup -n openrc
Lors de l'installation du système, les modèles .clt sont copiés dans le système en cours d'installation : l'installeur parcourt séparément les répertoires .clt et les transfère vers la cible, donc votre remplacement atteint la machine installée et ne vit pas seulement dans l'environnement live.
Расхождение со старыми руководствами
Remarquez le désaccord avec les anciens guidesle chemin, le nom et le paquet sont déduits de l'emplacement du modèle et de la propriété du fichier ciblé, et les conditions de l'en-tête du modèle, lors du passage .clt, sont lues depuis le module d'installation - le moteur place lui-même install pour la durée de ce passage (cl_template.py, ligne 5080). Donc, pas besoin non plus d'"ajouter ac_install_merge==on par précaution" : écrit explicitement, c'est une condition ordinaire, et avec la variable désactivée, le modèle ne sera pas appliqué.
Particularités et limitations
- Profil utilisateur - lors de la configuration d'un profil utilisateur, la couche .clt ne participe pas - .clt est destiné aux fichiers système. Pour ~/.config, utilisez des modèles normaux dans 6_ac_desktop_profile.
- L'en-tête - un .clt n'en a pas par définition : le fichier est lui-même la source. Pour que le fichier "ait l'air configuré par un modèle", indiquez format= ou comment=.
- Plusieurs .clt pour un fichier - ce n'est pas pris en charge de façon pertinente : n'en gardez qu'un.
- Désactivation - pour cesser de gérer le fichier, supprimez le .clt et ramenez le fichier de configuration à l'état du paquet :
etc-update/dispatch-confouemerge -1 <package>.
.clt ou répertoire de modèles
Utilisez .clt quand :
- la modification concerne un fichier précis sur une machine précise ;
- vous devez remplacer un paramètre posé par le modèle système, et vous ne voulez pas vous compliquer la vie avec la priorité des couches ;
- c'est une retouche administrative ponctuelle qu'il est pratique de conserver à côté du fichier.
Utilisez un modèle normal dans /var/calculate/templates quand :
- il y a plusieurs paramètres et il est logique de les regrouper (voir répertoires de modèles) ;
- les modèles doivent être transférés vers d'autres machines avec l'overlay ;
- il vous faut des conditions, des fonctions d'overlay et une liaison aux événements d'installation/mise à jour.
Voir aussi
- Démarrage rapide - exemple 3.
- La vie d'un fichier après le modèle - l'en-tête et la propriété du fichier.
- Syntaxe du modèle - format=, comment=, append=.