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 :
- La dérivation est installée dans le Nix store (soit en la compilant soit en la téléchargeant depuis le cache)
- 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 dossierbin
(pour imiter la structure des fichiers de Linux) - Cette nouvelle dérivation est liée dans le dossier
/nix/var/nix/profiles
comme une nouvelle dérivation de Carol (par exemplecarol-24-link
) - Cette nouvelle dérivation est liée dans le profile de carol (
carol
) - Enfin le profile de carol est liée dans son dossier
~/.nix-profile
- 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.
No Comments