Nix - le gestionnaire de packages purement fonctionnels pour Linux

Nix - le gestionnaire de packages purement fonctionnels pour Linux

Rien est un système de gestion des packages puissant et purement fonctionnel conçu pour une gestion fiable et reproductible des packages, publié sous les termes du GNU LGPLV2.1. Il s'agit du système de gestion des packages principaux dans Nixos, Une distribution Linux moins connue.

Nix propose des mises à niveau atomique et des reculs, plusieurs versions d'installation de packages, une gestion des packages multi-utilisateurs et une configuration sans effort d'environnements de construction pour un package, quels que soient les langages et outils de programmation qu'un développeur utilise.

Sous Rien, Les packages sont construits à partir d'un langage de package fonctionnel appelé «Expressions Nix". Cette approche fonctionnelle de la gestion des packages garantit que l'installation ou la mise à niveau d'un package ne peut pas casser d'autres packages.

Nix a également une prise en charge multi-utilisateurs, ce qui implique que les utilisateurs de systèmes normaux (ou non privilégiés) peuvent installer en toute sécurité des packages et que chaque utilisateur est identifié par un profil (une collection de packages dans le magasin NIX qui apparaissent dans le chemin de l'utilisateur).

Dans le cas où un utilisateur a installé un package, si un autre utilisateur essaie d'installer le même package, le package ne sera pas construit ou téléchargé une deuxième fois.

Il prend actuellement en charge Linux (i686, x86_64) et Mac OS X (x86_64). Cependant, il est assez portable, vous pouvez l'essayer sur la plupart des plates-formes qui prennent en charge les threads POSIX et ont un compilateur C ++ 11.

Dans cet article, nous montrerons comment installer (en mode multi-utilisateur) et utiliserons Rien Gestionnaire de packages dans Linux. Nous discuterons de certaines des tâches de gestion des packages de base par rapport aux outils couramment utilisés.

Comment installer le gestionnaire de packages NIX dans Linux

Nous allons installer la dernière version de Rien (v2.1.3 au moment de la rédaction) en mode multi-utilisateur. Heureusement, il existe un script d'installation prêt préparé que vous pouvez exécuter à partir de votre shell en tant qu'utilisateur normal en utilisant la commande CURL suivante sur votre système.

$ sh <(curl https://nixos.org/nix/install) --daemon 

L'exécution de la commande ci-dessus téléchargera le dernier Tarball binaire Nix, et vous atterrirez dans l'écran d'installation multi-utilisateurs NIX comme indiqué dans la capture d'écran.

Installez le gestionnaire de packages NIX dans Linux

Pour afficher une liste détaillée de ce qui se passera pendant le processus d'installation, tapez y et presser Entrer. Si vous êtes satisfait et prêt à continuer, tapez y et presser Entrer.

Résumé de l'installation NIX

Le script invoquera la commande sudo plusieurs fois au besoin. Vous devez lui permettre d'utiliser Sudo en répondant y Et frapper Entrer.

L'installation NIX continue

Le programme d'installation exécutera ensuite quelques tests et générera un rapport de configuration NIX, créera des utilisateurs de construction entre les ID utilisateur 30001 et 30032, et un groupe avec l'ID de groupe 30000. Entrer y Pour continuer lorsqu'il est invité. Il configurera les groupes de build pour les différents utilisateurs de construction, fera la structure du répertoire de base de Nix.

Il modifiera le fichier / etc / bashrc, (et / etc / zshrc pour le zsh) s'il existe. Notez qu'il soutient d'abord les fichiers mentionnés avec un .sauvegarde-avant-nix Extension et l'installateur crée également le fichier / etc / profil.d / nix.shot.

Le programme d'installation configurera également le service Nix-Daemon et le service Nix-Daemon Socket, charge l'unité Systemd pour Nix-Daemon et démarre les deux services susmentionnés.

Une fois l'installation terminée, vous devez ouvrir une nouvelle fenêtre de terminal pour commencer à utiliser NIX. Alternativement, fermez et rouvrez votre coquille pour appliquer les changements récents. Puis achetez le fichier / etc / profil.d / nix.shot (Parce que ce n'est pas un fichier de démarrage de shell, l'ouverture d'un nouveau shell ne le procurera pas).

$ source / etc / profil.d / nix.shot 

Ensuite, exécutez la commande suivante pour télécharger certains chemins du site officiel du projet, requis pour Rien opérer. Une fois que tous les chemins sont téléchargés et copiés dans les bons emplacements, vous verrez un résumé de type d'installation de système et de NIX comme indiqué dans la capture d'écran.

$ nix-shell -p nix-info - run "Nix-info -m" 
Résumé de l'installation et du système NIX

Comment utiliser le gestionnaire de packages NIX dans Linux

Sous Rien, La gestion des packages est effectuée par le Nix-env utilitaire. Il est utilisé pour installer, mettre à niveau et supprimer / effacer les packages, et pour interroger quels packages sont installés ou sont disponibles pour l'installation.

Tous les packages sont situés dans un canal Nix, qui est une URL qui pointe vers un référentiel comprenant à la fois une collection d'expressions Nix et un pointeur vers un cache binaire.

Le canal par défaut est Nixpkgs et la liste des canaux abonnés est stocké dans ~ /.channels nix, Vous pouvez les répertorier en utilisant la commande suivante (aucune sortie signifie pas de canaux).

$ nix-channel - liste 

Pour ajouter le canal Nix, utilisez la commande suivante.

$ Nix-Channel --Add https: // Nixos.org / canaux / nixpkgs-unstable 

Avant d'installer tous les packages, commencez par mettre à jour le canal Nix; Ceci est similaire à la course mise à jour apte Sous le gestionnaire de packages APT.

$ Nix-Channel - Update 
Mettre à jour la chaîne NIX

Vous pouvez interroger quels packages sont disponibles pour l'installation en utilisant la commande suivante.

$ nix-env -qa 
Packages de requête disponibles pour l'installation

Dans cet exemple, nous installerons le serveur Apache Tomcat en utilisant la commande précédente conjointement avec Grep pour trouver que le package est disponible pour installer comme indiqué.

$ nix-env -qa | grep "apache-tomcat" 
Trouvez un package pour l'installation

Pour installer un package, utilisez la commande suivante en spécifiant la version du package, par exemple apache-tomcat-9.0.2.

$ nix-env -i apache-tomcat-9.0.2 
Installez un package à l'aide de NIX

Sur le système local, Nix stocke les forfaits dans le Magasin Nix, qui est par défaut le / Nix / Store Répertoire, où chaque package a son propre sous-répertoire unique. Par exemple, le apache-tomcat Les packages sont stockés dans:

/ Nix / Store / 95GMGNXLRCPKHLM00FA5AX8KVD6189PY-APACHE-TOMCAT-9.0.2 

Dans ce chemin, les personnages aléatoires 95gmgnxlrcpkhlm00fa5ax8kvd6189py est un identifiant unique pour le package qui prend en compte toutes ses dépendances.

Vous pouvez énumérer les packages installés avec la commande suivante.

$ nix-env -q 
Liste des packages installés

Pour mettre à niveau le apache-tomcat package, vous pouvez utiliser le -u Commutateur de mise à niveau comme indiqué.

$ nix-env -u apache-tomcat 

Si vous souhaitez supprimer / effacer apache-tomcat, Utilisez le -e drapeau. Ici, un paquet n'est pas effacé immédiatement du système, il n'est rendu que non utilisé. Ceci est utile parce que vous voulez faire un recul, ou cela pourrait être dans les profils d'autres utilisateurs.

$ nix-env -e apache-tomcat 

Après avoir retiré un colis, vous pouvez faire une collection d'ordures avec le nix-collect-garbage utilitaire.

$ Nix-COLLECT-GARBAGE 

Comment supprimer le gestionnaire de packages NIX dans Linux

Pour désinstaller Nix, supprimez tous les fichiers liés à Nix en une seule fois.

$ sudo rm -rf / etc / profil / nix.sh / etc / nix / nix ~ root /.Nix-Profile ~ root /.nix-defexpr ~ root /.Nix-Channels ~ /.Nix-Profile ~ /.Nix-defexpr ~ /.channels nix 

Sur les systèmes avec SystemD, exécutez les commandes suivantes pour arrêter tous les services liés à tous les Nix et les désactiver.

$ sudo systemctl stop nix-daemon.Socket $ sudo systemctl stop nix-daemon.Service $ sudo systemctl Désactiver Nix-Daemon.Socket $ sudo systemctl Désactiver Nix-Daemon.service $ sudo systemctl daemon-reload 

De plus, vous devez supprimer toutes les références à Nix dans ces fichiers: / etc / profil, / etc / bashrc, et / etc / zshrc.

Pour plus d'informations, voir les pages de l'homme des services publics ci-dessus que nous avons examinés.

$ man nix-channel $ man nix-env 

Vous pouvez trouver la documentation NIX Package Manager sur le site Web du projet: https: // Nixos.org / nix /.

Résumé

Rien est un gestionnaire de packages purement fonctionnel conçu pour la gestion des packages fiables et reproductibles. Il fournit un concept intéressant de gestion des paquets, très distinct des outils couramment utilisés dans Linux tels que Yum, APT et bien d'autres.

Dans cet article, nous avons montré comment installer Nix en mode multi-utilisateur et discuté de la gestion des packages avec NIX. Partagez vos réflexions avec nous ou posez des questions via le formulaire de commentaire ci-dessous. Enfin, dans un prochain article, nous expliquerons plus de commandes de gestion des packages NIX. Jusque-là, restez connecté.