Nix
Pakethanteraren Nix är ett avancerat verktyg för avancerade användare som kan användas för att hämta praktiskt taget alla tänkbara fria programvarupaket från dess stora, gemenskapsdrivna arkiv.
Den kan installeras på KDE Linux för ett system med en användare. Nix lagrar programvara och beroenden under /nix/store och håller sökvägen uppdaterad automatiskt när verktyg läggs till eller tas bort.
Installation
Pakethanteraren Nix kan installeras för aktuell användare så här:
sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install) --no-daemon
Logga ut och tillbaka in igen, prova sedan:
nix-shell -p mc emacs-nox # du är nu inne i ett skal med mc och emacs
Observera att när skalet avslutas finns mc och emacs inte längre i skalets sökväg. Se nästa avsnitt för att göra sådana verktyg permanent tillgängliga.
Se https://nixos.org/download/#nix-install-linux för ytterligare information.
Permanenta paketinstallationer
Använd nix-env -iA eller nix-env --install --attr för att installera paket i /nix/store och gör dem tillgängliga i användares sökväg:
$ nix-env -f '' -iA mc ⋮ building '/nix/store/1q2sh2f178jx9fl37gd9ks85ysfvpwd9-user-environment.drv'...
Det skapar en ny "miljö" som innehåller alla ändringar av tillståndet som krävs för att göra paketet mc tillgängligt, och de kan rullas framåt eller bakåt. Det är den "verkliga" attraktionen med pakethanteringssystemet Nix, men det är utanför ramen för den här handledningen.
Verifiera att kommandot mc är nu tillgängligt för användaren:
$ which mc /home/username/.nix-profile/bin/mc
Ta bort paket med nix-env --uninstall eller nix-env -e:
$ nix-env -e mc uninstalling 'mc-4.8.33' building '/nix/store/rqbghiyds6f7a49qiwi9gmq7bnkgn9qi-user-environment.drv'...
Se avsnittet om [[#garbage-collection|skräpsamling]] nedan för hur man frigör utrymme som används av paket som inte längre används.
Se https://nix.dev/manual/nix/latest/command-ref/nix-env.html för ytterligare information.
Använda nix profile
Gränssnittet nix <command> är tekniskt sett fortfarande ansett experimentellt (mer sammanhang om den “experimentella” statusen för nix profile finns i den här RFC:n), men i praktiken används det flitigt och är mer ergonomisk. Tabulatorkomplettering och väljaren --help för de olika delkommandona i nix fungerar också direkt i en ny installation. Liksom nix-env, installerar nix profile paket i /nix/store och gör dem tillgängliga i sökvägen, så att de behålls mellan inloggningssessioner.
Här är ett trivialt exempel som använder nix profile för att installera kodsökverktyget 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
Så här listas installerade paket eller tas bort:
$ 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
Se avsnittet om [skräpsamling|(#garbage collection) nedan för hur man frigör utrymme som används av paket som inte längre används.
Se https://nix.dev/manual/nix/latest/command-ref/new-cli/nix3-profile.html för ytterligare information.
Installera om Nix
Om man har aktiverat den "experimentella" funktionen nix-profil måste den inaktiveras och filerna med tillståndet som är kopplade till användarprofilen tas bort innan det installeras om, annars får man ett felmeddelande som:
error: profile '/home/username/.local/state/nix/profiles/profile' is incompatible with 'nix-env'; please use 'nix profile' instead
Kommentera bort raden experimental-features i inställningsfilen för Nix, och ta sedan bort profilens katalog med tillståndet:
$ sed -i'' 's/^experimental-features = nix-command flakes$/#&/' ~/.config/nix/nix.conf $ rm -rf ~/.local/state/nix/profiles/profile
Nu kan installationsstegen upprepas.
Skräpsamling för att frigöra diskutrymme
Observera att nix-env -e och nix profile remove båda tar bort kommandon som tillhandahålls av ett paket från användarens nuvarande miljö, men programvaran förblir faktiskt installerad i /nix/store tills den skräpinsamlas.
Man kan tvinga skräpinsamling att frigöra diskutrymme med ett av följande kommandon:
nix-store --gc # vanlig skräpsamling nix-collect-garbage -d # ta bort paket som inte är möjliga att nå från lagringen
Tar bort Nix
För att ta bort pakethanteraren Nix, kör följande kommandon:
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
Se också
Artikel bidragen av Ernstki med licens CC-BY-4.0.