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
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.
Nix-shell schafft separate, reproduzierbare Umgebungen, um Projektabhängigkeiten zu verwalten und Konflikte zu verhindern.
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
Fügen Sie shell.nix
Folgendes hinzu:
{PKGS? Import<nixpkgs> {}}: pkgs.mkshell { BuildInputs = [ pkgs.python38 pkgs.nodejs pkgs.ruby ]; }</nixpkgs>
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>
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.scipyNach dem Login kopieren
Geben Sie die isolierte Umgebung mit:
$ nix-shell
oder
$ Nix-shell Shell.nix
Verwenden Sie zur maximalen Isolation --pure
:
$ Nix-shell--Pure Shell.nix
Dadurch wird eine Shell -Sitzung mit den angegebenen Abhängigkeiten erstellt.
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
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.
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
.
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:
Verwandte Artikel:
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!