Heim > System-Tutorial > LINUX > So erstellen Sie Entwicklungsumgebungen mit Nix-Shell unter Linux

So erstellen Sie Entwicklungsumgebungen mit Nix-Shell unter Linux

Jennifer Aniston
Freigeben: 2025-03-19 10:11:08
Original
625 Leute haben es durchsucht

NIX-Shell: Stürzen Sie Ihren Entwicklungsworkflow mit isolierten Umgebungen

Sind Sie es leid, widersprüchliche Softwareversionen in verschiedenen Projekten zu jonglieren? Nix-shell bietet eine leistungsstarke Lösung! Mit diesem Tool können Sie isolierte Entwicklungsumgebungen erstellen, die jeweils auf die Bedürfnisse eines bestimmten Projekts zugeschnitten sind und einen reibungslosen und konfliktfreien Workflow sicherstellen.

Diese isolierten Umgebungen verhindern Störungen zwischen Projekten und beseitigen die frustrierende "Abhängigkeitshölle", die häufig auftreten, wenn Softwareversionen zusammenhängen. Nix-shell vereinfacht die Erstellung und das Umschalten der Umgebung, um konsistente Setups für verschiedene Maschinen zu gewährleisten und die Effizienz der Zusammenarbeit der Teams zu steigern.

Dieser Leitfaden bietet eine Schritt-für-Schritt-Vorgehensweise mit der Erstellung und Verwaltung von isolierten Entwicklungsumgebungen mithilfe von Nix-Shell unter Linux.

Inhaltsverzeichnis

  • Vorteile der Verwendung von Nix-Shell
  • Entwicklungsumgebungen mit Nix-Shell erstellen und verwalten
    • Definieren von Abhängigkeiten mit einem Nix -Ausdruck
      • Schnelle, ad-hoc-Umgebungen
    • Zugriff auf die Nix -Shell
    • Arbeiten innerhalb der Nix -Shell
    • Ausgang der Nix -Shell
  • Häufig gestellte Fragen (FAQ)
  • Abschluss

Was ist Nix-Shell?

Nix ist ein robuster Paketmanager und erstellt System, das einen funktionalen und deklarativen Ansatz für das Abhängigkeitsmanagement verwendet. Es behandelt Pakete als Werte innerhalb eines funktionellen Programmierparadigmas.

Nix-shell, ein mit dem NIX-Paketmanager gebündelter Befehlszeilen-Tool, nutzt Nix Expressions, um isolierte Entwicklungsumgebungen zu generieren. Diese Umgebungen verkörpern alle erforderlichen Tools, Bibliotheken und Abhängigkeiten für ein bestimmtes Projekt.

Durch die unabhängige Aufstellung jeder Abhängigkeit und die Verhinderung von Störungen beseitigt Nix-Shell die "Abhängigkeitshölle" und bietet eine granulare Kontrolle über Abhängigkeiten sowohl in der Entwicklung als auch in der Produktion. Diese Isolation und Reproduzierbarkeit garantiert konsistente Setups über verschiedene Systeme hinweg und erleichtert die Kollaboration der nahtlosen Entwickler.

Vorteile der Verwendung von Nix-Shell

  • Isolation: Jede Nix-Shell-Umgebung ist aus Ihrem System und anderen Umgebungen isoliert und verhindert Abhängigkeitskonflikte.
  • Reproduzierbarkeit: Umgebungen werden im Code definiert, um eine konsistente Reproduktion auf jedem System zu gewährleisten, das mit NIX ausgeführt wird.
  • Atomic Upgrades und Rollbacks: Nix unterstützt Atom -Upgrades und Rollbacks und ermöglicht ein sicheres Experimentieren mit Abhängigkeiten.
  • Testen ohne Installation: Testpakete ohne lokale Installation, ideal für die vorübergehende Anwendung.

Entwicklungsumgebungen mit Nix-Shell erstellen und verwalten

Nix-shell schafft separate, reproduzierbare Umgebungen, um Projektabhängigkeiten zu verwalten und Konflikte zu verhindern.

Definieren von Abhängigkeiten mit einem Nix -Ausdruck

Erstellen Sie zunächst einen Nix -Ausdruck, der die Abhängigkeiten Ihres Projekts definiert. Dies ist normalerweise eine Datei namens default.nix oder shell.nix im Stammverzeichnis Ihres Projekts.

Lassen Sie uns ein Beispielprojekt erstellen, myproject :

 $ mkdir MyProject
$ cd MyProject
$ nano Shell.nix
Nach dem Login kopieren

Fügen Sie shell.nix Folgendes hinzu:

 {PKGS? Import<nixpkgs> {}}:

pkgs.mkshell {
  BuildInputs = [
   pkgs.python38
   pkgs.nodejs
   pkgs.ruby
  ];
}</nixpkgs>
Nach dem Login kopieren

Dies definiert eine Umgebung mit Python 3.8, Node.js und Ruby. Durch das Ausführen nix-shell in diesem Verzeichnis wird diese isoliert installiert.

Eine prägnantere Version:

 {PKGS? Import<nixpkgs> {}}: pkgs.mkshell {BuildInputs = mit pkgs.buildpackages; [Python38 Nodejs Ruby]; }</nixpkgs>
Nach dem Login kopieren

Speichern und schließen Sie die Datei.

Schnelle, ad-hoc-Umgebungen

Verwenden Sie für temporäre Umgebungen nix-shell -p package1 package2 ... Zum Beispiel:

 nix -shell -p python39packages.numpy python39packages.scipy
Nach dem Login kopieren

Zugriff auf die Nix -Shell

Geben Sie die isolierte Umgebung mit:

 $ nix-shell
Nach dem Login kopieren

oder

 $ Nix-shell Shell.nix
Nach dem Login kopieren

Verwenden Sie zur maximalen Isolation --pure :

 $ Nix-shell--Pure Shell.nix
Nach dem Login kopieren

Dadurch wird eine Shell -Sitzung mit den angegebenen Abhängigkeiten erstellt.

Arbeiten innerhalb der Nix -Shell

Verwenden Sie in der Nix-Shell-Umgebung Ihre Entwicklungstools wie gewohnt. Die isolierte Umgebung sorgt unabhängig vom Wirtssystem konsistente Abhängigkeiten.

Überprüfen Sie die installierten Versionen:

 [Nix -Shell: ~/MyProject] $ Python -v
[Nix -shell: ~/myProject] $ node -v
[Nix -Shell: ~/MyProject] $ Ruby -v 
Nach dem Login kopieren

So erstellen Sie Entwicklungsumgebungen mit Nix-Shell unter Linux

Ausgang der Nix -Shell

Beenden Sie mit exit oder CTRL D . Das Verlassen der temporären Umgebung beseitigt die Einstellungen von Shell in ihren vorherigen Zustand, ohne sich auf Ihr System auswirken. Projektdateien bleiben unverändert. Unbenutzte Pakete im NIX-Geschäft können über die Müllsammlung ( nix-collect-garbage -d ) entfernt werden.

Häufig gestellte Fragen (FAQ)

F: Was ist Nix-Shell? A: Ein Befehlszeilen-Tool erstellen temporäre, isolierte Shell-Umgebungen mit bestimmten Softwarepaketen.

F: Wie installiere ich es? A: Es ist Teil des NIX -Paketmanagers. Installieren Sie zuerst Nix.

F: Wie schaffe ich eine isolierte Umgebung? A: Verwenden Sie eine shell.nix Datei, in der Abhängigkeiten angegeben werden, oder verwenden Sie nix-shell -p ... für Ad-hoc-Umgebungen.

F: Welche OSS unterstützt es? A: Die meisten Unix-ähnlichen Systeme (Linux, macOS); Windows -Benutzer können WSL verwenden.

F: Was passiert beim Ausgang? A: Die Umgebung wird entfernt; Shell -Einstellungen kehren zurück; Projektdateien bleiben bestehen.

F: Wie vermeidet es "Abhängigkeitshölle"? A: Der funktionale Ansatz von NIX sorgt für isolierte Paketbaus und verhindert Konflikte.

F: Kann ich den Umweltstatus retten? A: Die shell.nix -Datei ist reproduzierbar; Weitere komplexe Szenarien finden Sie in den Paket- und Konfigurationsfunktionen von Nix.

F: Wie füge/entfernen ich Pakete? A: Ändern Sie die buildInputs -Liste der shell.nix -Datei oder passen Sie die -p -Flags an.

F: Wie führe ich die Müllsammlung durch? A: Verwenden Sie nix-collect-garbage -d .

Abschluss

Nix-shell optimiert die Entwicklung durch Bereitstellung isolierter Projektarbeitsbereiche. Dies verhindert Konflikte und gewährleistet konsistente Umgebungen zwischen Maschinen, sodass Sie sich eher auf das Codieren als auf das Abhängigkeitsmanagement konzentrieren können.

Ressourcen:

  • Nix-Shell Offizielle Dokumentation

Verwandte Artikel:

  • Erstellen Sie virtuelle NodeJS -Umgebungen mit Conda unter Linux
  • Erstellen Sie mit Conda unter Linux Rost -Virtual -Umgebungen
  • Erstellen Sie virtuelle Golang -Umgebungen mit Conda unter Linux
  • So verwalten Sie Python -Pakete mit PIP
  • PIPX - Installieren und Ausführen von Python -Anwendungen in isolierten Umgebungen
  • POPENV - Das offiziell empfohlene Python -Verpackungswerkzeug

Das obige ist der detaillierte Inhalt vonSo erstellen Sie Entwicklungsumgebungen mit Nix-Shell unter Linux. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage