Skip to main content

Profiles

Les profiles sont là pour isoler la configuration de chaque utilisateur·ice et permettre de revenir en arrière à tout moment. Chaque profile (et chaque génération de ce profile est un raccourcis vers /nix/var/nix/profiles/.

A chaque changement dans l'environement de l'utilisateur·ice (avec nix-env par exemple), une nouvelle génération est crée depuis la précédente.

Pour illustrer tout ceci, voici ce qu'il se passe lorsque Carol installe Svn :

  1. La dérivation est installée dans le Nix store (soit en la compilant soit en la téléchargeant depuis le cache)
  2. Une nouvelle dérivation est crée depuis la génération précédente de Carol, dans cette nouvelle dérivation svn est lié dans un dossier bin (pour imiter la structure des fichiers de Linux)
  3. Cette nouvelle dérivation est liée dans le dossier /nix/var/nix/profiles comme une nouvelle dérivation de Carol (par exemple carol-24-link)
  4. Cette nouvelle dérivation est liée dans le profile de carol (carol)
  5. Enfin le profile de carol est liée dans son dossier ~/.nix-profile
  6. Enfin tous les fichiers dans ~/.nix-profile/bin sont ajouté à son $PATH pour être accessible à Carol. Carol peut maintenant utiliser Svn.

Maintenant lorsque Carol veut rollback vers sa génération précédente, il suffit simplement de remplacer le lien de carol vers carol-23-link à la place de carol-24-link.

Ainsi faire un rollback se fait en une seule opération. Par contre ce système à le désavantage de prendre beaucoup de place car rien n'est supprimé. Dans la page suivante, nous allons voir comment le "garbage collector" fonctionne pour pouvoir faire de la place.