[LINUX] Verwendung von Nix Package Manager

Nix ist gut

Ich verwende Windows (vom Unternehmen bereitgestellt) für die Arbeit, MacBook Pro (von einem Freund bereitgestellt) für den täglichen Gebrauch und Manjaro Linux (von einem leitenden Unternehmen bereitgestellt) zum Experimentieren, die alle Paketmanager sind. Ich benutze nix. (Windows verwendet jedoch Nix in Ubuntu unter WSL2.)

Der Grund, warum ich Nix anstelle von apt und homebrew leise benutze, ist

  1. Einfach zu reproduzierende Umgebung, da die Umgebung deklarativ verwaltet werden kann
  2. Sehr anpassbar
  3. Docker ist nicht erforderlich
  4. Bei der Deinstallation bleibt kein Staub an unerwarteten Stellen zurück
  5. Die Umgebung kann jederzeit wiederhergestellt werden

Ich freue mich darüber.

Ich möchte, dass Nix immer beliebter wird, daher zeige ich Ihnen, wie Sie Nix Package Manager installieren und grundlegende Befehle verwenden.

Nix installieren

Linux

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

Eine Einschränkung ist, dass es nicht mit einer Fischschale betrieben werden kann.

macOS

$ sh <(curl -L https://nixos.org/nix/install) --darwin-use-unencrypted-nix-store-volume

Ergänzung zu .bashrc

In ~ / .bashrc, um die notwendigen Umgebungsvariablen für die Verwendung von nix unter Linux und Mac festzulegen

if [ -e $HOME/.nix-profile/etc/profile.d/nix.sh ]; then
    . $HOME/.nix-profile/etc/profile.d/nix.sh;
fi

Fügen wir hinzu.

Kanalregistrierung

Zunächst müssen Sie den Nix-Paketkanal abonnieren, um ihn verwenden zu können. Verwenden Sie den Befehl nix-channel, um den Kanal zu bedienen.

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

nix-channel --update ist wie sudo apt update.

Paketverwaltung

Der Hauptbefehl für die Paketverwaltung lautet "nix-env". Sie können nix-env verwenden, um Pakete zu installieren, zu aktualisieren, zu entfernen, nach Paketen zu suchen und vieles mehr.

Suche

Sie können alle installierbaren Pakete mit nix-env -qa durchsuchen. Gleiches gilt für nix-env --query --available.

$ nix-env -qa
aterm-2.2
bash-3.0
binutils-2.15
bison-1.875d
blackdown-1.4.2
bzip2-1.0.2
...

Sie können nach einem bestimmten Paket suchen, indem Sie den Namen des Pakets nach "-qa" setzen.

$ nix-env -qa firefox
firefox-68.11.0esr
firefox-78.1.0esr
firefox-79.0

Sie können auch reguläre Ausdrücke für die Suche verwenden.

$ nix-env -qa 'firefox-.*'

Paketinstallation

Sie können das Paket mit nix-env -i oder nix-env --install installieren.

Du brauchst übrigens kein "sudo". Installierte Pakete werden vom Benutzer installiert, nicht vom System. Es gibt (wahrscheinlich) keine Auswirkungen auf das gesamte System.

$ nix-env -i subversion

Sie können alle installierten Pakete mit nix-env -q überprüfen.

$ nix-env -q
nix-2.3.7
subversion-1.12.2

Aktualisierung

Sie können Ihre Umgebung mit nix-env -u oder nix-env --upgrade aktualisieren.

Wenn Sie nur ein bestimmtes Paket aktualisieren,

$ nix-env -u subversion

Beim Upgrade aller installierten Pakete

$ nix-env -u

Deinstallieren

Sie können das Paket mit nix-env -e oder nix-env --erase deinstallieren.

nix-env -e subversion
uninstalling 'subversion-1.12.2'

rollback

Nix erstellt jedes Mal eine Generation für Ihre Umgebung, wenn Sie ein Paket hinzufügen oder entfernen. Und Sie können jederzeit zu diesen Generationen zurückkehren.

Dies ist beispielsweise nützlich, wenn Sie ein Paket installiert haben und einen Fehler hatten und es vor der Installation wiederherstellen möchten, die gut funktioniert hat.

Überprüfen Sie die Generationen nix-env --list-generations

$ nix-env --list-generations
   1   2020-08-03 23:36:12   
   2   2020-08-06 19:15:43   
   3   2020-08-06 19:55:13   
   4   2020-08-09 18:33:59   
   5   2020-08-09 18:34:46   (current)

(current) ist die aktuelle Umgebung.

Verwenden Sie nix-env --rollback, um zur vorherigen Umgebung zurückzukehren.

$ nix-env --rollback
switching from generation 5 to 4

$ nix-env --list-generations
   1   2020-08-03 23:36:12   
   2   2020-08-06 19:15:43   
   3   2020-08-06 19:55:13   
   4   2020-08-09 18:33:59   (current)
   5   2020-08-09 18:34:46   

Um zu einer bestimmten Generation zu wechseln, verwenden Sie "nix-env --switch-generation".

$ nix-env --switch-generation 2
switching from generation 4 to 2

Recommended Posts

Verwendung von Nix Package Manager
Verwendung des Python-Kontextmanagers
Verwendung von xml.etree.ElementTree
Wie benutzt man Python-Shell
Hinweise zur Verwendung von tf.data
Verwendung von virtualenv
Wie benutzt man Seaboan?
Verwendung von Image-Match
Verwendung von Pandas 2
Verwendung von Virtualenv
Verwendung von pytest_report_header
Wie man Bio.Phylo benutzt
Verwendung von SymPy
Wie man x-means benutzt
Verwendung von WikiExtractor.py
Verwendung von IPython
Verwendung von virtualenv
Wie benutzt man Matplotlib?
Verwendung von iptables
Wie benutzt man numpy?
Verwendung von TokyoTechFes2015
Wie benutzt man venv
Verwendung des Wörterbuchs {}
Wie benutzt man Pyenv?
Verwendung der Liste []
Wie man Python-Kabusapi benutzt
Verwendung von OptParse
Verwendung von return
Wie man Imutils benutzt
Verwendung des Golang-Flaggenpakets (Mindestkenntnisse)
Verwendung von Qt Designer
Verwendung der Suche sortiert
[gensim] Verwendung von Doc2Vec
python3: Verwendung der Flasche (2)
Verstehen Sie, wie man Django-Filter verwendet
[Python] Verwendung von Liste 1
Verwendung von FastAPI ③ OpenAPI
Verwendung von IPython Notebook
Wie man Pandas Rolling benutzt
[Hinweis] Verwendung von virtualenv
Python: Wie man pydub benutzt
[Python] Verwendung von checkio
[Go] Verwendung von "... (3 Perioden)"
So bedienen Sie GeoIp2 von Django
[Python] Verwendung von input ()
Wie benutzt man den Dekorateur?
[Einführung] Verwendung von open3d
Wie benutzt man Python Lambda?
So verwenden Sie Jupyter Notebook
[Python] Verwendung von virtualenv
python3: Verwendung der Flasche (3)
python3: Wie man eine Flasche benutzt
So verwenden Sie Google Colaboratory
Verwendung von Python-Bytes
Verwendung von cron (persönliches Memo)
Python: So verwenden Sie Async mit
Verwendung der Zip-Funktion