Maison > Tutoriel système > Linux > Comment créer des environnements de développement avec Nix-Shell dans Linux

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

Jennifer Aniston
Libérer: 2025-03-19 10:11:08
original
628 Les gens l'ont consulté

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

  • Avantages de l'utilisation de Nix-Shell
  • Création et gestion des environnements de développement avec Nix Shell
    • Définir les dépendances avec une expression NIX
      • Environnements rapides et ad hoc
    • Accéder à la coquille Nix
    • Travailler dans la coquille Nix
    • Sortant de la coquille Nix
  • Questions fréquemment posées (FAQ)
  • Conclusion

Qu'est-ce que Nix-Shell?

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.

Avantages de l'utilisation de Nix-Shell

  • Isolement: Chaque environnement Nix Shell est isolé de votre système et d'autres environnements, empêchant les conflits de dépendance.
  • Reproductibilité: les environnements sont définis dans le code, assurant une reproduction cohérente sur tout système exécutant NIX.
  • Mises à niveau atomique et recul: NIX prend en charge les mises à niveau et les reculs atomiques, permettant une expérimentation sûre avec les dépendances.
  • Test sans installation: packages de test sans installation locale, idéal pour une utilisation temporaire des applications.

Création et gestion des environnements de développement avec Nix Shell

Nix-Shell crée des environnements séparés et reproductibles pour gérer les dépendances du projet, empêchant les conflits.

Définir les dépendances avec une expression NIX

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
Copier après la connexion

Ajoutez ce qui suit à shell.nix :

 {pkgs? importer<nixpkgs> {}}:

pkgs.mkshell {
  buildInputs = [
   pkgs.python38
   pkgs.nodejs
   pkgs.Ruby
  ]]
}</nixpkgs>
Copier après la connexion

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>
Copier après la connexion

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.scipy
Copier après la connexion

Accéder à la coquille Nix

Entrez dans l'environnement isolé en utilisant:

 $ nix-shell
Copier après la connexion

ou

 $ nix-shell shell.nix
Copier après la connexion

Pour l'isolement maximal, utilisez --pure :

 $ nix-shell --pure shell.nix
Copier après la connexion

Cela crée une session Shell avec les dépendances spécifiées.

Travailler dans la coquille Nix

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 
Copier après la connexion

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

Sortant de la coquille Nix

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 ).

Questions fréquemment posées (FAQ)

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 .

Conclusion

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:

  • Documentation officielle de Nix-Sell

Articles connexes:

  • Créer des environnements virtuels Nodejs à l'aide de conda dans Linux
  • Créez des environnements virtuels rouillés à l'aide de conda dans Linux
  • Créer des environnements virtuels Golang en utilisant conda dans Linux
  • Comment gérer les packages Python à l'aide de PIP
  • PIPX - Installez et exécutez les applications Python dans des environnements isolés
  • PIPENV - L'outil d'emballage Python officiellement recommandé

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