NIX - Der rein funktionale Paketmanager für Linux

NIX - Der rein funktionale Paketmanager für Linux

Nix ist ein leistungsstarkes, rein funktionelles Paketverwaltungssystem, das für zuverlässige und reproduzierbare Paketverwaltung entwickelt wurde, das unter den Bedingungen des GNU LGPLV2 veröffentlicht wurde.1. Es ist das primäre Paketverwaltungssystem in Nixos, eine weniger bekannte Linux -Verteilung.

NIX bietet Atom-Upgrades und Rollbacks, mehrere Versionen der Paketinstallation, das Management von Paketverpackungen mit mehreren Benutzern und ein müheloses Einrichtung von Build-Umgebungen für ein Paket, unabhängig davon, welche Programmiersprachen und Tools ein Entwickler verwendet.

Unter Nix, Die Pakete werden aus einer funktionalen Paketsprache namens “erstelltNix -Ausdrücke”. Dieser funktionale Ansatz für das Paketmanagement garantiert, dass das Installieren oder Upgrade eines Pakets andere Pakete nicht brechen kann.

Nix verfügt außerdem über Multi-Benutzer-Unterstützung, was impliziert, dass normale (oder nicht privilegierte) Systembenutzer Pakete sicher installieren können und jeder Benutzer durch ein Profil (eine Sammlung von Paketen im Nix-Store, die im Pfad des Benutzers angezeigt werden) identifiziert werden (eine Sammlung von Paketen).

Wenn ein Benutzer ein Paket installiert hat, wird das Paket kein zweites Mal erstellt oder heruntergeladen, wenn ein anderer Benutzer versucht, dasselbe Paket zu installieren.

Es unterstützt derzeit Linux (i686, x86_64) und Mac OS X (x86_64). Es ist jedoch ziemlich tragbar.

In diesem Artikel zeigen wir, wie Sie (im Multi -Benutzer -Modus) installieren und verwenden und verwenden Nix Paketmanager unter Linux. Wir werden einige der grundlegenden Aufgaben des Paketverwaltungsmanagements in Bezug auf die häufig verwendeten Tools diskutieren.

So installieren Sie Nix Package Manager unter Linux

Wir werden die neueste Version von installieren Nix (v2.1.3 zum Zeitpunkt des Schreibens) im Multi -Benutzer -Modus. Glücklicherweise gibt es ein vorbereitendes Installationsskript, das Sie als normaler Benutzer aus Ihrer Shell ausführen können.

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

Wenn Sie den obigen Befehl ausführen.

Installieren Sie Nix Package Manager unter Linux

Um eine detaillierte Liste dessen anzuzeigen, was während des Installationsprozesses passieren wird, geben Sie an y und drücke Eingeben. Wenn Sie zufrieden und bereit sind, fortzufahren, tippen Sie auf y und drücke Eingeben.

Zusammenfassung der NIX -Installation

Das Skript wird nach Bedarf um ein Vielfaches Sudo -Befehl aufrufen. Sie müssen es zulassen, es zu verwenden sudo durch Antwort y und schlagen Eingeben.

Die Nix -Installation wird fortgesetzt

Der Installationsprogramm führt dann einige Tests aus und generiert einen NIX -Konfigurationsbericht, erstellen Sie Build -Benutzer zwischen den Benutzer -IDs 30001 Und 30032, und eine Gruppe mit der Gruppen -ID 30000. Eingeben y weitermachen, wenn er aufgefordert wird. Es wird die Build -Gruppen für die verschiedenen Build -Benutzer eingerichtet, die grundlegende Verzeichnisstruktur von NIX erstellt.

Es wird die Datei ändern /etc/bashrc, (Und /etc/zshrc für die ZSH) Wenn sie existieren. Beachten Sie, dass es zuerst die genannten Dateien mit a unterstützt .Backup-vor-Nix Erweiterung und das Installationsprogramm erstellt auch die Datei /etc/Profil.D/Nix.Sch.

Der Installationsprogramm richtet außerdem den Nix-Daemon-Dienst und den Nix-DAemon Socket-Service ein, lädt die Systemd-Einheit für Nix-Dahemon und startet die beiden oben genannten Dienste.

Sobald die Installation abgeschlossen ist, müssen Sie ein neues Terminalfenster öffnen, um mit NIX zu beginnen. Alternativ schließen Sie und öffnen Sie Ihre Schale, um die jüngsten Änderungen anzuwenden. Beziehen Sie dann die Datei /etc/Profil.D/Nix.Sch (Da es sich nicht um eine Shell -Startdatei handelt, wird das Öffnen einer neuen Shell nicht bezeichnet.).

$ Quelle /etc /Profil.D/Nix.Sch 

Führen Sie als nächstes den folgenden Befehl aus, um einige Pfade von der offiziellen Projektwebsite herunterzuladen, die für benötigt wird Nix zu bedienen. Nachdem alle Pfade heruntergeladen und an die richtigen Standorte kopiert wurden, sehen Sie eine Zusammenfassung der System- und Nix -Installationstyp, wie im Screenshot gezeigt.

$ nix-shell -p nix-info-Run "Nix-info -m" 
NIX -Installation und Systemzusammenfassung

So verwenden Sie Nix Package Manager unter Linux

Unter Nix, Paketverwaltung erfolgt von der Nix-Env Dienstprogramm. Es wird zum Installieren, Upgrade und Entfernen/Löschen von Paketen verwendet und abfragt, welche Pakete installiert sind oder zur Installation verfügbar sind.

Alle Pakete befinden sich in einem Nix -Kanal, einer URL, die auf ein Repository verweist, das sowohl eine Sammlungen von Nix -Ausdrücken als auch einen Zeiger auf einen binären Cache umfasst.

Der Standardkanal ist Nixpkgs und die Liste der abonnierten Kanäle wird in gespeichert ~/.Nix-Kanäle, Sie können sie mit dem folgenden Befehl auflisten (keine Ausgabe bedeutet keine Kanäle).

$ Nix-Kanal-List 

Verwenden Sie den folgenden Befehl, um den Nix -Kanal hinzuzufügen, um den folgenden Befehl zu verwenden.

$ Nix-Kanal --add https: // nixos.org/kanäle/nixpkgs-unstable 

Beginnen Sie vor dem Installieren von Paketen den Nix -Kanal mit dem Aktualisieren. Dies ähnelt dem Laufen APT -Update Unter dem APT -Paketmanager.

$ Nix-Kanal-Update 
Aktualisieren Sie den Nix -Kanal

Sie können abfragen, welche Pakete mit dem folgenden Befehl für die Installation verfügbar sind.

$ nix -env -qa 
Für die Installation verfügbare Abfrageberechnungspakete

In diesem Beispiel werden wir den Apache Tomcat -Server mit dem vorherigen Befehl in Verbindung mit Grep installieren, um zu ermitteln, dass das Paket wie gezeigt installiert wird.

$ nix -env -qa | Grep "Apache-Tomcat" 
Finden Sie ein Paket zur Installation

Verwenden Sie zum Installieren eines Pakets den folgenden Befehl, indem Sie beispielsweise die Paketversion angeben Apache-Tomcat-9.0.2.

$ nix-env -i Apache-tomcat-9.0.2 
Installieren Sie ein Paket mit NIX

Auf dem lokalen System speichert Nix Pakete in der NIX Store, das ist standardmäßig die /Nix/Store Verzeichnis, in dem jedes Paket ein eigenes Subdirektorium hat. Zum Beispiel die Apache tomcat Pakete werden in: gespeichert:

/nix/store/95gmgnxlrcpkhlm00fa5AX8KVD6189PY-APACHE-TOMCAT-9.0.2 

Auf diesem Weg die zufälligen Zeichen 95GMGNXLRCPKHLM00FA5AX8KVD6189PY ist eine eindeutige Kennung für das Paket, das alle seine Abhängigkeiten berücksichtigt.

Sie können installierte Pakete mit dem folgenden Befehl auflisten.

$ nix -env -q 
Listen Sie installierte Pakete auf

So upgraden Sie die Apache tomcat Paket, Sie können die verwenden -u Upgrade -Switch wie gezeigt.

$ nix-env -u apache-tomcat 

Wenn Sie entfernen/löschen möchten Apache tomcat, Verwenden Sie das -e Flagge. Hier wird ein Paket nicht sofort aus dem System gelöscht, sondern nur unbenutzt gemacht. Dies ist nützlich, da Sie einen Rollback durchführen möchten, oder es kann sich in den Profilen anderer Benutzer befinden.

$ nix-env -e apache-tomcat 

Nach dem Entfernen eines Pakets können Sie eine Müllsammlung mit dem durchführen Nix-Collect-Müll Dienstprogramm.

$ Nix-collect-Müll 

So entfernen Sie Nix Package Manager unter Linux

Um Nix zu deinstallieren, entfernen Sie alle mit den Nix verwandten Dateien auf einmal.

$ sudo rm -rf/etc/profil/nix.sh /etc /nix /nix ~ root /.Nix-Profil ~ root/.NIX-Defexpr ~ root/.Nix-Kanäle ~/.Nix-Profil ~/.NIX-Defexpr ~/.Nix-Kanäle 

Führen Sie auf Systemen mit Systemd die folgenden Befehle aus, um alle Nix -verwandten Dienste zu stoppen und zu deaktivieren.

$ sudo systemctl stop nix-daemon.Socket $ sudo systemctl stop nix-daemon.Service $ sudo systemctl deaktivieren nix-daemon.Socket $ sudo systemctl deaktivieren nix-daemon.Service $ sudo systemctl Daemon-Reload 

Zusätzlich müssen Sie in diesen Dateien Verweise auf NIX entfernen: /etc/Profil, /etc/bashrc, Und /etc/zshrc.

Weitere Informationen finden Sie auf den Mannseiten der oben genannten Versorgungsunternehmen, die wir uns angesehen haben.

$ MAN Nix-Kanal $ MAN NIX-ENV 

Sie finden die Dokumentation von Nix Package Manager in der Projektwebsite: https: // nixos.org/nix/.

Zusammenfassung

Nix ist ein rein funktionaler Paket -Manager, der für eine zuverlässige und reproduzierbare Paketverwaltung entwickelt wurde. Es bietet ein interessantes Konzept des Paketmanagements, das sehr unterschiedlich für häufig verwendete Tools unter Linux wie Yum, Apt und vielen anderen.

In diesem Artikel haben wir gezeigt, wie NIX im Multi -Benutzer -Modus installiert wird, und wie man Package Management mit NIX durchführt. Teilen Sie uns Ihre Gedanken mit oder stellen Sie Fragen über das folgende Kommentarformular. Schließlich erläutern wir in einem kommenden Artikel weitere Befehle zur Verwaltung von NIX -Paketverwaltung. Bis dahin bleiben Sie in Verbindung.