Nix
De Nix-pakketbeheerder is een geavanceerd hulpmiddel voor gevorderde gebruikers waarmee vrijwel elk denkbaar gratis softwarepakket kan worden verkregen uit de grote, door de gemeenschap onderhouden opslagruimte.
Het kan worden geïnstalleerd op KDE Linux voor een systeem met één gebruiker. Nix slaat software en afhankelijkheden op onder /nix/store en houdt uw zoekpad automatisch bijgewerkt wanneer tools worden toegevoegd of verwijderd.
Installatie
De Nix-pakketbeheerder kan als volgt voor de huidige gebruiker worden geïnstalleerd:
sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install) --no-daemon
Meld u af en weer aan en test het vervolgens:
nix-shell -p mc emacs-nox # u bent nu in een shell met mc en emacs
Houd er rekening mee dat wanneer u deze shell afsluit, mc en emacs niet langer in het zoekpad van uw shell staan. Zie de volgende sectie om deze hulpmiddelen permanent beschikbaar te maken.
Zie https://nixos.org/download/#nix-install-linux voor verdere details.
Blijvende pakketinstallaties
Gebruik nix-env -iA of nix-env --install --attr om pakketten te installeren in /nix/store en ze beschikbaar te maken in het zoekpad van uw gebruiker:
$ nix-env -f '' -iA mc ⋮ building '/nix/store/1q2sh2f178jx9fl37gd9ks85ysfvpwd9-user-environment.drv'...
Dit creëert een nieuwe "omgeving" die alle statuswijzigingen bevat die nodig zijn om het mc-pakket beschikbaar te maken, en deze kunnen vooruit of achteruit worden gerold. Dit is de "echte" aantrekkingskracht van het Nix-pakketbeheersysteem, maar valt buiten het bestek van deze handleiding.
Controleer of de opdracht mc nu beschikbaar is voor uw gebruiker:
$ which mc /home/username/.nix-profile/bin/mc
Verwijder pakketten met nix-env --uninstall of nix-env -e:
$ nix-env -e mc uninstalling 'mc-4.8.33' building '/nix/store/rqbghiyds6f7a49qiwi9gmq7bnkgn9qi-user-environment.drv'...
Zie het gedeelte over [[#garbage-collection|garbage collection]] hieronder voor meer informatie over hoe u ruimte kunt vrijmaken die wordt gebruikt door pakketten die u niet langer gebruikt.
Zie https://nix.dev/manual/nix/latest/command-ref/nix-env.html voor verdere details.
Gebruikmakend van een nix-profiel
De nix <command> interface wordt technisch gezien nog steeds als experimenteel beschouwd (meer context over de “experimentele” status van het nix-profiel is te vinden in deze RFC), maar in de praktijk wordt deze veel gebruikt en is hij ergonomischer. Tab-aanvulling en de --help opties voor de verschillende nix subcommando's werken ook direct na een nieuwe installatie. Net als nix-env zal nix-profiel pakketten installeren in /nix/store en ze beschikbaar maken in uw zoekpad, waarbij ze behouden blijven tussen inlogsessies.
Hier is een eenvoudig voorbeeld van het gebruik van een nix-profiel om het codezoekhulpmiddel te installeren 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) Codezoekhulpmiddel gelijk aan ack, maar sneller $ nix profile add nixpkgs#silver-searcher $ which ag /home/gebruikernaam/.nix-profile/bin/ag
Om de geïnstalleerde pakketten te tonen of ze te verwijderen:
$ nix profile list ⋮ Naam: silver-searcher Flake attribute: legacyPackages.x86_64-linux.silver-searcher Originele flake URL: flake:nixpkgs Locked flake URL: github:NixOS/nixpkgs/f08e6b11a5ed43637a8ac444dd44118bc7d273b9?narHash=sha256-7vUo0qWCl/rip%2Bfzr6lcMlz9I0tN/8m7d5Bla/rS2kk%3D Opslagpaden: /nix/store/l120si3zsshmf3jr7dkn5dvcj0n586xb-silver-searcher-2.2.0 $ nix profile remove silver-searcher
Zie het gedeelte over garbage collection hieronder voor meer informatie over hoe u ruimte kunt vrijmaken die wordt gebruikt door pakketten die u niet langer gebruikt.
Zie https://nix.dev/manual/nix/latest/command-ref/new-cli/nix3-profile.html voor verdere details.
Nix opnieuw installeren
Als u de functie 'experimenteel' nix-profiel hebt ingeschakeld, moet u deze uitschakelen en de statusbestanden verwijderen die aan uw gebruikersprofiel zijn gekoppeld voordat u opnieuw installeert. Anders krijgt u een foutmelding zoals deze:
fout: profile '/home/username/.local/state/nix/profiles/profile' is incompatibel met 'nix-env'; gebruik 'nix profile' in plaats daarvan
Maak de regel <code>experimental-features</code> in uw Nix-configuratiebestand commentaar en verwijder vervolgens de map met de profielstatus:
$ sed -i'' 's/^experimental-features = nix-command flakes$/#&/' ~/.config/nix/nix.conf $ rm -rf ~/.local/state/nix/profiles/profile
Nu kunt u de installatiestappen herhalen.
Afvalverzameling om schijfruimte vrij te maken
Merk op dat nix-env -e en nix profile remove beide opdrachten van een pakket uit de huidige omgeving van de gebruiker verwijderen, maar de software blijft feitelijk geïnstalleerd in /nix/store totdat deze door de afvalverzamelaar wordt verwijderd.
U kunt de afvalverzameling forceren om schijfruimte vrij te maken met een van de volgende commando's:
nix-store --gc # routine voor afval verzamelen nix-collect-garbage -d # verwijder "unreachable" pakketten uit de opslag
Nix verwijderen
Om de Nix pakketbeheerder te verwijderen, voer de volgende commando's uit:
sudo systemctl disable --now nix-daemon.service nix-daemon.socket sudo 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 sudo userdel nixbld$i; done sudo groupdel nixbld
Zie ook
Artikel bijgedragen door Ernstki onder de licentie CC-BY-4.0.