Nix-Sell: rationalisez votre flux de travail de développement avec des environnements isolés
Vous en avez assez de jongler avec des versions logicielles contradictoires dans différents projets? Nix-Shell offre une solution puissante! Cet outil vous permet de créer des environnements de développement isolés, chacun adapté aux besoins d'un projet spécifique, garantissant un flux de travail fluide et sans conflit.
Ces environnements isolés empêchent les interférences entre les projets, éliminant le frustration de «l'enfer de dépendance» souvent rencontré lorsque les versions logicielles s'affrontent. Nix-Shell simplifie la création et la commutation de l'environnement, garantissant des configurations cohérentes sur diverses machines et augmentant l'efficacité de la collaboration par équipe.
Ce guide fournit une procédure pas à pas de la création et de la gestion des environnements de développement isolés à l'aide de Nix-Shell sur Linux.
Table des matières
Nix est un gestionnaire de packages robuste et un système de construction utilisant une approche fonctionnelle et déclarative de la gestion des dépendances. Il traite les packages comme des valeurs dans un paradigme de programmation fonctionnelle.
Nix-Shell, un outil de ligne de commande regroupé avec le gestionnaire de package NIX, exploite les expressions NIX pour générer des environnements de développement isolés. Ces environnements résument tous les outils, bibliothèques et dépendances nécessaires pour un projet donné.
En construisant indépendamment chaque dépendance et en empêchant les interférences, Nix-Shell éradique «l'enfer de dépendance» et fournit un contrôle granulaire des dépendances dans les paramètres de développement et de production. Cette isolement et la reproductibilité garantissent des configurations cohérentes sur différents systèmes et facilitent la collaboration transparente des développeurs.
Nix-Shell crée des environnements séparés et reproductibles pour gérer les dépendances du projet, empêchant les conflits.
Tout d'abord, créez une expression NIX définissant les dépendances de votre projet. Il s'agit généralement d'un fichier nommé default.nix
ou shell.nix
dans le répertoire racine de votre projet.
Créons un exemple de projet, myproject
:
$ mkdir myproject $ cd myproject $ nano shell.nix
Ajoutez ce qui suit à shell.nix
:
{pkgs? importer<nixpkgs> {}}: pkgs.mkshell { buildInputs = [ pkgs.python38 pkgs.nodejs pkgs.Ruby ]] }</nixpkgs>
Cela définit un environnement avec Python 3.8, Node.js et Ruby. L'exécution nix-shell
dans ce répertoire les installera de manière isolée.
Une version plus concise:
{pkgs? importer<nixpkgs> {}}: pkgs.mkshell {buildInputs = avec pkgs.buildPackages; [Python38 Nodejs Ruby]; }</nixpkgs>
Enregistrer et fermer le fichier.
Environnements rapides et ad hoc
Pour les environnements temporaires, utilisez
nix-shell -p package1 package2 ...
Par exemple:Nix-Sell -p Python39Packages.Numpy Python39Packages.scipyCopier après la connexion
Entrez dans l'environnement isolé en utilisant:
$ nix-shell
ou
$ nix-shell shell.nix
Pour l'isolement maximal, utilisez --pure
:
$ nix-shell --pure shell.nix
Cela crée une session Shell avec les dépendances spécifiées.
Dans l'environnement Nix-Shell, utilisez vos outils de développement comme d'habitude. L'environnement isolé assure des dépendances cohérentes quel que soit le système hôte.
Vérifiez les versions installées:
[nix-shell: ~ / myproject] $ python -v [nix-shell: ~ / myproject] $ node -v [nix-shell: ~ / myproject] $ ruby -v
Sortie à l'aide exit
ou CTRL D
. La sortie supprime l'environnement temporaire, en respectant les paramètres de shell à leur état précédent sans affecter votre système. Les fichiers du projet restent inchangés. Les forfaits inutilisés dans le magasin Nix peuvent être supprimés via la collection des ordures ( nix-collect-garbage -d
).
Q: Qu'est-ce que Nix-Shell? R: Un outil de ligne de commande créant des environnements de shell temporaires et isolés avec des packages logiciels spécifiques.
Q: Comment puis-je l'installer? R: Cela fait partie du gestionnaire de packages NIX; Installez d'abord Nix.
Q: Comment créer un environnement isolé? A: Utilisez un fichier shell.nix
spécifiant les dépendances ou utilisez nix-shell -p ...
pour les environnements ad hoc.
Q: Que supporte-t-il les Os? R: La plupart des systèmes de type Unix (Linux, macOS); Les utilisateurs de Windows peuvent utiliser WSL.
Q: Que se passe-t-il à la sortie? R: L'environnement est supprimé; Les paramètres de shell reviennent; Les fichiers de projet restent.
Q: Comment évite-t-il «l'enfer de dépendance»? R: L'approche fonctionnelle de Nix garantit des constructions de packages isolées, empêchant les conflits.
Q: Puis-je sauver l'état de l'environnement? A: Le fichier shell.nix
est reproductible; Pour des scénarios plus complexes, explorez les capacités de package et de configuration de Nix.
Q: Comment ajouter / supprimer les packages? R: Modifiez la liste buildInputs
du fichier shell.nix
ou ajustez les indicateurs -p
.
Q: Comment effectuer la collection des ordures? R: Utilisez nix-collect-garbage -d
.
Nix-Shell rationalise le développement en fournissant des espaces de travail de projet isolés. Cela empêche les conflits et assure des environnements cohérents entre les machines, vous permettant de vous concentrer sur le codage plutôt que sur la gestion de la dépendance.
Ressources:
Articles connexes:
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!