Nix
El gestor de paquetes Nix es una herramienta avanzada para usuarios avanzados que se puede usar para adquirir virtualmente cualquier paquete de software libre que puedas imaginar de su gran repositorio mantenido por la comunidad.
Se puede instalar en KDE Linux para un sistema de un único usuario. Nix guarda el software y las dependencias en /nix/store y mantiene actualizada automáticamente la ruta de búsqueda cuando se añaden o eliminan herramientas.
Instalación
El gestor de paquetes Nix se puede instalar para el usuario actual de esta manera:
sh <(curl --proto '=https' --tlsv1.2 -L https://nixos.org/nix/install) --no-daemon
Cierra sesión, vuelve a iniciarla y luego prueba:
nix-shell -p mc emacs-nox # ahora estarás en una shell con mc y emacs
Ten en cuenta que cuando salgas de esta shell, mc y emacs dejarán de estar en la ruta de búsqueda de tu shell. Consulta la siguiente sección para hacer que estas herramientas estén disponibles de forma persistente.
Consulta https://nixos.org/download/#nix-install-linux para más detalles.
Instalación de paquetes persistente
Usa nix-env -iA o nix-env --install --attr para instalar paquetes en /nix/store y hacer que estén disponibles en la ruta de búsqueda de tu usuario.
$ nix-env -f '' -iA mc ⋮ building '/nix/store/1q2sh2f178jx9fl37gd9ks85ysfvpwd9-user-environment.drv'…
Esto crea un nuevo «entorno» que contiene todos los cambios de estado necesarios para que el paquete mc esté disponible. Estos cambios se pueden deshacer o rehacer. Este es el atractivo «real» del sistema de gestión de paquetes Nix, aunque queda fuera del alcance de esta guía.
Verifica que la orden mc está disponible para tu usuario:
$ which mc /home/username/.nix-profile/bin/mc
Elimina paquetes con nix-env --uninstall o nix-env -e:
$ nix-env -e mc uninstalling 'mc-4.8.33' building '/nix/store/rqbghiyds6f7a49qiwi9gmq7bnkgn9qi-user-environment.drv'…
Consulta la sección inferior sobre [[#garbage-collection|recolección de basura]] para más información sobre cómo recuperar el espacio ocupado por los paquetes que has dejado de usar.
Consulta https://nix.dev/manual/nix/latest/command-ref/nix-env.html para más detalles.
Uso de nix profile
La interfaz nix <orden> se sigue considerando técnicamente experimental (puedes encontrar más contexto sobre el estado «experimental» de nix profile en esta RFC), aunque en la práctica se usa ampliamente y es más ergonómico. La compleción con Tab y las opciones --help para las distintas órdenes nix también funcionarán directamente en una instalación reciente. Del mismo modo que nix-env, nix profile instalará paquetes en /nix/store y hará que estén disponibles en tu ruta de búsqueda de forma persistente entre inicios de sesión.
Aquí tienes un ejemplo básico del uso de nix profile para instalar la herramienta de búsqueda de código 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
Para listar los paquetes instalados o eliminarlos:
$ 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
Consulta la sección inferior sobre recolección de basura para más información sobre cómo recuperar el espacio ocupado por los paquetes que has dejado de usar.
Consulta https://nix.dev/manual/nix/latest/command-ref/new-cli/nix3-profile.html para más detalles.
Reinstalación de Nix
Si has activado la función nix profile «experimental», tendrás que desactivarla y borrar los archivos de estado asociados a tu perfil de usuario antes de reinstalar. En caso contrario obtendrás un mensaje de error como este:
error: el perfil '/home/username/.local/state/nix/profiles/profile' es incompatible con 'nix-env'; use 'nix profile' en su lugar
Descomenta la línea experimental-features del archivo de configuración de Nix y luego borra el directorio de estado del perfil:
$ sed -i'' 's/^experimental-features = nix-command flakes$/#&/' ~/.config/nix/nix.conf $ rm -rf ~/.local/state/nix/profiles/profile
Ahora puedes repetir los pasos de la instalación.
Recolección de basura para recuperar espacio en disco
Ten en cuenta que tanto nix-env -e como nix profile remove eliminan las órdenes proporcionadas por un paquete de tu entorno actual de usuario, aunque el software permanece instalado en realidad en /nix/store hasta que se recolecte su basura.
Puedes forzar esta recolección de basura para recuperar el espacio en disco con una de las siguientes órdenes:
nix-store --gc # recolección de basura rutinaria nix-collect-garbage -d # eliminar paquetes «inalcanzables» de la tienda
Eliminación de Nix
Para eliminar el gestor de paquetes Nix, ejecuta las siguientes órdenes:
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
Consulta también
Artículo escrito por Ernstki bajo las condiciones de la licencia CC-BY-4.0.