Heim > System-Tutorial > LINUX > Erste Schritte mit Nix Paket Manager: A Anfänger Guide 2024

Erste Schritte mit Nix Paket Manager: A Anfänger Guide 2024

Joseph Gordon-Levitt
Freigeben: 2025-03-19 09:06:21
Original
307 Leute haben es durchsucht

In diesem detaillierten Tutorial wird erläutert, wie Paketverwaltungsvorgänge wie Installieren, Entfernen, Aktualisieren und Upgrade Pakete mithilfe von Nix Package Manager unter Linux durchgeführt werden.

Wir werden diesen Leitfaden mit einer kurzen Einführung beginnen, gefolgt von häufig verwendeten NIX -Befehlen mit Beispielen.

Inhaltsverzeichnis

Eine kurze Einführung in den Nix -Paketmanager

Nix ist ein Paketmanager, der die Installation und Verwaltung von Software unter Linux- und UNIX -Systemen erleichtert und zuverlässig macht. Es löst häufige Probleme wie Softwarekonflikte und stellt sicher, dass jede Software -Installation vorhersehbar und sicher ist.

Mit NIX können Sie verschiedene Versionen eines Programms auf Ihrem Computer haben, ohne dass sie sich gegenseitig beeinträchtigen. Dies bedeutet, dass Sie Software aktualisieren, hinzufügen oder entfernen können, ohne sich Gedanken darüber zu machen, irgendetwas zu brechen.

Nix ist klug darüber, wie es mit Software umgeht. Es verfolgt alle Teile, die jedes Programm ausführen muss. Auf diese Weise durcheinander, wenn Sie ein Programm installieren, hat es kein anderes Programm durcheinander. Wenn mit einem neuen Software -Update etwas schief geht, können Sie einfach auf die Art und Weise zurückkehren, wie die Dinge zuvor waren.

Der Nix Package Manager ist nicht nur für einzelne Benutzer, sondern auch für Entwickler und Personen, die Server verwalten. Es hilft, alle auf derselben Seite zu halten, indem Sie sicherstellen, dass sie alle dieselbe Software -Setup verwenden. Dies reduziert überrascht, wenn sie die Software von einem Computer auf einen anderen bewegen.

Nix hat eine große Sammlung von Software zur Auswahl, und alles wird von einer Community von Benutzern gepflegt. Es ist eine solide Wahl für die Verwaltung von Software, unabhängig davon, ob Sie alleine oder mit einem Team arbeiten.

Weitere Informationen zu NIX finden Sie in unserem vorherigen Leitfaden:

  • NIX - Ein leistungsfähiger Paketmanager für Linux und Unix

Erste Schritte mit Nix Package Manager

Stellen Sie sicher, dass Sie Nix Paket Manager installiert haben. Wenn Sie NIX noch nicht installiert haben, lesen Sie bitte das unten angegebene NIX -Installationshandbuch.

  • So installieren Sie Nix Package Manager unter Linux

Sobald Nix Package Manager eingerichtet ist, können Sie damit beginnen, Ihre Anwendungen sofort zu installieren und zu verwalten.

Nix hat viele Befehle. Der Hauptbefehl für die Paketverwaltung ist Nix-Env . Dieser Befehl wird verwendet, um aufzulisten, zu installieren, zu aktualisieren, zu rollen, zu entfernen, Pakete abzufragen. Lassen Sie uns einige Befehle mit Beispielen sehen.

Tipp : Für den Fall, dass Sie sich nicht bereits bewusst sind, müssen Sie kein Root- oder Sudo -Benutzer sein, um alle Paketverwaltungsvorgänge mit NIX durchzuführen.

Arbeiten mit Nix -Kanälen

Nix -Kanäle spielen eine wichtige Rolle im Nix -Paketmanager -Ökosystem.

Das NIXPKGS -Repository enthält alle Pakete, Nixos -Module und Ausdrücke. Während es möglich ist, Pakete direkt aus dem Master -Zweig von NIXPKGS zu installieren, kann dieser Ansatz riskant sein, da Commits vor gründlichem Test in einen Master zusammengefasst werden.

Ein Kanal repräsentiert die neuesten "verifizierten" Git -Commits in NIXPKGs. Jeder Kanal hat seine eigene Definition dessen, was "verifiziert" bedeutet.

Wenn ein neues Git -Commit überprüft wird, wird der entsprechende Kanal aktualisiert. Kanalbenutzer profitieren sowohl von verifizierten Commits als auch von Binärpaketen aus dem binären Cache.

Um dies in einfachen Worten zu setzen, ist ein Nix -Kanal nur eine URL, die auf einen Ort verweist, der eine Reihe von Nix -Ausdrücken und ein Manifest enthält.

Arten von Kanälen

Es gibt mehrere Kanäle und sie können weitgehend in stabile und instabile Kanäle sowie große und kleine Kanäle eingeteilt werden:

Stabil/instabil :

  • Stabile Kanäle : Diese bieten konservative Updates für Fehlerbehebungen und Sicherheitslücken. Nach der ersten Veröffentlichung werden keine größeren Updates eingeführt. Alle sechs Monate werden neue stabile Kanäle veröffentlicht.
  • Instabile Kanäle : Entsprechend der Hauptentwicklungszweig (instabil) von NixPKGs liefern diese die neuesten getesteten Updates auf rollierender Basis.

Groß/klein :

  • Große Kanäle : Diese bieten Binärbuilds für die volle Breite von NIXPKGs.
  • Kleine Kanäle : Ähnlich wie große Kanäle, jedoch mit weniger Binärdateien. Sie aktualisieren schneller, erfordern jedoch mehr Gebäude aus der Quelle.

Standardkanal

Standardmäßig wird der NIXPKGS -Kanal automatisch zu Ihrer Liste der "abonnierten" Kanäle hinzugefügt, wenn Sie NIX installieren.

Ansicht abonnierte Kanäle

Die Liste der abonnierten Kanäle wird in ~/.nix-Kanäle-Datei gespeichert. Sie können es überprüfen, indem Sie seinen Inhalt betrachten.

 $ cat ~/.nix-Kanäle
https://nixos.org/channels/nixpkgs-unstable <strong>nixpkgs</strong>
Nach dem Login kopieren

Wie Sie sehen, hat NIX standardmäßig den NIXPKGS -Kanal hinzugefügt.

Kanäle hinzufügen

Sie können Ihrem System auch manuell einen Kanal hinzufügen, wie unten gezeigt.

 $ nix-channel --add https://nixos.org/channels/nixos-23.11
Nach dem Login kopieren

Die offiziellen Kanäle sind unter https://nixos.org/channels aufgeführt.

Kanäle aktualisieren

Nach dem Abonnieren (Hinzufügen) einen Kanal sollten Sie die Kanalliste aktualisieren, um die neuesten verfügbaren NIX -Ausdrücke mit dem Befehl zu erhalten:

 $ Nix-Kanal-Update
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Dieser Befehl aktualisiert alle Kanäle. Wenn Sie einen bestimmten Kanal aktualisieren möchten, sagen Sie Nixos-23.11, wäre der Befehl:

 $ Nix-Kanal-update nixos-23.11
Nach dem Login kopieren

Listenkanäle auflisten

Um die Namen und URLs aller abonnierten Kanäle für die Standardausgabe zu drucken, rennen Sie:

 $ Nix-Kanal-List
Nach dem Login kopieren

Beispielausgabe :

 <strong>nixpkgs</strong> https://nixos.org/channels/nixpkggs-instable
<strong>Nixos</strong> https://nixos.org/channels/nixos-23.11
Nach dem Login kopieren

Wie Sie bemerkt haben, habe ich jetzt zwei Kanäle hinzugefügt, nämlich NIXPKGS-unstable und Nixos-23.11 . Bitte beachten Sie, dass NIXPKGS und NIXOS nur die Aliase zu NIXPKGS-nicht und Nixos-23.11 sind.

Kanäle entfernen

Um einen abonnierten Kanal zu entfernen, zum Beispiel Nixos-23.11 , rennen Sie einfach:

 $ Nix-Kanal-Remove Nixos-23.11
Nach dem Login kopieren

Aktualisieren Sie nach dem Entfernen des Kanals die Kanalliste mit dem Befehl:

 $ Nix-Kanal-Update
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Suche/Abfragenpakete

Der Befehl nix-env-query enthält Informationen zu Paketen im NIX-Paket-Manager.

Zweck :

Die NIX-ENV-Query-Operation zeigt Informationen zu beiden:

  • Speichern Sie Pfade, die in der aktuellen Generation des aktiven Profils (-installiert) installiert sind.
  • Ableitungen zur Installation im aktiven Nix-Expression (-verfügbar).

Es druckt nur Informationen zu Ableitungen, deren symbolischer Name einem der angegebenen Namen entspricht.

Flaggen und Optionen :

Die gängigen Flaggen und Optionen, die verwendet werden können, sind: Befehl nix-env-query sind:

  • -Installiert : Zeigt Informationen zu installierten Speicherpfaden an (Standardverhalten).
  • -verfügbar oder -a: Zeigt Informationen zu den zur Installation zur Verfügung stehenden Ableitungen an.
  • -status oder -s: druckt den Status der Ableitung (installiert, auf dem System vorhanden, Ersatz verfügbar).
  • -ATTR-Pfad oder -P: Druckt den Attributpfad der Ableitung (verwendet für eindeutige Auswahl).
  • -NO-Name : Unterdrückt das Drucken des Ableitungsnamens.
  • -Kompare-Versionen oder -c: Vergleicht installierte Versionen mit verfügbaren Versionen.
  • --xml : Drucke führt zum XML-Format für die automatisierte Verarbeitung.
  • -JSON : Drucke führen zum JSON-Format für die automatisierte Verarbeitung.
  • -Nur-PRebuilt oder -b: zeigt nur Ableitungen mit registrierten Ersatzstücken (vorgefertigte Binärdateien).
  • -System : arbeitet im systemweiten Profil.
  • --DRV-Pfad , -Out-Pfad , -deschreibung , --meta : Zusätzliche Informationsflaggen.

Um die Liste der verfügbaren Pakete im abonnierten Kanal anzuzeigen, rennen Sie:

 $ nix-env-query-verfügbar
Nach dem Login kopieren

Oder in Kürze:

 $ nix -env -qa
Nach dem Login kopieren

Hier gibt die Option -Q den Abfragevorgang an und -a an, dass alle verfügbaren (dh installierbaren) Pakete angezeigt werden.

Beispielausgabe :

 0AD-0.0.26
0AD-DATA-0.0.26
0verkill-unstable-2011-01-13
0x-unstable-2022-07-11
0xProto-1.603
0XTOOLS-1.2.4
1oom-1.0
1Password-8.10.27
1Password-8.10.28-21.beta
1Password-Cli-2.26.1
2048-cli-unstable-2019-12-10
2048-cli-unstable-2019-12-10
2048-terminal-unstable-2022-06-13
20ly-1.5.0
2BWM-0.3
2fa-1.2.0
3270font-3.0.1
389-DS-Base-2.4.3
3dpong-0,5
3llo-1.3.1
3mu-1.1.0
3Proxy-0.9.4
4.-3.64.1
[...]
Nach dem Login kopieren

Erste Schritte mit Nix Paket Manager: A Anfänger Guide 2024

Wenn Sie ein bestimmtes Paket abfragen möchten, wäre der Befehl:

 $ nix -env -qa Firefox
Nach dem Login kopieren

Ausgabe:

 Firefox-115.9.1esr
Firefox-124.0.1
Firefox-124.0.1
Firefox-124.0.1
Firefox-125.0b3
Firefox-125.0b3
Nach dem Login kopieren

Sie können auch den folgenden Befehl verwenden, um nach einem bestimmten Paket zu suchen.

 $ NIX -ENV -QAP | Grep Python3-3
Nach dem Login kopieren

Beispielausgabe:

 [...]
nixpkgs.python312 python3-3.12.2
nixpkgs.python313 python3-3.13.0a5
nixpkgs.python313full Python3-3.13.0a5
nixpkgs.python39 python3-3.9.19
nixpkgs.python39full ​​Python3-3.9.19
Nach dem Login kopieren

Abfragen von Paketen mit regulären Ausdrücken

Sie können Pakete mit regulären Ausdrücken abfragen/listen. Hier sind einige Beispiele für reguläre Ausdrücke.

Chrom

Entspricht dem Paketnamenchrom und jeder Version.

Chrom-123.0.6312.86

Entspricht dem Paketnamen Chromium und Version 123.0.6312.86.

Beispiel:

 $ NIX-ENV -qa Chrom-123.0.6312.86
Nach dem Login kopieren

gtk \\

Entspricht dem Paketnamen GTK . Der Charakter muss mit einem Backslash entkommen, um zu verhindern, dass er als Quantifizierer interpretiert wird, und der Backslash muss wiederum mit einem weiteren Rückschlag entkommen, um sicherzustellen, dass die Hülle sie weitergibt.

. \*

Entspricht jedem Paketnamen. Dies ist die Standardeinstellung für die meisten Befehle.

'.*Reißverschluss.*'

Entspricht jedem Paketnamen, der den String -Reißverschluss enthält. Beachten Sie die Punkte: '*Zip*' funktioniert nicht, da in einem regulären Ausdruck das Zeichen*als Quantifizierer interpretiert wird.

'.*(Firefox | Chrom).*'

Entspricht jedem Paketamen, der die Zeichenfolgen Firefox oder Chrom enthält.

Listen Sie installierte Pakete auf

Um alle installierten Pakete aufzulisten, führen Sie einfach aus:

 $ nix -env -q
Nach dem Login kopieren

Beispielausgabe :

 NIX-2.21.1
Nach dem Login kopieren

Da es sich um ein frisches System handelt, zeigt unser System nur den Nix -Paket -Manager an.

Es ist auch möglich, den Status des verfügbaren Pakets anzuzeigen. Schauen Sie sich das folgende Beispiel an.

 $ nix -env -qas gcc
Nach dem Login kopieren

Beispielausgabe :

 IPS GCC-13.2.0
Nach dem Login kopieren

Hier gibt "i" an, dass das angegebene Paket installiert ist, "P" zeigt an, dass das Paket auf unserem System vorhanden ist, und "S" zeigt an, dass das Paket einen sogenannten Ersatz für das Paket gibt.

Wenn das GCC -Paket nicht installiert ist, sehen Sie:

 -PS GCC-13.2.0
Nach dem Login kopieren

Pakete installieren

In Nixos werden alle Pakete im NIX Store gespeichert, normalerweise im Verzeichnis /NIX /Store .

Um ein Paket zu installieren, führen Sie einfach aus:

 $ nix-env-installieren Sie GCC
Nach dem Login kopieren

Oder (in Kürze),

 $ nix -env -i gcc
Nach dem Login kopieren

Der obige Befehl installiert das neueste verfügbare GCC -Paket.

Beispielausgabe des obigen Befehls wäre:

 Installation von 'GCC-13.2.0'
Diese 3 Pfade werden abgerufen (1,58 MIB -Download, 7,24 MIB ausgepackt):
  /nix/store/3cfxjb2nkjkfiv0dq54kkfy5ysjnfs3K-GCC-13.2.0-Checksum
  /nix/store/4i3ml2pzzgjwas18w31zzhn9f41qyshy-gcc-13.2.0-info
  /nix/store/smq6f1jz9a5l6l5YJIS4S85MQ01XWW33-GCC-13.2.0-MAN
Kopieren von Pfad '/nix/store/4i3ml2pzzGJWas18w31zzhn9f41qyshy-gcc-13.2.-info' aus 'https: //cache.nixos.org' ...
Kopieren von Pfad
Kopieren von Pfad
Gebäude '/nix/store/xx629d9kbbdnnsyf4ihzhlmalfz6nm3g-User-Environment.drv' ...
Nach dem Login kopieren

Lassen Sie uns überprüfen, ob GCC installiert ist oder nicht verwendet wird:

 $ gcc -v
Nach dem Login kopieren

Beispielausgabe:

 Verwenden integrierter Spezifikationen.
Sammeln_gcc = gcc
Sammeln_lto_wrapper =<strong><mark> /nix/store/rqga421d43q40blrgmiw820p01a4nba-gcc-13.2.0</mark> /libexec/gcc/x86_64-ununnown-linux-nu/13.2.0/lto-wrapper
Ziel: x86_64-nicht-linux-gnu
Configured with: ../gcc-13.2.0/configure --prefix=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gcc-13.2.0 --with-gmp-include=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gmp-6.3.0-dev/include --with-gmp-lib=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gmp-6.3.0/lib --with-mpfr-include=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mpfr-4.2.1-dev/include --with-mpfr-lib=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-mpfr-4.2.1/lib --with-mpc=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-libmpc-1.3.1 --with-native-system-header-dir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-glibc-2.38-44-dev/include --with-build-sysroot=/ --with-gxx-include-dir=/nix/store/eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-gcc-13.2.0/include/c /13.2.0/ --Program-Prefix =-enable-lto--Disable-libstdcxx-pch--without-included-NettText-mit dem System-Zlib --Enable-static-enable-Spragen = C, c--Disable-multilib-Enable-Plugin--Disable-libcc1 -mit ISl =/nix/storeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee-0.20--Stafel-Stiefelstrap---build = x86_64-nicht-linux-gnu--host = x86_64-ubeNown-linux-gnu--target = x86_64-6_64-nown
Threadmodell: POSIX
Unterstützte LTO -Komprimierungsalgorithmen: ZLIB
<strong>GCC Version 13.2.0 (GCC)</strong></strong>
Nach dem Login kopieren

Wie Sie in der obigen Ausgabe bemerkt haben, befand sich der GCC in einem Unterabschluss mit dem Namen RQGA421D43Q40BLRGMIW820P01A4NBA-GCC-13.2.0 unter /nix /store .

Hier nennen wir das Verzeichnis RQGA421D43Q40BLRRGMIW820P01A4NBA-GCC-13.2.0 als eindeutige Kennung. Dieses Unterverzeichnis enthält alle erforderlichen Abhängigkeiten und Bibliotheken des GCC -Pakets.

Wenn Sie eine andere Version von GCC installieren, erstellt NIX ein neues Subdirektorium, z . Auf diese Weise werden diese beiden Versionen von GCC nicht miteinander in Konflikt stehen.

Testen Sie Pakete ohne Installation mit NIX

Eine weitere bemerkenswerte Funktion von Nix Package Manager ist, dass Sie ein Paket testen können, ohne es auf Ihrem System zu installieren. Weitere Informationen finden Sie in der folgenden Anleitung, wie Sie ein Paket testen, ohne es zu installieren.

  • So testen Sie ein Paket, ohne es unter Linux zu installieren

Entwickeln Sie Entwicklungsumgebungen mit Nix-Shell

Mit Nix-Shell ermöglicht es Ihnen, maßgeschneiderte Entwicklungsumgebungen für jedes Projekt zu erstellen, das mit allen erforderlichen Tools und Bibliotheken komplett ist. Es ist Teil von NIX Paket Manager.

Um zu erfahren, wie Sie reproduzierbare und isolierte Entwicklungsumgebungen erstellen, finden Sie den folgenden Leitfaden:

  • So erstellen Sie Entwicklungsumgebungen mit Nix-Shell unter Linux

Upgrade von Paketen

Um ein Paket auf die nächste verfügbare Version zu aktualisieren, führen Sie einfach aus:

 $ NIX-ENV-Upgrade vim
Nach dem Login kopieren

Oder nur:

 $ nix -env -u vim
Nach dem Login kopieren

Der obige Befehl wird das VIM -Paket nur dann aktualisieren, wenn es eine "neuere" Version gibt.

Außerdem können Sie alle installierten Pakete gleichzeitig aktualisieren, indem Sie den folgenden Befehl ausführen:

 $ NIX -ENV -U
Nach dem Login kopieren

Aktualisieren Sie Nixos

Bitte beachten Sie, dass die folgenden Anweisungen speziell für Nixos -Benutzer gelten.

Aktualisieren Sie den Nixos -Kanal

Aktualisieren Sie zunächst Ihren Kanal, um sicherzustellen, dass Sie über die neuesten Paketdefinitionen verfügen. Sie können dies mit dem folgenden Befehl tun:

 $ Nix-Kanal-Update
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Dieser Befehl aktualisiert alle Kanäle, die Sie abonniert haben, einschließlich des Nixos -Kanals, der die Paket- und Konfigurationsdefinitionen des Systems enthält.

Anwenden der Updates

Sobald der Kanal aktualisiert ist, wenden Sie die Updates auf Ihr System an. Dies erfolgt durch den Wiederaufbau Ihrer Systemkonfiguration mithilfe der neuesten Pakete aus dem Kanal. Um dies zu tun, rennen Sie:

 $ sudo nixos-rebuild switch
Nach dem Login kopieren

Der Befehl nixos-rebuild switch baut die Konfiguration Ihres Systems basierend auf Ihrer Konfigurationsdatei (/etc/nixos/configuration.nix) auf, wobei die neuesten Pakete aus dem Kanal verwendet werden. Nach dem Wiederaufbau wechselt es sofort zur neuen Konfiguration.

Zusätzliche Tipps:

  • Weitere Aktualisierungen finden Sie : Es gibt keinen direkten Nixos -Befehl, um verfügbare Updates wie in einigen anderen Linux -Verteilungen zu überprüfen. Da Updates jedoch auf dem Kanalinhalt basieren, stellt das Ausführen von Sudo Nix-Kanal-update sicher, dass Sie die neuesten Definitionen haben.
  • Upgrade bestimmte Pakete aktualisieren : Wenn Sie bestimmte Pakete aktualisieren möchten, die von NIX-ENV verwaltet werden, können Sie NIX-ENV -U oder nix-Env -u '*' verwenden, um alle benutzerinstallierten Pakete zu aktualisieren.

Denken Sie daran, dass Nixos-Updates dank der deklarativen Konfiguration und der Reproduzierbarkeit von NIX im Allgemeinen reibungslos und gut getestet sind. Stellen Sie immer sicher, dass Ihre Systemkonfigurationsdateien für ein nahtloses Update-Erlebnis auf dem neuesten Stand und der Version kontrolliert sind.

Rollback -Pakete

Dies ist eine fantastische Funktion des NIX -Paketmanagers. Bevor wir sehen, wie man Pakete rollbiert, lassen Sie uns verstehen, welche Profile, Benutzerumgebungen und Generationen sind.

In NIX sind Profile, Benutzerumgebungen und Generationen verwandte Konzepte, mit denen Pakete und Konfigurationen sicher und reproduzierbar verwaltet werden können.

Profile

Ein Profil ist eine Sammlung von Paketen und Konfigurationen für einen bestimmten Zweck oder Benutzer. Profile ermöglichen es mehreren Benutzern, ihre individuellen Setups zu haben, ohne sich gegenseitig zu beeinflussen. Sie können zwischen verschiedenen Profilen wechseln und verschiedene Umgebungen oder Anwendungssätze effektiv verwalten.

Es gibt zwei Haupttypen von Profilen:

  • Benutzerprofile : Jedes Benutzerkonto verfügt über ein eigenes Profil, das sich unter/nix/var/nix/profiles/pro-user/$ user befindet. Dieses Profil enthält die Pakete, die der Benutzer für den persönlichen Gebrauch installiert hat.
  • Systemprofil : Das systemweite Profil befindet sich AT/NIX/VAR/NIX/Profiles/System. Es enthält weltweit auf dem System verfügbare Pakete, die normalerweise vom Systemadministrator verwaltet werden.

Benutzerumgebungen

Eine Benutzerumgebung ist eine bestimmte Reihe von Paketen und ihre Abhängigkeiten, die im NIX Store installiert sind (z. B./Nix/Store/3AW2PDYX2JFC.-UER-ENV).

Es wird erstellt, wenn Sie Pakete mit Nix-Env installieren, aktualisieren oder entfernen. Benutzerumgebungen sind im Wesentlichen selbst Pakete, die im NIX Store mit einem eindeutigen kryptografischen Hash als Verzeichnisnamen gespeichert sind.

Benutzerumgebungen sind über Symlinks mit Benutzerprofilen verknüpft, sodass verschiedene Benutzer unterschiedliche Konfigurationen ohne Interferenz haben können.

Generationen

Eine Generation ist eine Momentaufnahme Ihrer Benutzerumgebung (der Satz von Paketen, die Sie installiert haben) zu einem bestimmten Zeitpunkt. Wenn Sie Pakete mit Nix-Env installieren, aktualisieren oder entfernen, wird eine neue Generation erstellt.

Jede Generation wird im Verzeichnis/Nix/Store mit einem eindeutigen kryptografischen Hash-Namen (z. B. /nix/store/3AW2PDYX2JFC- Es gibt Symlinks in/nix/var/nix/profiles (z. B. Standard-2-Link, Standard-3-Link), die auf diese Generationsverzeichnisse hinweisen.

Der Hauptvorteil von Generationen besteht darin, dass Sie mit Befehlen wie NIX-ENV--Rollback und Nix-ENV-Switch-Generation-Befehlen problemlos zurückrollen oder zwischen verschiedenen Paketkonfigurationen wechseln können.

Um dies in einfache Worte zu bringen:

  • Profile sind Sammlungen von Paketen und Konfigurationen für Benutzer oder das System.
  • Benutzerumgebungen sind spezifische Sätze installierter Pakete, die im NIX -Store gespeichert sind.
  • Generationen sind Schnappschüsse von Benutzerumgebungen, die erstellt wurden, wenn Pakete installiert, aktualisiert oder entfernt werden, sodass einfache Rollbacks und Switches zwischen den Konfigurationen ermöglicht werden.

Dieser Ansatz fördert die Systemzuverlässigkeit, die Reproduzierbarkeit und die Fähigkeit, mit verschiedenen Paketkonfigurationen sicher zu experimentieren, ohne das aktuelle Setup zu riskieren.

So listen Sie Generationen auf

Um die Liste der verfügbaren Generationen anzuzeigen, werden:

 $ nix-env-List-Generationen
Nach dem Login kopieren

Dieser Befehl listet alle verfügbaren Generationen für Ihr aktuelles Profil auf. Die Ausgabe zeigt die Erzeugungszahlen, ihre Pfade im NIX -Speicher und zeigt an, welche Generation derzeit aktiv ist.

Beispielausgabe :

 1 2024-04-01 15:06:49   
   2 2024-04-01 15:17:14   
   3 2024-04-01 15:56:46 (aktuell)
Nach dem Login kopieren

Rollback zur vorherigen Generation

Sie haben ein Paket installiert, aber es ist nicht nützlich oder funktioniert nicht ordnungsgemäß. Sie benötigen die untere Version desselben Pakets. Was werden Sie tun? Einfach. Rollback zur vorherigen Arbeitsversion mit dem Befehl:

 $ nix-env-Rollback
Nach dem Login kopieren

Dieser Befehl bringt Ihre aktuelle Benutzerumgebung in die vorherige Generation zurück. Wenn Sie beispielsweise derzeit in der Generation 3 sind und NIX-ENV-Rollback ausführen, wechselt es auf Generation 2.

Generationen wechseln

Wir können zwischen verschiedenen Generationen mit dem Befehl wechseln:

 $ NIX-ENV-Switch-Generations <no></no>
Nach dem Login kopieren

Mit diesem Befehl können Sie zu einer bestimmten Generation wechseln. Zum Beispiel wechselt Nix-Env-Switch-Generation 2 Ihre Benutzerumgebung auf Generation 2, auch wenn dies nicht die unmittelbare vorherige Generation ist.

Zusammenfassend bieten die Generationen eine Möglichkeit zum Verwalten und Rollback -Paketkonfigurationen. Die-List-Generationen zeigen Ihnen, welche Generationen verfügbar sind, Nix-Env-Rollback-Befehl ist eine bequeme Möglichkeit, Ihre letzte Änderung rückgängig zu machen, und Sie können eine bestimmte Generation auswählen.

Dieser Generationsmanagementansatz fördert die Systemzuverlässigkeit, indem Sie es Ihnen ermöglichen, schlechte Änderungen leicht zurückzuversetzen oder neue Konfigurationen zu testen, ohne sich auf Ihr aktuelles Setup auszuregen.

Pakete deinstallieren

Um das Paket zu deinstalla, rennen Sie:

 $ NIX -ENV -E GCC
Nach dem Login kopieren

Der obige Befehl deinstalliert das Paket mit dem Namen GCC aus Ihrem System.

Sie können mehrere Pakete wie unten gezeigt entfernen.

 $ NIX -ENV -E GCC VIM
Nach dem Login kopieren

Beispielausgabe:

 Deinstallieren von 'vim-9.1.0148'
Deinstallieren 'GCC-13.2.0'
Gebäudepfad (s) '/nix/store/mxpikbq3l08379h8ik8mrj3fcw6mH6y4-User-Umwelt'
Erstellt 6 Symlinks in der Benutzerumgebung
Nach dem Login kopieren

Entfernen von unbenutzten Paketen (Müllsammlung)

Wenn Sie in NIX (-U) -Programme (-U) oder entfernen (-E) mit NIX-ENV aktualisieren, löscht das System die alten Versionen nicht tatsächlich aus dem NIX-Store (IE/NIX/Store/Verzeichnis). Stattdessen ist es ein neues Setup für Ihr Profil ohne Links zu den entfernten Programmen. Mit anderen Worten, nur die Symlinks werden aus Ihrem Profil entfernt.

Da wir jedoch nicht weiterhin neue Programme hinzufügen können, ohne keinen Speicherplatz mehr zu haben, kann Nixos unbenutzte Programme namens Garbage Collection aufräumen. Der Müllsammler entfernen Programme, die keine Profile oder ihre Versionen (Generationen) mehr brauchen.

Wenn jedoch eine alte Version Ihres Setups noch ein Programm benötigt, wird es nicht entfernt. Diese Funktion ist entscheidend dafür, dass Sie bei Bedarf zu früheren Setups zurückkehren können.

Um dem Müllsammler zu helfen, seine Arbeit zu erledigen, ist es eine gute Idee, alte Versionen zu beseitigen, die Sie nicht mehr verwenden. So können Sie es tun:

Löschen Sie alle alten Versionen mit Ausnahme des aktuellen in Ihrem Profil:

 $ nix-env-Delete-Generationen alt
Nach dem Login kopieren

Entfernen Sie bestimmte Versionen, die Sie nicht mehr benötigen, z. B. Versionen 10, 11 und 14:

 $ nix-env-Delete-Generationen 10 11 14
Nach dem Login kopieren

Versionen löschen, die älter als 30 Tage sind:

 $ nix-env-Delete-Generationen 30d
Nach dem Login kopieren

Führen Sie nach der Reinigung der alten Versionen den Müllsammler aus, um ungenutzte Programme zu entfernen:

 $ nix store --gc
Nach dem Login kopieren

Sie können überprüfen, welche Dateien der Garbage Collector löscht, bevor Sie ihn tatsächlich ausführen:

 $ NIX-Store --gc-Print-Dead
Nach dem Login kopieren

Und um zu sehen, welche Dateien bleiben werden:

 $ Nix-Store --gc-Print-Live
Nach dem Login kopieren

Es gibt auch ein praktisches Werkzeug zum Reinigen, Nix-Collect-Müll, mit dem alle alten Versionen aus jedem Profil gleichzeitig entfernt werden können. Verwenden Sie es mit der Option -d:

 $ nix-collect-müll -d
Nach dem Login kopieren

Dieser Befehl ist eine einfache Möglichkeit, Ihr System aufzuräumen, indem Sie alte Versionen loswerden und dann den Müllsammler ausführen, um unnötige Programme zu beseitigen.

Beispielausgabe:

 Müllsammlerwurzeln finden ...
Müll löschen ...
Deleting '/nix/store/s4jr4dc9gghldr3xza23rw0gm9KP21KL-Nix-Prefetch-scripts.drv'
Löschen
Löschen

[...]

Löschen
Löschen '/Nix/Store/Trash' '
Löschen ungenutzter Links ...
HINWEIS: Derzeit rettet hart Verknüpfung -0,00 MIB
1447 Speicherpfade gelöscht, 12,65 MIB Befreit
Nach dem Login kopieren

Dadurch werden tatsächlich deinstallierte Pakete entfernt.

Sie sollten diesen Befehl regelmäßig ausführen, um ungenutzte Pakete von Ihrem System aus zu entfernen.

Nix -Befehle Cheatsheet

Hier ist ein ordentliches Cheatsheet für die Befehle von Nix Paket Manager. Drucken Sie es aus und behalten Sie es in der Nähe Ihres Schreibtisches, um eine einfache Referenz zu erhalten.

Aktion Befehl Beispiel
Paket installieren Nix-Env -i Nix -Env -i Firefox
Paket deinstallieren Nix-Env -e Nix -Env -e Firefox
Suche nach Paket NIX -ENV -qap Nix -Env -Qap Python
Paket aktualisieren NIX-ENV -U Nix -Env -u Firefox
Listen Sie installierte Pakete auf NIX -ENV -q NIX -ENV -q
Zurückrollenwechsel Nix-Env-Rollback Nix-Env-Rollback
Müllsammlung Nix-Collect-Müll -d Nix-Collect-Müll -d
Nix -Befehle Cheatsheet

Dieses Cheatsheet deckt die grundlegenden Befehle ab, mit denen Sie Pakete mit NIX verwalten können, und bietet eine einfache Anleitung zum Einstieg und die Wartung Ihres Systems.

Häufig gestellte Fragen

Hier sind am häufigsten gestellte Fragen (FAQ) zu NIX Paket Manager.

F: Was ist Nix?

A: NIX ist ein leistungsstarker Paketmanager für Linux- und UNIX -Systeme, der sich auf Reproduzierbarkeit, Zuverlässigkeit und Portabilität konzentriert. Es ermöglicht Benutzern die Installation, Verwaltung und Umstellung zwischen verschiedenen Softwareversionen und ihren Abhängigkeiten.

F: Wie installiere ich ein Paket mit NIX?

A: Um ein Paket zu installieren, verwenden Sie den Befehl nix -env -i, gefolgt vom Paketnamen. Zum Beispiel installiert Nix -Env -i Firefox den Firefox -Webbrowser.

F: Wie kann ich ein Paket deinstallieren?

A: Verwenden Sie zum Deinstallieren eines Pakets den Befehl nix -env -e, gefolgt vom Paketnamen. Zum Beispiel deinstalliert Nix -Env -e Thunderbird den Thunderbird -E -Mail -Client.

F: Wie suche ich nach verfügbaren Paketen?

A: Um nach einem Paket zu suchen, verwenden Sie NIX -Env -Qap . Um beispielsweise Pakete zu Python zu finden, können Sie Nix -Env -Qap Python verwenden.

F: Kann ich ein bestimmtes Paket aktualisieren?

A: Ja, um ein bestimmtes Paket zu aktualisieren, führen Sie Nix-Env -u aus. Um alle installierten Pakete zu aktualisieren, verwenden Sie einfach Nix -Env -u.

F: Wie sehe ich welche Pakete ich installiert habe?

A: Verwenden Sie zum Auflisten aller installierten Pakete den Befehl Nix -Env -q.

F: Wie kann ich alle verfügbaren Pakete aus einem Kanal auflisten?

A: Führen Sie Nix -Env -QA aus, um alle verfügbaren Pakete aus einem Kanal auszulisten.

F: Wie kehre ich zu einem früheren Zustand zurück oder "Zurückrollen" Änderungen?

A: Nix verfolgt Änderungen in "Generationen". Um zur vorherigen Generation zurückzukehren, verwenden Sie NIX-ENV-Rollback. Sie können verfügbare Generationen mit Nix-Env-List-Generationen auflisten.

F: Wie halte ich mein Nix -System sauber?

A: Verwenden Sie Nix-Collect-Müll-D, um nicht verwendete Pakete zu entfernen und Platz zu freien. Dieser Befehl reinigt Pakete, auf die kein Profil verwiesen wird.

Abschluss

Der Nix Package Manager bietet eine robuste und flexible Möglichkeit, Softwarepakete unter Linux- und UNIX -Systemen zu verwalten.

Sein Ansatz zur Handhabungspakete stellt sicher, dass Sie verschiedene Versionen von Software ohne Konflikte oder Abhängigkeiten installieren, aktualisieren und wechseln können.

Obwohl Nix möglicherweise eine gewisse Lernkurve hat, insbesondere für diejenigen, die mit seinen Konzepten neu sind, sind die Vorteile eines präzisen, reproduzierbaren Paketmanagements erheblich.

Egal, ob Sie Entwickler, Systemadministrator oder nur ein neugieriger Benutzer sind, sich die Zeit zu nehmen, Nix zu lernen, kann Ihre Kontrolle über Softwareumgebungen erheblich verbessern und Ihren Workflow optimieren.

Das ist alles vorerst. Ich hoffe, Sie haben eine klare Vorstellung von der grundlegenden Nutzung des NIX -Paketmanagers . Was wir hier behandelt haben, sollte ausreichen, um Sie mit Nix zu beginnen.

Natürlich gibt es so viele Befehle. Um weitere NIX -Befehle zu erfahren, empfehle ich Ihnen dringend, das unten angegebene NIX -offizielle Handbuch zu verweisen.

Ressource:

  • NIX -Handbuch

Das obige ist der detaillierte Inhalt vonErste Schritte mit Nix Paket Manager: A Anfänger Guide 2024. 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