Nix
El gestor de paquets Nix és una eina avançada per a usuaris experimentats que es pot utilitzar per a obtenir pràcticament qualsevol paquet de programari lliure que pugueu imaginar des del seu repositori gros i mantingut per la comunitat.
Es pot instal·lar a KDE Linux per a un sistema d'usuari individual. El Nix emmagatzema el programari i les dependències a /nix/store, i manté el camí de cerca actualitzat automàticament a mesura que s'afegeixen o s'eliminen les eines.
Instal·lació
El gestor de paquets Nix es pot instal·lar per a l'usuari actual així:
sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install) --no-daemon
Tanqueu la sessió i torneu a entrar, i després proveu:
nix-shell -p mc emacs-nox # ara esteu dins un intèrpret d'ordres amb mc i emacs
Tingueu en compte que quan sortiu d'aquest intèrpret d'ordres, mc i emacs ja no són al camí de cerca de l'intèrpret d'ordres. Vegeu la secció següent per a fer que aquestes eines estiguin disponibles de manera persistent.
Vegeu https://nixos.org/download/#nix-install-linux per a més detalls.
Instal·lació persistent de paquets
Utilitzeu nix-env -iA o nix-env --install --attr per a instal·lar paquets a /nix/store i fer-los disponibles al camí de cerca del vostre usuari:
$ nix-env -f '' -iA mc ⋮ building '/nix/store/1q2sh2f178jx9fl37gd9ks85ysfvpwd9-user-environment.drv'...
Això crea un «entorn» nou que conté tots els canvis d'estat necessaris per a fer que el paquet mc estigui disponible, i aquests es poden fer avançar o tirar enrere. Aquest és l'atractiu «real» del sistema de gestió de paquets Nix, però queda més enllà de l'àmbit d'aquesta guia.
Verifiqueu que l'ordre mc ja està disponible per a l'usuari:
$ which mc /home/username/.nix-profile/bin/mc
Elimineu els paquets amb nix-env --uninstall o nix-env -e:
$ nix-env -e mc uninstalling 'mc-4.8.33' building '/nix/store/rqbghiyds6f7a49qiwi9gmq7bnkgn9qi-user-environment.drv'...
Vegeu la secció sobre la [[#garbage-collection|recollida de brossa]] a continuació per veure com recuperar l'espai utilitzat pels paquets que ja no esteu utilitzant.
Vegeu https://nix.dev/manual/nix/latest/command-ref/nix-env.html per a més detalls.
Utilitzant un perfil de nix
La interfície nix <command> encara es considera tècnicament experimental (es pot trobar més context sobre l'estat «experimental» del perfil nix) en aquest RFC), però a la pràctica és àmpliament utilitzat i més ergonòmic. La compleció de pestanyes i les opcions --help per a les diverses subordres nix també funcionaran directament en una instal·lació nova. Igual que nix-env, nix profile instal·larà paquets a /nix/store i els farà disponibles al vostre camí de cerca, persistent entre sessions d'inici de sessió.
Heus aquí un exemple trivial que utilitza nix profile per a instal·lar l'eina de cerca de codi 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) Eina de cerca de codi similar a ack, però més ràpida $ nix profile add nixpkgs#silver-searcher $ which ag /home/username/.nix-profile/bin/ag
Per a llistar els paquets instal·lats o eliminar-los:
$ 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
Vegeu la secció sobre la recollida de brossa a continuació sobre com recuperar l'espai utilitzat pels paquets que ja no esteu utilitzant.
Vegeu https://nix.dev/manual/nix/latest/command-ref/new-cli/nix3-profile.html per a més detalls.
Reinstal·lació del Nix
Si heu activat la funció «experimental» nix profile, haureu de desactivar-la i suprimir els fitxers d'estat associats amb el perfil del vostre usuari abans de tornar a instal·lar-la, en cas contrari obtindreu un missatge d'error com aquest:
error: el perfil '/home/username/.local/state/nix/profiles/profile' és incompatible amb 'nix-env'; feu servir 'nix profile' en el seu lloc
Comenteu la línia experimental-features al fitxer de configuració del Nix i suprimiu el directori d'estat del perfil:
$ sed -i'' 's/^experimental-features = nix-command flakes$/#&/' ~/.config/nix/nix.conf $ rm -rf ~/.local/state/nix/profiles/profile
Ara podeu repetir els passos d'instal·lació.
Recollida de brossa per a recuperar espai de disc
Tingueu en compte que nix-env -e i nix profile remove ambdós suprimeixen les ordres proporcionades per un paquet des de l'entorn actual del vostre usuari, però el programari en realitat roman instal·lat a /nix/store fins que es reculli la brossa.
Podeu forçar aquesta recollida de brossa per a recuperar espai en disc amb una de les ordres següents:
nix-store --gc # recollida rutinària de brossa nix-collect-garbage -d # elimina paquets «no accessibles» de la botiga
Suprimir el Nix
Per a eliminar el gestor de paquets Nix, executeu les ordres següents:
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
Vegeu també
Article escrit per Ernstki d'acord amb la llicència CC-BY-4.0.