Nix - De reng funktionnelle Package Manager fir Linux


Nix ass e mächtege, reng funktionnelle Package Management System entwéckelt fir zouverlässeg a reproduzéierbar Package Management, verëffentlecht ënner de Konditioune vum GNU LGPLv2.1. Et ass de primäre Package Management System an NixOS, eng manner bekannt Linux Verdeelung.

Nix bitt atomarer Upgrades a Rollbacks, Multiple Versioune vu Packageinstallatioun, Multi-User Package Management an ustrengend Setup vu Bauëmfeld fir e Package, egal wéi eng Programméierungssproochen an Tools en Entwéckler benotzt.

Ënnert Nix ginn d'Packagen aus enger funktioneller Packagesprooch gebaut, déi Nix Ausdréck genannt gëtt.Dës funktionell Approche fir d'Packageverwaltung garantéiert datt d'Installatioun oder d'Upgrade vun engem Package net aner Packagen briechen.

Nix huet och Multi-User Ënnerstëtzung, wat implizéiert datt normal (oder net privilegiéiert) System Benotzer sécher Pakete installéiere kënnen an all Benotzer gëtt duerch e Profil identifizéiert (eng Sammlung vu Packagen am Nix Store, déi am PATH vum Benotzer erschéngen).

Am Fall wou ee Benotzer e Package installéiert huet, wann en anere Benotzer probéiert dee selwechte Package z'installéieren, gëtt de Package net eng zweete Kéier gebaut oder erofgelueden.

Et ënnerstëtzt de Moment Linux (i686, x86_64) a Mac OS X (x86_64). Wéi och ëmmer, et ass zimlech portabel, Dir kënnt et op de meeschte Plattformen probéieren déi POSIX Threads ënnerstëtzen an e C++11 Compiler hunn.

An dësem Artikel wäerte mir weisen wéi Dir installéiert (am Multi User Modus) an Nix Package Manager an Linux benotzt. Mir wäerten e puer vun de Basis Package Gestioun Aufgaben am Zesummenhang mat der allgemeng benotzt Tools diskutéieren.

Wéi installéiere ech den Nix Package Manager op Linux

Mir installéieren déi lescht Versioun vum Nix (v2.1.3 beim Schreiwen) am Multi User Modus. Glécklecherweis gëtt et e fäerdeg preparéierten Installatiounsskript dat Dir aus Ärem Shell als normale Benotzer kënnt mat de folgende Curl Kommando op Ärem System lafen.

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

Den uewe genannte Kommando eroflueden wäert de leschten nix binäre Tarball eroflueden, an Dir wäert am Multi-User Nix Installatiounsbildschierm landen wéi am Screenshot gewisen.

Fir eng detailléiert Lëscht ze gesinn wat während dem Installatiounsprozess geschitt, gitt y an dréckt Enter. Wann Dir zefridden sidd a prett sidd fir weiderzemaachen, gitt y an dréckt Enter.

De Skript rifft sudo Kommando vill Mol wéi néideg. Dir musst et erlaben sudo ze benotzen andeems Dir y beäntwert an Enter dréckt.

Den Installateur wäert dann e puer Tester ausféieren an en Nix-Konfiguratiounsbericht generéieren, Build Benotzer erstellen tëscht de Benotzer IDen 30001 an 30032, an eng Grupp mat der Grupp ID 30000. Gitt y fir weiderzeféieren wann se gefrot ginn. Et wäert d'Buildgruppen fir déi verschidde Build Benotzer opsetzen, d'Basis Verzeichnisstruktur vun Nix maachen.

Et wäert d'Datei /etc/bashrc änneren, (an /etc/zshrc fir den zsh) wa se existéieren. Bedenkt datt et fir d'éischt déi genannte Dateien mat enger .backup-before-nix Extensioun mécht an den Installateur erstellt och d'Datei /etc/profile.d/nix.sh.

Den Installateur wäert och den nix-daemon Service an den nix-daemon Socket Service opsetzen, lued d'Systemd Eenheet fir nix-daemon a fänkt déi zwee uewe genannte Servicer un.

Wann d'Installatioun fäerdeg ass, musst Dir eng nei Terminalfenster opmaachen fir Nix ze benotzen. Alternativ, zoumaachen an nei opmaachen Är Shell fir déi rezent Ännerungen anzesetzen. Dann Quell d'Datei /etc/profile.d/nix.sh (well et net eng Shell-Startupdatei ass, eng nei Shell opzemaachen wäert et net Quell maachen).

$ source /etc/profile.d/nix.sh

Als nächst, fuert de folgende Kommando fir e puer Weeër vun der offizieller Projet Websäit erofzelueden, erfuerderlech fir Nix ze bedreiwen. Nodeems all Weeër erofgelueden an op déi richteg Plazen kopéiert sinn, gesitt Dir e System an Nix Installatiounstyp Resumé wéi am Screenshot gewisen.

$ nix-shell -p nix-info --run "nix-info -m"

Wéi benotzen ech den Nix Package Manager a Linux

Ënner Nix gëtt Packagemanagement vum nix-env Utility gemaach. Et gëtt benotzt fir Packagen z'installéieren, ze upgraden an ze läschen/ze läschen, a fir ze froen wéi eng Packagen installéiert sinn oder verfügbar sinn fir d'Installatioun.

All Packagen sinn an engem Nix Kanal lokaliséiert, dat ass eng URL déi op e Repository weist, deen souwuel eng Sammlung vun Nix Ausdréck an e Pointer op e binäre Cache enthält.

De Standardkanal ass Nixpkgs an d'Lëscht vun de abonnéierte Kanäl ginn an ~/.nix-Channels gespäichert, Dir kënnt se mat dem folgenden Kommando oplëschten (keng Ausgang heescht keng Kanäl).

$ nix-channel --list

Fir den Nix Kanal ze addéieren, benotzt de folgende Kommando.

$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable

Ier Dir Packagen installéiert, fänkt un mam Update vum Nix Kanal un; dëst ass ähnlech wéi apt Update ënner dem APT Package Manager.

$ nix-channel --update

Dir kënnt froen wéi eng Packagen fir d'Installatioun verfügbar sinn mat dem folgenden Kommando.

$ nix-env -qa

An dësem Beispill wäerte mir de grep installéieren fir ze fannen datt de Package verfügbar ass fir z'installéieren wéi gewisen.

$ nix-env -qa | grep "apache-tomcat"

Fir e Package z'installéieren, benotzt de folgende Kommando andeems Dir d'Packageversioun spezifizéiert, zum Beispill apache-tomcat-9.0.2.

$ nix-env -i apache-tomcat-9.0.2

Am lokalen System späichert Nix Packagen am Nix Store, wat par défaut den /nix/store Verzeichnis ass, wou all Package säin eegene eenzegaartegen Ënnerverzeechnes huet. Zum Beispill sinn d'Apache-tomcat Packagen an:

/nix/store/95gmgnxlrcpkhlm00fa5ax8kvd6189py-apache-tomcat-9.0.2

Op dësem Wee sinn déi zoufälleg Zeechen 95gmgnxlrcpkhlm00fa5ax8kvd6189py en eenzegaartegen Identifizéierer fir de Package deen all seng Ofhängegkeete berücksichtegt.

Dir kënnt installéiert Pakete mat dem folgenden Kommando oplëschten.

$ nix-env -q

Fir den Apache-tomcat Package ze aktualiséieren, kënnt Dir den -u Upgrade-Schalter benotzen wéi gewisen.

$ nix-env -u apache-tomcat

Wann Dir Apache-tomcat wëllt läschen/läschen, benotzt de -e Fändel. Hei gëtt e Package net direkt aus dem System geläscht, et gëtt nëmmen onbenotzt gemaach. Dëst ass nëtzlech well Dir wëllt e Réckroll maachen, oder et kéint an de Profiler vun anere Benotzer sinn.

$ nix-env -e apache-tomcat

Nodeems Dir e Package ewechgeholl hutt, kënnt Dir e puer Dreck sammelen mat dem nix-collect-garbage Utility.

$ nix-collect-garbage

Wéi läschen den Nix Package Manager a Linux

Fir Nix z'installéieren, läscht all nix-relatéiert Dateien op ee Wee.

$ sudo rm -rf /etc/profile/nix.sh /etc/nix /nix ~root/.nix-profile ~root/.nix-defexpr ~root/.nix-channels ~/.nix-profile ~/.nix-defexpr ~/.nix-channels

Op Systemer mat Systemd, lafen déi folgend Kommandoen fir all nix-relatéiert Servicer ze stoppen an se auszeschalten.

$ sudo systemctl stop nix-daemon.socket
$ sudo systemctl stop nix-daemon.service
$ sudo systemctl disable nix-daemon.socket
$ sudo systemctl disable nix-daemon.service
$ sudo systemctl daemon-reload

Zousätzlech musst Dir all Referenzen op Nix an dësen Dateien läschen: /etc/profile, /etc/bashrc, an /etc/zshrc.

Fir méi Informatioun, kuckt d'Man Säiten vun den uewe genannten Utilities, déi mir gekuckt hunn.

$ man nix-channel
$ man nix-env

Dir kënnt d'Nix Package Manager Dokumentatioun op der Projet Websäit fannen: https://nixos.org/nix/.

Nix ass e reng funktionnelle Package Manager entworf fir zouverlässeg a reproduzéierbar Package Management. Et bitt en interessant Konzept vu Package Management, ganz ënnerscheet fir allgemeng benotzt Tools a Linux wéi APT, a vill anerer.

An dësem Artikel hu mir gewisen wéi Dir Nix am Multi User Modus installéiert an diskutéiert wéi Dir Package Management mat Nix maacht. Deelt Är Gedanken mat eis oder stellt all Froen iwwer de Kommentarformular hei ënnen. Endlech, an engem kommenden Artikel, wäerte mir méi Nix Package Management Kommandoen erklären. Bleift bis dohin verbonnen.