Template variables

Updated 5 Novembre 2026

Les modèles configurent le système parce qu'ils s'appuient sur des variables : le nom d'hôte, le disque, la carte graphique, la langue, le domaine, l'utilisateur. Les utilitaires calculent eux-mêmes les valeurs des variables - à partir du matériel, des fichiers de configuration et des paramètres de la commande qui les a invoqués.

Affichage des variables

La liste complète des variables avec leur mode et leur valeur actuelle :

cl-core-variables-show

Pour lire rapidement des variables précises (y compris en tant qu'utilisateur ordinaire), lancez :

/usr/libexec/calculate/cl-variable --value cl_template_data os_net_hostname

Filtrage utile : --filter writable pour les variables modifiables, --filter userset pour celles définies dans les fichiers calculate.env, --filter [HTML_REMOVED] par nom.

La sortie comporte trois colonnes, et elles expliquent presque tout le comportement :

  • Mode - deux lettres : accès (r lecture seule, w modifiable) et type (s chaîne, b booléen on/off, l liste, t tableau, c chaîne avec choix) ;
  • Emplacement - dans quel calculate.env la valeur par défaut est définie (system, local, remote) ;
  • Valeur - la valeur actuelle ; elle dépend de la commande lancée, donc selon les actions le même ensemble de variables donne des valeurs différentes.

Nom de variable : module et type

Le nom est construit comme module.name, où le module est un paquet d'utilitaires (main, install, update, desktop, client, core). Dans les modèles, on peut généralement omettre le module - le module par défaut défini par le paramètre env= dans l'en-tête est alors utilisé :

Модуль по умолчанию в заголовке

# Calculate env=install
Modes "#-os_install_x11_resolution-#"

Pour faire référence explicitement à un autre module, écrivez-le avec un point : #-install.os_install_root_dev-#.

L'objectif d'une variable se voit à partir de son préfixe de nom :

  • ac_* - les variables de l'action en cours : elles indiquent quel ensemble de modèles est en train d'être fusionné (ac_install_merge, ac_desktop_profile, ac_update_sync, …);
  • cl_* - les paramètres des utilitaires eux-mêmes ;
  • hr_* - le matériel ;
  • os_* - le système ;
  • ur_* - l'utilisateur ;
  • ld_* - les attributs LDAP ;
  • sr_* - les services.

Emplacement des valeurs

Deux fichiers différents - ne les confondez pas :

calculate.env - les valeurs par défaut des variables. Les couches, par ordre de priorité croissante :

/etc/calculate/calculate.env          (system)
/var/calculate/calculate.env          (local)
/var/calculate/remote/calculate.env   (remote)

La valeur d'une couche ultérieure remplace les précédentes. La section du fichier est le nom du module :

calculate.env

[install]
os_install_ntp = ntp0.zenon.net

On peut les modifier à la main, mais passer par l'utilitaire est plus fiable - il vérifie si la valeur est acceptable :

Écrire dans le fichier par défaut :

cl-core-variables --set install.cl_autologin=guest

Idem, mais dans la couche local (/var/calculate/calculate.env) :

cl-core-variables --set install.cl_autologin=guest:local

Supprimer la valeur :

cl-core-variables --set install.cl_autologin

L'utilitaire rejette explicitement un nom de variable invalide (Erreur de paramètre --set. Variable <nom> non trouvée), cette méthode est donc plus sûre que la modification manuelle du fichier. L'utilitaire vérifie aussi la valeur : par exemple, --set install.cl_autologin=root ou une valeur contenant des caractères invalides donne Erreur de paramètre --set. sans indiquer la raison, et la variable conserve sa valeur précédente. Si la commande n'a rien affiché mais que la valeur n'a pas changé - cela signifie que la vérification de la valeur a échoué ; vérifiez-la avec cl-core-variables-show.

Отдельные обёртки

Sur certaines versions, vous trouverez des wrappers séparés cl-core-variables et cl-core-variables-show. Si leur lancement affiche No module named 'calculate.console', travaillez via cl-core --method=… - c'est la même interface.

Priorité : les paramètres de ligne de commande > calculate.env.

ini.env - les variables des fonctions des modèlesce qui est configuré dans quelle couche, et s'il faut des migrations. Elles sont lues par une pile de plusieurs couches - /var/lib/calculate/ini.env, /etc/calculate/ini.env, /var/calculate/ini.env, /var/calculate/remote/ini.env et les fichiers de profil des dépôts ; pour la configuration du système, l'emplacement système est utilisé ; pour la configuration d'un profil, ~/.calculate/ini.env.

C'est précisément pourquoi une condition comme ini(package.enabled)==on signifie "désactivé par défaut tant que l'administrateur ne l'active pas" : si aucune couche de la pile ne contient la section, la condition est fausse et le modèle n'est pas appliqué.

Modification des valeurs depuis un modèle

La valeur d'une variable de modèle (os_*, hr_*, cl_* de calculate.env) ne peut pas être modifiée dans un modèle - elles sont en lecture seule. Vous pouvez modifier les variables de fonction, via ini() :

Запись переменной функции

#-ini(overlay-calculate.remerge,20261103)-#

Pour transmettre une valeur entre modèles, il y a une pile : push() dans l'un, pop() dans l'autre.

Erreurs typiques

  • La variable est "vide" bien qu'elle soit définie dans calculate.env : la section est indiquée incorrectement (ce doit être le nom du module, par exemple [install], et non le nom du paquet).
  • Une condition sur ini(...) ne se déclenche pas : vérifiez dans quel ini.env se trouve exactement la valeur - les couches se remplacent mutuellement, et selon les actions (core_setup contre desktop_profile) des fichiers différents sont lus.
  • La variable n'est apparue qu'après l'installation d'un paquet : certaines variables appartiennent à des modules qui doivent être disponibles ; si le module env= n'est pas dans le système, le modèle est simplement ignoré - sans erreur.

Voir aussi