Que fait le gestionnaire de packages Nixos?
La plupart des gestionnaires de packages utilisent un fichier contenant l'exécutable ou le code source. Ils calculent ensuite ce dont il a besoin sur le système et s'assurent ensuite qu'il existe. Dans Nix, les choses fonctionnent très également. La grande différence est que Nix crée tous les fichiers et les compile si nécessaire, puis les mettez en un seul endroit; le nage Nix. La première question que vous avez peut être: «Les fichiers n'auront pas le même nom?"Le système évite cela en ayant un répertoire pour chaque version et en nommant tous les fichiers avec un hachage. Pour faire de l'application «se sentir comme chez lui», toutes les dépendances sont ensuite liées à leurs répertoires corrects en utilisant des liens symboliques ordinaires. Un profil garde une trace de la version que chaque utilisateur exécute.
Installation de l'utilisateur Nixos
Avec ce système, vous pouvez avoir différentes versions installées dans le répertoire de chaque utilisateur. S'ils sont les mêmes chez plusieurs utilisateurs, l'administrateur peut laisser Nix Rester Binaires, donc un seul existe à la fois. Ceci est utile pour économiser l'espace disque. Vous pouvez également créer des environnements spécifiques pour chaque version du package. Ceci est particulièrement utile lorsque vous souhaitez tester une nouvelle version ou développer un logiciel.
Installation pour une distribution commune
Pour les plates-formes les plus courantes, vous pouvez installer Nix, le gestionnaire de packages avec un script simple. Ce script est disponible sur le site Web de Nix. Le script aura besoin d'accès aux utilisateurs racine, mais si vous êtes très soucieux de la sécurité, vous devez lire le script avant de l'utiliser. Si vous souhaitez éviter d'utiliser root dans le script, créez simplement le répertoire / Nix sur votre système.
$ sh <(curl -L https://nixos.org/nix/install)
Si vous n'avez pas d'accès root ou tout simplement super prudent, vous pouvez avoir Nix en tant qu'utilisateur uniquement Gestionnaire de packages.
$ sh <(curl -L https://nixos.org/nix/install) -no-daemon
Ce binaire fonctionne bien pour la plupart, sinon tous, des distributions. Les plates-formes sont x8664, je?86, AARCH64 et X8664-Darwin, qui couvrent presque toutes les plates-formes disponibles. Si vous utilisez d'autres plateformes, vous pouvez probablement utiliser le code source et créer le vôtre. Une fois l'installation terminée, vous aurez alors un tas de nouvelles commandes.
Ajouter votre premier programme à Nixos
Pour installer des logiciels et définir lorsqu'il peut être utilisé, vous avez Nix-env. L'option d'installation (-i) est la plus courante car vous l'utilisez toujours et mettez un package comme argument.
$ Nix-env -i Firefox
Cela ressemble à d'autres distributions, tout comme l'argument de la requête. L'installation prendra du temps, cependant. La raison en est qu'il doit compiler le logiciel à moins qu'il n'y ait une version pré-compilée dans le cache Nix. Atteindre le cache n'est pas toujours très rapide non plus. Il y a une différence dont vous devriez prendre note; vous pouvez choisir une version! Si vous voulez une version spéciale, vous devez trouver qui sont disponibles en utilisant des expressions régulières.
$ nix-env -qa 'firefox.* '
Vous recevrez une liste de tous les packages disponibles. Vous pouvez l'installer de la même manière mais en utilisant la valeur dans la liste.
$ Nix-env -install 'Firefox-78.4.0ser '-preservestalled
Cela peut échouer si vous avez déjà une version installée. Option '-preservestalled' n'effacera pas la version installée. Vous pouvez vous retrouver avec deux versions de la même priorité, que vous pouvez corriger en définissant la priorité.
$ NIX-ENV -SET-FLAG PRIORITÉ 2 'FIREFOX-82.0.2 '
Maintenant, vous exécuterez l'ancienne version la prochaine fois que vous démarrez Firefox. Pour changer celui que vous exécutez, vous pouvez définir la priorité en conséquence. Vous pouvez également démarrer une coquille pour choisir un binaire. Il s'agit d'une option de développeur, et la commande est nix-shell.
Mise à jour de Nixos
Une fois que vous avez une collection de logiciels, vous souhaitez rester à jour. Identique comme toujours, vous utilisez la même commande avec un argument. Mais vous devez également tenir la chaîne à jour. La commande est nix-canal.
$ nix-channel -update
Cela lit les versions actuelles de tous les packages disponibles. Après cela, vous pouvez démarrer la mise à niveau de votre logiciel avec Nix-env.
$ nix-env -upgrade
Une mise à niveau comme celle-ci mettra à niveau votre ancienne version du logiciel. Dans ce cas, l'ancien Firefox sera remplacé par la dernière version. Vous ne voudrez peut-être pas cela pour une raison quelconque, généralement le développement.
Supprimer les applications de Nixos
La suppression des applications est tout aussi simple, avec une petite mise en garde. Aucune application n'est supprimée par une commande de suppression.
$ Nix-env -Uninstall 'Firefox-78.4.0ser '
Cette commande supprimera les liens vers la construction actuelle de cette version de Firefox. Tous les fichiers resteront toujours sur le disque. Vous avez ces versions disponibles pour faire un recul. Un retour en arrière signifie que vous revenez à l'utilisation de l'ancienne version. Cela peut être utile si vous avez essayé le plus récent et qu'il a des problèmes imprévus.
$ Nix-env -ollback
Vous rétolrez une génération entière, ce qui signifie tous les programmes qui ont été mis à niveau depuis la dernière génération. L'option exécute deux commandes; cette liste puis passe à ces vieilles générations. Tous les packages installés existent dans une génération sur disque.
Roll Nixos et nettoyage
La fonction de recul conduira à beaucoup d'espace disque utilisé par les anciennes versions. Vous pouvez nettoyer cela (vous devez nettoyer cela!). Lorsque vous avez eu une période assez longue, à votre choix, vous pouvez également nettoyer ces vieilles générations pour économiser l'espace disque.
$ Nix-env -Delete Générations Old
Avec cette commande, vous supprimez toutes les générations sauf les deux dernières. Vous pouvez faire des allers-retours dans la liste avec des paramètres plus complexes pour laisser la génération spécifique qui a le mieux fonctionné pour vous. À moins que vous ayez de nombreux projets de test ou de développement qui ont besoin de nombreuses versions pour les tests, vous devez utiliser une suppression planifiée de toutes les vieilles générations.
Un script simple pour garder vos générations propres est livré avec une installation NIX Package Manager.
$ Nix-COLLECT-GARBAGE
Vous devez également configurer le collecteur pour s'exécuter automatiquement à l'aide de SystemD ou d'autres systèmes.
Conclusion
Le gestionnaire de packages NIX est un système puissant qui peut vous permettre d'exécuter des environnements de développement complexes sur votre machine. Vous pouvez également l'utiliser pour garder votre logiciel bien rangé et avoir un moyen simple de récupérer sur une nouvelle machine, si la catastrophe d'un accident de disque se produit.