Nix
Správce balíčků Nix je pokročilý nástroj pro zkušené uživatele, pomocí kterého lze získat prakticky jakýkoli balíček svobodného softwaru, jaký si dokážete představit, z jeho rozsáhlého repozitáře spravovaného komunitou.
Lze jej nainstalovat na systém KDE Linux v režimu pro jednoho uživatele. Nix ukládá software a závislosti do adresáře /nix/store a automaticky aktualizuje vaši vyhledávací cestu při přidávání či odstraňování nástrojů.
Instalace
Správce balíčků Nix lze pro aktuálního uživatele nainstalovat takto:
sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install) --no-daemon
Odhlaste se a znovu se přihlaste, poté proveďte test:
nix-shell -p mc emacs-nox # you are now inside a shell with mc and emacs
Upozorňujeme, že po ukončení tohoto shellu již mc a emacs nebudou součástí vyhledávací cesty vašeho shellu. Informace o tom, jak zajistit trvalou dostupnost těchto nástrojů, najdete v následující části.
Další podrobnosti najdete na adrese https://nixos.org/download/#nix-install-linux.
Trvalá instalace balíčků
K instalaci balíčků do adresáře /nix/store a k jejich zpřístupnění ve vyhledávací cestě vašeho uživatele použijte příkaz nix-env -iA nebo nix-env --install --attr:
$ nix-env -f '' -iA mc ⋮ building '/nix/store/1q2sh2f178jx9fl37gd9ks85ysfvpwd9-user-environment.drv'...
Tím se vytvoří nové "prostředí", které obsahuje všechny změny stavu nezbytné k tomu, aby byl balíček mc k dispozici, a tyto změny lze provádět dopředu i dozadu. Právě v tom spočívá "skutečná" přitažlivost systému správy balíčků Nix, což však přesahuje rámec tohoto průvodce.
Ověřte, zda je pro vašeho uživatele nyní k dispozici příkaz mc:
$ which mc /home/username/.nix-profile/bin/mc
Balíčky odinstalujte pomocí příkazu nix-env --uninstall nebo nix-env -e:
$ nix-env -e mc uninstalling 'mc-4.8.33' building '/nix/store/rqbghiyds6f7a49qiwi9gmq7bnkgn9qi-user-environment.drv'...
V níže uvedené části o [[#garbage-collection|vyčišťování paměti]] se dozvíte, jak uvolnit místo zabrané balíčky, které již nepoužíváte.
Další podrobnosti najdete na adrese https://nix.dev/manual/nix/latest/command-ref/nix-env.html.
Použití nix profile
Rozhraní nix <command> je z technického hlediska stále považováno za experimentální (více informací o "experimentálním" stavu nix profile najdete v tomto RFC), ale v praxi je široce používáno a je ergonomičtější. Automatické doplňování pomocí klávesy Tab a volby --help pro různé nix podpříkazy budou fungovat ihned po instalaci i na čerstvě nainstalovaném systému. Stejně jako nix-env nainstaluje i nix profile balíčky do /nix/store a zpřístupní je ve vaší vyhledávací cestě, přičemž tyto balíčky zůstanou zachovány i mezi jednotlivými sezeními.
Zde je jednoduchý příklad, jak pomocí nix profile nainstalovat nástroj pro vyhledávání v kódu ag:
$ mkdir -p ~/.config/nix $ cat >> ~/.config/nix/nix.conf <<EOF experimental-features = nix-command flakes EOF $ nix search nixpkgs silver searcher ⋮ * legacyPackages.x86_64-linux.silver-searcher (2.2.0) Code-searching tool similar to ack, but faster $ nix profile add nixpkgs#silver-searcher $ which ag /home/username/.nix-profile/bin/ag
Chcete-li zobrazit seznam nainstalovaných balíčků nebo je odinstalovat:
$ nix profile list ⋮ Name: silver-searcher Flake attribute: legacyPackages.x86_64-linux.silver-searcher Original flake URL: flake:nixpkgs Locked flake URL: github:NixOS/nixpkgs/f08e6b11a5ed43637a8ac444dd44118bc7d273b9?narHash=sha256-7vUo0qWCl/rip%2Bfzr6lcMlz9I0tN/8m7d5Bla/rS2kk%3D Store paths: /nix/store/l120si3zsshmf3jr7dkn5dvcj0n586xb-silver-searcher-2.2.0 $ nix profile remove silver-searcher
V níže uvedené části o vyčištění paměti najdete informace o tom, jak uvolnit místo zabrané balíčky, které již nepoužíváte.
Další podrobnosti najdete na adrese https://nix.dev/manual/nix/latest/command-ref/new-cli/nix3-profile.html.
Přeinstalování Nixu
Pokud jste povolili "experimentální" funkci nix profile, budete ji muset před přeinstalací deaktivovat a smazat stavové soubory spojené s profilem vašeho uživatele, jinak se vám zobrazí následující chybová zpráva:
error: profile '/home/username/.local/state/nix/profiles/profile' is incompatible with 'nix-env'; please use 'nix profile' instead
V konfiguračním souboru Nixu zakomentujte řádek experimental-features a poté smažte stavový adresář profilu:
$ sed -i'' 's/^experimental-features = nix-command flakes$/#&/' ~/.config/nix/nix.conf $ rm -rf ~/.local/state/nix/profiles/profile
Nyní můžete zopakovat kroky instalace.
Vyčištění paměti za účelem uvolnění místa na disku
Všimněte si, že oba příkazy nix-env -e a nix profile remove odstraní příkazy poskytované balíčkem z aktuálního uživatelského prostředí, avšak samotný software zůstává nainstalován v adresáři /nix/store až do doby, než bude odstraněn v rámci úklidu paměti.
Tuto automatickou likvidaci odpadu můžete spustit ručně, abyste uvolnili místo na disku, a to pomocí jednoho z následujících příkazů:
nix-store --gc # rutinní odstraňování odpadu nix-collect-garbage -d # odstranění "nedostupných" balíčků z obchodu
Odstranění Nixu
Chcete-li odinstalovat správce balíčků Nix, spusťte následující příkazy:
run0 systemctl disable --now nix-daemon.service nix-daemon.socket run0 rm -rf /nix /etc/nix /etc/profile.d/nix.sh /etc/tmpfiles.d/nix-daemon.conf /nix /root/.nix-channels /root/.nix-defexpr /root/.nix-profile /root/.cache/nix ~/.nix-channels ~/.nix-defexpr ~/.nix-profile ~/.cache/nix for i in $(seq 1 32); do run0 userdel nixbld$i; done run0 groupdel nixbld
Více informací
Tento přípěvek napsal Ernstki pod licencí CC-BY-4.0.