Maison > Tutoriel système > Linux > Début avec Nix Package Manager: A débutant's Guide 2024

Début avec Nix Package Manager: A débutant's Guide 2024

Joseph Gordon-Levitt
Libérer: 2025-03-19 09:06:21
original
309 Les gens l'ont consulté

Ce didacticiel détaillé explique comment effectuer des opérations de gestion des packages tels que l'installation, la suppression, la mise à jour et la mise à niveau des packages à l'aide de NIX Package Manager dans Linux.

Nous commencerons ce guide avec une brève introduction suivie d'une commandes NIX couramment utilisées avec des exemples.

Table des matières

Une brève introduction au gestionnaire de packages NIX

Nix est un gestionnaire de packages qui facilite l'installation et la gestion des logiciels faciles et fiables sur les systèmes Linux et Unix. Il résout des problèmes communs comme les conflits logiciels et s'assure que chaque installation logicielle est prévisible et sûre.

Avec Nix, vous pouvez avoir différentes versions d'un programme sur votre ordinateur sans qu'ils interfèrent les uns avec les autres. Cela signifie que vous pouvez mettre à jour, ajouter ou supprimer des logiciels sans vous soucier de briser quoi que ce soit.

Nix est intelligent sur la façon dont il gère les logiciels. Il garde une trace de tous les bits que chaque programme doit exécuter. De cette façon, lorsque vous installez un programme, il ne gâche pas un autre programme. Si quelque chose ne va pas avec une nouvelle mise à jour logicielle, Nix vous permet de revenir à la façon dont les choses étaient avant, facilement.

Le gestionnaire de packages NIX n'est pas seulement pour les utilisateurs individuels, mais aussi idéal pour les développeurs et les personnes qui gèrent des serveurs. Il aide à garder tout le monde sur la même page en s'assurant qu'ils utilisent tous la même configuration de logiciel. Cela réduit les surprises lors du déplacement des logiciels d'un ordinateur à un autre.

Nix a une grande collection de logiciels à choisir, et tout est maintenu par une communauté d'utilisateurs. C'est un choix solide pour gérer les logiciels, que vous travailliez seul ou avec une équipe.

Pour plus de détails sur Nix, reportez-vous à notre guide précédent:

  • Nix - un puissant gestionnaire de packages pour Linux et Unix

Début avec le gestionnaire de packages NIX

Assurez-vous que vous avez installé NIX Package Manager. Si vous n'avez pas encore installé NIX, veuillez consulter le Guide d'installation NIX ci-dessous.

  • Comment installer le gestionnaire de packages NIX dans Linux

Une fois NIX Package Manager configuré, vous pouvez commencer à l'utiliser pour installer et gérer vos applications immédiatement.

Nix a de nombreuses commandes. La commande principale de la gestion des packages est Nix-ENV . Cette commande est utilisée pour répertorier, installer, mettre à jour, randonner, supprimer, requête des packages. Voyons quelques commandes avec des exemples.

Astuce : Dans le cas où vous ne le savez pas déjà, vous n'avez pas besoin d'être un utilisateur root ou sudo pour effectuer toutes les opérations de gestion des packages à l'aide de NIX.

Travailler avec les chaînes Nix

Les canaux NIX jouent un rôle important dans l'écosystème du gestionnaire de packages NIX.

Le référentiel NixPKGS contient tous les packages, modules Nixos et expressions. Bien qu'il soit possible d'installer des packages directement à partir de la branche maître de NixPKGS, cette approche peut être risquée car les validations sont fusionnées avant des tests approfondis.

Un canal représente le dernier GIT "vérifié" commet dans NIXPKGS. Chaque canal a sa propre définition de ce que signifie "vérifié".

Lorsqu'un nouveau engagement GIT est vérifié, le canal correspondant est mis à jour. Les utilisateurs de canaux bénéficient à la fois des engins vérifiés et des packages binaires du cache binaire.

Pour dire cela en mots simples, un canal Nix n'est qu'une URL qui pointe vers un endroit qui contient un ensemble d'expressions Nix et un manifeste.

Types de canaux

Il y a plusieurs canaux et ils peuvent être largement classés en canaux stables et instables, ainsi que de grands canaux: les petits canaux :

Stable / instable :

  • Canaux stables : ceux-ci fournissent des mises à jour conservatrices pour les corrections de bogues et les vulnérabilités de sécurité. Les mises à jour majeures ne sont pas introduites après la version initiale. De nouvelles canaux stables sont libérés tous les six mois.
  • Canaux instables : correspondant à la branche de développement principale (instable) de NIXPKGS, celles-ci fournissent les dernières mises à jour testées sur une base de roulement.

Grand / petit :

  • Grands canaux : ceux-ci fournissent des constructions binaires à l'étendue complète des Nixpkgs.
  • Petits canaux : similaires aux grands canaux mais avec moins de binaires. Ils mettent à jour plus rapidement mais nécessitent plus de construction de la source.

Canal par défaut

Par défaut, le canal NixPKGS est automatiquement ajouté à votre liste de canaux "abonnés" lorsque vous installez NIX.

Afficher les canaux abonnés

La liste des canaux abonnés est stocké dans le fichier ~ / .nix-channels. Vous pouvez le vérifier en regardant son contenu.

 $ cat ~ / .nix-canaux
https://nixos.org/channels/nixpkgs-unstable <strong>nixpkgs</strong>
Copier après la connexion

Comme vous le voyez, Nix a ajouté le canal NixPKGS par défaut.

Ajouter des canaux

Vous pouvez également ajouter manuellement un canal à votre système comme indiqué ci-dessous.

 $ Nix-Channel --Add https://nixos.org/channels/nixos-23.11
Copier après la connexion

Les chaînes officielles sont répertoriées sur https://nixos.org/channels .

Mettre à jour les canaux

Après avoir abonné (ajoutant) un canal, vous devez mettre à jour la liste des canaux pour obtenir les dernières expressions NIX disponibles à l'aide de la commande:

 $ Nix-Channel - Update
Copier après la connexion
Copier après la connexion
Copier après la connexion

Cette commande mettra à jour tous les canaux. Si vous souhaitez mettre à jour un canal spécifique, disons NixOS-23.11, la commande serait:

 $ Nix-Channel - Update Nixos-23.11
Copier après la connexion

Lister les canaux

Pour imprimer les noms et les URL de tous les canaux souscrits sur la sortie standard, exécutez:

 $ nix-channel - liste
Copier après la connexion

Exemple de sortie :

 <strong>nixpkgs</strong> https://nixos.org/channels/nixpkgs-unstable
<strong>Nixos</strong> https://nixos.org/channels/nixos-23.11
Copier après la connexion

Comme vous l'avez remarqué, j'ai maintenant ajouté deux canaux à savoir Nixpkgs-Unstable et NixOS-23.11 . Veuillez noter que Nixpkgs et Nixos ne sont que les alias de Nixpkgs-Unstable et NixOS-23.11.

Retirer les canaux

Pour supprimer un canal abonné, par exemple NixOS-23.11 , il suffit d'exécuter:

 $ Nix-Channel - Remonte Nixos-23.11
Copier après la connexion

Après avoir supprimé le canal, mettez à jour la liste des canaux à l'aide de la commande:

 $ Nix-Channel - Update
Copier après la connexion
Copier après la connexion
Copier après la connexion

Packages de recherche / requête

La commande NIX-ENV --Query fournit des informations sur les packages dans le gestionnaire de packages NIX.

But :

L'opération Nix-Env --Query affiche des informations sur soit:

  • Stockez les chemins installés dans la génération actuelle du profil actif (- installé).
  • Dérivations disponibles pour l'installation dans l'expression active NIX (- disponible).

Il imprime uniquement des informations sur les dérivations dont le nom symbolique correspond à l'un des noms spécifiés.

Drapeaux et options :

Les drapeaux et les options communs qui peuvent être utilisés Nix-Env --Query sont:

  • - Installé : affiche des informations sur les chemins de magasin installés (comportement par défaut).
  • - disponible ou -a: affiche des informations sur les dérivations disponibles pour l'installation.
  • --status ou -s: imprime l'état de la dérivation (installé, présent sur le système, remplacement disponible).
  • --ATTR-Path ou -P: imprime le chemin d'attribut de la dérivation (utilisé pour la sélection sans ambiguïté).
  • --No-Name : supprime l'impression du nom de dérivation.
  • - Compare-Versions ou -C: Compare les versions installées aux versions disponibles.
  • --xml : imprime les résultats du format XML pour le traitement automatisé.
  • --json : imprime les résultats au format JSON pour le traitement automatisé.
  • --fuilt uniquement ou -b: ne montre que des dérivations avec des substituts enregistrés (binaires pré-construits).
  • --Système : fonctionne sur le profil à l'échelle du système.
  • - drv-path , --out-path , - description , --meta : indicateurs d'informations supplémentaires.

Pour afficher la liste des packages disponibles dans le canal souscrit, exécutez:

 $ Nix-env --Query - disponible
Copier après la connexion

Ou sous peu:

 $ nix-env -qa
Copier après la connexion

Ici, l'option -q indique le fonctionnement de la requête et -a indique tous les packages disponibles (c.-à-d. Installable).

Exemple de sortie :

 0ad-0.0.26
0ad-data-0.0.26
0verkill-unstable-2011-01-13
0x-unstable-2022-07-11
0xproto-1.603
0xtools-1.2.4
1om-1.0
1Password-8.10.27
1Password-8.10.28-21.beta
1Password-CLI-2.26.1
2048-Cli-Unstable-2019-12-10
2048-Cli-Unstable-2019-12-10
2048 en terminal-unstable-2022-06-13
20kly-1.5.0
2BWM-0.3
2fa-1.2.0
3270font-3.0.1
389-DS-Base-2.4.3
3dpong-0,5
3llo-1.3.1
3mux-1.1.0
3proxy-0.9.4
4e-3.64.1
[...]
Copier après la connexion

Début avec Nix Package Manager: A débutant's Guide 2024

Si vous souhaitez interroger un package particulier, la commande serait:

 $ nix-env -qa firefox
Copier après la connexion

Sortir:

 Firefox-115.9.1esr
Firefox-124.0.1
Firefox-124.0.1
Firefox-124.0.1
Firefox-125.0b3
Firefox-125.0b3
Copier après la connexion

Vous pouvez également utiliser la commande suivante pour rechercher un package particulier.

 $ nix-env -qap | grep python3-3
Copier après la connexion

Exemple de sortie:

 [...]
nixpkgs.python312 python3-3.12.2
Nixpkgs.python313 Python3-3.13.0a5
nixpkgs.python313full python3-3.13.0a5
Nixpkgs.python39 Python3-3.9.19
nixpkgs.python39full ​​python3-3.9.19
Copier après la connexion

Requête des packages utilisant des expressions régulières

Vous pouvez interroger / liste des packages en utilisant des expressions régulières. Voici quelques exemples d'expressions régulières.

chrome

Correspond au nom du package Chromium et toute version.

chrome-123.0.6312.86

Correspond au nom du package Chromium et version 123.0.6312.86.

Exemple:

 $ Nix-Env -QA Chromium-123.0.6312.86
Copier après la connexion

gtk \\

Correspond au nom du package gtk . Le personnage doit être échappé à l'aide d'une barre oblique inverse pour empêcher qu'il ne soit interprété comme un quantificateur, et la barre oblique inverse doit être échappée à son tour avec une autre barre arrière pour s'assurer que la coquille la transmet.

. \ *

Correspond à n'importe quel nom de package. C'est la valeur par défaut pour la plupart des commandes.

'.*fermeture éclair.*'

Correspond à n'importe quel nom de package contenant le zip de chaîne. Notez les points: '* zip *' ne fonctionne pas, car dans une expression régulière, le caractère * est interprété comme un quantificateur.

'. * (Firefox | chrome). *'

Correspond à tout nom de package contenant les cordes Firefox ou Chromium .

Liste des packages installés

Pour répertorier tous les packages installés, exécutez simplement:

 $ nix-env -q
Copier après la connexion

Exemple de sortie :

 NIX-2.21.1
Copier après la connexion

Puisqu'il s'agit d'un nouveau système, notre système affiche uniquement le gestionnaire de packages NIX.

Il est également possible de voir l'état du package disponible. Regardez l'exemple ci-dessous.

 $ nix-env -qas gcc
Copier après la connexion

Exemple de sortie :

 IPS GCC-3.2.0
Copier après la connexion

Ici, "I" indique que le package spécifié est installé, "P" indique que le package est présent sur notre système, et "S" indique qu'il existe un soi-disant substitut du package.

Si le package GCC n'est pas installé, vous verrez:

 -PS GCC-3.2.0
Copier après la connexion

Installation de packages

Dans Nixos, tous les packages seront stockés dans Nix Store , généralement le répertoire / Nix / Store .

Pour installer un package, il suffit d'exécuter:

 $ nix-env - install gcc
Copier après la connexion

Ou (sous peu)

 $ nix-env -i gcc
Copier après la connexion

La commande ci-dessus installera le dernier package GCC disponible.

L'échantillon de sortie de la commande ci-dessus serait:

 Installation de «GCC-3.2.0»
Ces 3 chemins seront récupérés (1,58 MIB Download, 7.24 MIB Unporked):
  /nix/store/3cfxjb2nkjkfiv0dq54kkfy5ysjnfs3k-gcc-13.2.0-Checksum
  /nix/store/4i3ml2pzzgjwas18w31zzhn9f41qyshy-gcc -3.2.0-info
  /nix/store/SMQ6F1JZ9A5L6L5YJIS4S85MQ01XWW33-GCC-13.2.0-MAN
Copie de chemin '/nix/store/4i3ml2pzzgjwas18w31zzhn9f41qyshy-gcc-13.2.0-info' de 'https: //cache.nixos.org' ...
Copie de chemin '/nix/store/smq6f1jz9a5l6l5yjis4s85mq01xww33-gcc-132.0 -man' de 'https: //cache.nixos.org' ...
Copie de chemin '/nix/store/3cfxjb2nkjkfiv0dq54kkfy5ysjnfs3k-gcc-13.2.0-checksum' de 'https: //cache.nixos.org' ...
Building '/nix/store/xx629d9kbbdnsyf4ihzhlmalfz6nm3g-user-environment.drv' ...
Copier après la connexion

Vérirons si GCC est installé ou non en utilisant la commande:

 $ gcc -v
Copier après la connexion

Exemple de sortie:

 Utilisation de spécifications intégrées.
Collection_gcc = gcc
Collect_lto_wrapper =<strong><mark> /nix/store/rqga421d43q40blrrgmiw820p01a4nba-gcc-13.2.0</mark> /libexec/gcc/x86_64-unknown-inux-gnu/13.2.0/lto-wrapper
Cible: x86_64-sous-linux-GNU
Configuré avec: ../gcc-13.2.0/configure ---prefix = / nix / store / eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gcc-13.2.0 - with-gmp-include = / nix / store / eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gmp-6.3.0-dev / includeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gmp-6.3.0-dev / include --with-gmp-lib = / nix / store / eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gmp-6.3.0 / lib --with-Mpfr-include = / nix / store / eeeeeeeeeeeeeeeeeeeeeeeeeee-MPFR-4.2.1 --avec-MPFR-lib = / nix / store / eeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mpfr-4.2.1 / lib - avec-MPC = / nix / store / eeeeeeeeeeeeeeeeeeeeeeeeeeeee-libmpc-1.3.1 --avec-natif-système-chef-diir = / nix / store / eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.38-44-dev / include --with-build-sysroot = / --with-gxx-include-ir = / nix / magasin / eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gcc-13.2.0 / c /13.0/13 --program-prefix = --enable-lto --disable-libstdcxx-pch --without-included-gettex --with-isl = / nix / store / eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-isl-0.20 --disable-bootstrap --build = x86_64-innunwn-linux-gnu --host = x86_64-inunnwown-linnu
Modèle de thread: POSIX
Algorithmes de compression LTO pris en charge: ZLIB
<strong>GCC Version 13.2.0 (GCC)</strong></strong>
Copier après la connexion

Comme vous l'avez remarqué dans la sortie ci-dessus, le GCC a été dans un sous-répertoire nommé RQGA421D43Q40BLRRGMIW820P01A4NBA-GCC-3.2.0 Under / Nix / Store .

Ici, nous appelons le répertoire RQGA421D43Q40BLRRGMIW820P01A4NBA-GCC-13.2.0 comme identifiant unique. Ce sous-répertoire contient toutes les dépendances et bibliothèques requises du package GCC.

Si vous installez une autre version de GCC, NIX créera un nouveau sous-répertoire, par exemple /nix/store/rfhfyuq ........43d8jfuh-gcc-xxx, et installez le GCC dans ce répertoire. De cette façon, ces deux versions de GCC ne seront pas en conflit les uns avec les autres.

Test des packages sans installer en utilisant NIX

Une autre fonctionnalité notable de NIX Package Manager est que vous pouvez tester un package sans l'installer sur votre système. Reportez-vous au guide suivant pour savoir comment tester un package sans l'installer.

  • Comment tester un package sans l'installer dans Linux

Créer des environnements de développement avec Nix Shell

Nix-Shell vous permet de créer des environnements de développement personnalisés pour chaque projet, avec tous les outils et bibliothèques nécessaires. Il fait partie du gestionnaire de packages NIX.

Pour apprendre à créer des environnements de développement reproductibles et isolés, reportez-vous au guide suivant:

  • Comment créer des environnements de développement avec Nix-Shell dans Linux

Packages de mise à niveau

Pour mettre à niveau un package à la prochaine version disponible, il suffit d'exécuter:

 $ Nix-env - Vim de mise à niveau
Copier après la connexion

Ou, juste:

 $ nix-env -u vim
Copier après la connexion

La commande ci-dessus ne mettra à niveau que le package VIM que s'il existe une version «plus récente».

En outre, vous pouvez mettre à niveau tous les packages installés à la fois en exécutant la commande suivante:

 $ nix-env -u
Copier après la connexion

Mettre à jour Nixos

Veuillez noter que les instructions suivantes sont spécifiquement pour les utilisateurs de Nixos.

Mettre à jour la chaîne Nixos

Tout d'abord, mettez à jour votre chaîne pour vous assurer que vous disposez des dernières définitions de package. Vous pouvez le faire avec la commande suivante:

 $ Nix-Channel - Update
Copier après la connexion
Copier après la connexion
Copier après la connexion

Cette commande met à jour tous les canaux auxquels vous êtes abonné, y compris le canal NixOS, qui contient les définitions du package et de la configuration du système.

Appliquer les mises à jour

Une fois le canal mis à jour, vous appliquez les mises à jour à votre système. Cela se fait en reconstruisant la configuration de votre système à l'aide des derniers packages du canal. Pour ce faire, courez:

 $ Sudo Nixos-Rebuild Switch
Copier après la connexion

La commande Nixos-Rebuild Switch reconstruit la configuration de votre système en fonction de votre fichier de configuration (/etc/nixos/configuration.nix), en utilisant les derniers packages de la chaîne. Après reconstruction, il passe immédiatement à la nouvelle configuration.

Conseils supplémentaires:

  • Vérifiez les mises à jour disponibles : il n'y a pas de commande Nixos directe pour vérifier les mises à jour disponibles comme dans certaines autres distributions Linux. Cependant, comme les mises à jour sont basées sur le contenu de la chaîne, l'exécution de Sudo Nix-Channel - Update garantit que vous avez les dernières définitions.
  • Mettre à niveau les packages spécifiques : si vous souhaitez mettre à niveau des packages spécifiques gérés par Nix-ENV, vous pouvez utiliser Nix-Env -U ou Nix-Env -U '*' pour mettre à jour tous les packages installés par l'utilisateur.

N'oubliez pas que les mises à jour Nixos sont généralement lisses et bien testées, grâce à la configuration déclarative et à la reproductibilité de NIX. Assurez-vous toujours que vos fichiers de configuration du système sont à jour et contrôlés par version pour une expérience de mise à jour transparente.

Rollback Packages

Ceci est une fonctionnalité fantastique du gestionnaire de packages NIX. Avant de voir comment faire des packages de relance, comprenons ce que sont les profils, les environnements utilisateur et les générations.

Dans NIX, les profils, les environnements utilisateur et les générations sont des concepts liés qui permettent de gérer les packages et les configurations de manière sûre et reproductible.

Profils

Un profil est une collection de packages et de configurations dans un but ou un utilisateur spécifique. Les profils permettent à plusieurs utilisateurs d'avoir leurs configurations personnalisées sans s'affronter. Vous pouvez basculer entre différents profils, gérant efficacement divers environnements ou ensembles d'applications.

Il existe deux principaux types de profils:

  • Profils d'utilisateur : chaque compte d'utilisateur a son propre profil, situé sur / Nix / var / Nix / Profils / Per-User / $ Utilisateur. Ce profil contient les packages que l'utilisateur a installés pour un usage personnel.
  • Profil du système : Le profil à l'échelle du système est situé sur / NIX / VAR / NIX / Profils / Système. Il contient des packages disponibles globalement sur le système, généralement gérés par l'administrateur système.

Environnements utilisateur

Un environnement utilisateur est un ensemble spécifique de packages et leurs dépendances installées dans le NIX Store (par exemple, /nix/store/3AW2PDYX2JFC...-User-env).

Il est créé chaque fois que vous installez, mettez à niveau ou supprimez des packages à l'aide de Nix-env. Les environnements utilisateur sont essentiellement eux-mêmes des packages, stockés dans la boutique Nix avec un hachage cryptographique unique comme nom de répertoire.

Les environnements utilisateur sont liés aux profils d'utilisateurs via Symlinks, permettant à différents utilisateurs d'avoir des configurations différentes sans interférence.

Générations

Une génération est un instantané de votre environnement utilisateur (l'ensemble des packages que vous avez installés) à un moment donné. Chaque fois que vous installez, améliorez ou supprimez des packages à l'aide de Nix-ENV, une nouvelle génération est créée.

Chaque génération est stockée dans le répertoire / Nix / Store avec un nom de hachage cryptographique unique (par exemple /nix/store/3aw2pdyx2jfc...-User-env). Il y a des liens symboliques dans / nix / var / nix / profils (par exemple, par défaut-2-link, default-3-link) qui pointent vers ces répertoires de génération.

L'avantage clé des générations est qu'ils vous permettent de revenir facilement ou de basculer entre différentes configurations de package à l'aide de commandes comme Nix-Env --Rollback et Nix-Env - Switch-Generation Commandes.

Pour mettre cela en mots simples:

  • Les profils sont des collections de packages et de configurations pour les utilisateurs ou le système.
  • Les environnements utilisateur sont des ensembles spécifiques de packages installés stockés dans le magasin Nix.
  • Les générations sont des instantanés d'environnements utilisateur, créés chaque fois que les packages sont installés, mis à niveau ou supprimés, permettant des reculs faciles et des commutateurs entre les configurations.

Cette approche favorise la fiabilité, la reproductibilité du système et la capacité d'expérimenter en toute sécurité avec différentes configurations de packages sans risquer la configuration actuelle.

Comment répertorier les générations

Pour afficher la liste des générations disponibles l'exécution:

 $ Nix-env - Générations de liste
Copier après la connexion

Cette commande répertorie toutes les générations disponibles pour votre profil actuel. La sortie affichera les numéros de génération, ses chemins dans le magasin Nix et indiquera quelle génération est actuellement active.

Exemple de sortie :

 1 2024-04-01 15:06:49   
   2 2024-04-01 15:17:14   
   3 2024-04-01 15:56:46 (actuel)
Copier après la connexion

Roll à la génération précédente

Vous avez installé un package, mais il n'est pas utile ou ne fonctionne pas correctement. Vous avez besoin de la version inférieure du même package. Que ferez-vous? Simple. Retournez simplement à la version de travail précédente à l'aide de la commande:

 $ nix-env --rollback
Copier après la connexion

Cette commande rend votre environnement utilisateur actuel à la génération précédente. Par exemple, si vous êtes actuellement sur la génération 3 et exécutez Nix-env --Rollback, il passera à la génération 2.

Générations de commutation

Nous pouvons basculer entre les différentes générations à l'aide de la commande:

 $ Nix-env - Switch-Generations <no></no>
Copier après la connexion

Cette commande vous permet de passer à une génération spécifique. Par exemple, Nix-Env --Switch-Generation 2 basculera votre environnement utilisateur à la génération 2, même si ce n'est pas la génération immédiatement précédente.

En résumé, les générations fournissent un moyen de gérer et de randonner les configurations du package. Les - Générations de list vous montrent quelles générations sont disponibles, la commande Nix-env --Rollback est un moyen pratique de défaire votre dernier changement, et - la génération de changement vous permet de choisir une génération spécifique.

Cette approche de gestion de génération favorise la fiabilité du système en vous permettant de réintégrer facilement les mauvaises modifications ou de tester de nouvelles configurations sans affecter votre configuration actuelle.

Packages désinstallés

Pour désinstaller le package, exécuter:

 $ nix-env -e gcc
Copier après la connexion

La commande ci-dessus désinstallera le package appelé gcc à partir de votre système.

Vous pouvez supprimer plusieurs packages comme indiqué ci-dessous.

 $ nix-env -e gcc vim
Copier après la connexion

Exemple de sortie:

 désinstallé «vim-9.1.0148»
désinstallant 'gcc-3.2.0'
Chemin de construction (s) '/ Nix / Store / MXPIKBQ3L08379H8IK8MRJ3FCW6MH6Y4-USER-Environnement'
créé 6 liens symboliques dans l'environnement utilisateur
Copier après la connexion

Retrait des forfaits inutilisés (collection de déchets)

Dans NIX, lorsque vous mettez à jour (-U) ou supprimez (-e) les programmes à l'aide de Nix-ENV, le système ne supprime pas réellement les anciennes versions du NIX Store (IE / NIX / Store / Directory). Au lieu de cela, il fait une nouvelle configuration pour votre profil sans liens vers les programmes supprimés. En d'autres termes, seuls les liens symboliques seront supprimés de votre profil.

Cependant, comme nous ne pouvons pas continuer à ajouter de nouveaux programmes sans manquer d'espace disque, Nixos a un moyen de nettoyer les programmes inutilisés appelés Garbage Collection . Le collecteur des ordures se débarrasse des programmes dont aucun profil ou leurs versions (générations) n'ont plus besoin.

Mais, si une ancienne version de votre configuration a encore besoin d'un programme, elle ne sera pas supprimée. Cette fonctionnalité est cruciale pour vous permettre de revenir aux configurations précédentes si nécessaire.

Pour aider le collecteur des ordures à faire son travail, c'est une bonne idée d'éliminer les anciennes versions que vous n'utilisez plus. Voici comment vous pouvez le faire:

Supprimez toutes les anciennes versions sauf la présente dans votre profil:

 $ Nix-env - Générations de déborde
Copier après la connexion

Supprimez des versions spécifiques dont vous n'avez plus besoin, par exemple, les versions 10, 11 et 14:

 $ Nix-env - Générations-délétiques 10 11 14
Copier après la connexion

Supprimer les versions âgées de plus de 30 jours:

 $ Nix-env - Delete Générations 30D
Copier après la connexion

Après avoir nettoyé les anciennes versions, exécutez le collecteur des ordures pour supprimer les programmes inutilisés:

 $ Nix-Store --gc
Copier après la connexion

Vous pouvez vérifier les fichiers que le collecteur des ordures supprimera avant de l'exécuter:

 $ nix-store --gc --print-dead
Copier après la connexion

Et pour voir quels fichiers resteront:

 $ nix-store --gc --print-live
Copier après la connexion

Il existe également un outil pratique pour le nettoyage, Nix-Collect-Garbage, qui peut supprimer toutes les anciennes versions de chaque profil à la fois. Utilisez-le avec l'option -D:

 $ Nix-COLLECT-GARBAGE -D
Copier après la connexion

Cette commande est un moyen facile de ranger votre système en se débarrassant des anciennes versions, puis en exécutant le collecteur des ordures pour éliminer les programmes inutiles.

Exemple de sortie:

 Trouver des racines de collection de déchets ...
Suppression des ordures ...
Deleting '/nix/store/s4jr4dc9gghldr3xza23rw0gm9kp21kl-nix-préfetch-scripts.drv'
Suppression '/nix/store/km2gyzlvs9vkrr52wxfyhinv4r52ksrj-nix-prefetch-bzr.drv'
Suppression '/nix/store/7mi73sdc1p349vmpb5nyxsrv8ayk5hly-bazaar-2.7.0.drv'

[...]

Suppression '/nix/store/8CKMCS9HX1QM0YXDNV892VRVX49ZM1SQ-SETUP-HOOK-2.0.sh'
Suppression '/ nix / store / trash'
Suppression des liens inutilisés ...
REMARQUE: la liaison actuellement dure sauve -0,00 MIB
1447 Chemins de magasin supprimés, 12,65 MIB Freed
Copier après la connexion

Cela supprimera en fait les packages désinstallés.

Vous devez exécuter cette commande périodiquement pour vous débarrasser des packages inutilisés de votre système.

Nix commande la feuille de triche

Voici une feuille de triche soignée pour les commandes NIX Package Manager. Imprimez-le et gardez-le près de votre bureau pour référence facile.

Action Commande Exemple
Installer le package nix-env -i Nix-env -i Firefox
Package de désinstallation nix-env -e Nix-env -e Firefox
Rechercher un package Nix-env -qap nix-env -qap python
Mettre à jour le package nix-env -u Nix-env -u Firefox
Liste des packages installés nix-env -q nix-env -q
Retrait les modifications nix-env - rollback nix-env - rollback
Collection des ordures Nix-COLLECT-GARBAGE -D Nix-COLLECT-GARBAGE -D
Nix commande la feuille de triche

Cetheet fiche couvre les commandes de base que vous utilisez pour gérer les packages avec NIX, offrant un guide simple pour démarrer et maintenir votre système.

Questions fréquemment posées

Voici les questions les plus fréquemment posées (FAQ) sur le gestionnaire de packages NIX.

Q: Qu'est-ce que Nix?

R: Nix est un puissant gestionnaire de packages pour les systèmes Linux et Unix qui se concentre sur la reproductibilité, la fiabilité et la portabilité. Il permet aux utilisateurs d'installer, gérer et basculer facilement entre les différentes versions de logiciels et leurs dépendances.

Q: Comment installer un package à l'aide de NIX?

R: Pour installer un package, utilisez la commande Nix-env -i suivie du nom du package. Par exemple, Nix-ENV -i Firefox installe le navigateur Web Firefox.

Q: Comment puis-je désinstaller un package?

R: Pour désinstaller un package, utilisez la commande nix-env -e suivie du nom du package. Par exemple, Nix-env -e Thunderbird désinstalle le client de messagerie Thunderbird.

Q: Comment rechercher les packages disponibles?

R: Pour rechercher un package, utilisez Nix-Env -Qap . Par exemple, pour trouver des packages liés à Python, vous pouvez utiliser Nix-env -qap Python.

Q: Puis-je mettre à jour un package spécifique?

R: Oui, pour mettre à jour un package spécifique, exécutez Nix-env -u . Pour mettre à jour tous les packages installés, utilisez simplement Nix-env -u.

Q: Comment puis-je voir quels packages j'ai installés?

R: Pour répertorier tous les packages installés, utilisez la commande nix-env -q.

Q: Comment puis-je répertorier tous les packages disponibles à partir d'un canal?

R: Pour répertorier tous les packages disponibles à partir d'une chaîne, exécutez Nix-env -QA.

Q: Comment puis-je revenir à un état précédent ou des changements de "retour"?

R: Nix garde une trace des changements dans les "générations". Pour revenir à la génération précédente, utilisez Nix-Env --Rollback. Vous pouvez énumérer les générations disponibles avec les générations de la liste Nix-env.

Q: Comment garder mon système Nix propre?

R: Utilisez Nix-Collect-Garbage -D pour supprimer les packages inutilisés et libérer de l'espace. Cette commande nettoie les packages non référencés par aucun profil.

Conclusion

Le gestionnaire de packages NIX offre un moyen robuste et flexible de gérer les packages logiciels sur les systèmes Linux et Unix.

Son approche de la gestion des packages garantit que vous pouvez installer, mettre à jour et basculer entre les différentes versions de logiciels sans conflits ni problèmes de dépendances.

Bien que Nix puisse avoir un peu de courbe d'apprentissage, en particulier pour les nouveaux concepts, les avantages de la gestion précise et reproductible des emballages sont importants.

Que vous soyez un développeur, un administrateur système ou simplement un utilisateur curieux, prendre le temps d'apprendre que Nix peut améliorer considérablement votre contrôle sur les environnements logiciels et rationaliser votre flux de travail.

C'est tout pour l'instant. J'espère que vous avez eu une idée claire de l' utilisation de base du gestionnaire de packages NIX . Ce que nous avons couvert ici devrait être suffisant pour vous aider à démarrer avec Nix.

Bien sûr, il y a tellement de commandes. Pour en savoir plus de commandes NIX, je vous recommande fortement de référer le manuel officiel du NIX ci-dessous.

Ressource:

  • Manuel NIX

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal