Este tutorial detallado explica cómo utilizar las operaciones de administración de paquetes, como instalar, eliminar, actualizar y mejorar paquetes. administrador de paquetes nix en linux.
Comenzaremos esta guía con una breve introducción, seguida de comandos y ejemplos comunes de Nix.
Tabla de Contenidos
Introducción al Administrador de paquetes Nix
Mella Es un administrador de paquetes que hace que la instalación y administración de software en sistemas Linux y Unix sea fácil y confiable. Resuelve problemas comunes, como conflictos de software, y garantiza que cada instalación de software sea predecible y segura.
Con Nix, puedes instalar diferentes versiones de programas en tu computadora sin que interfieran entre sí. Esto significa que puede actualizar, agregar o eliminar software sin preocuparse por dañar nada.
Nix es inteligente en cuanto a cómo maneja el software. Realiza un seguimiento de todos los detalles necesarios para la ejecución de cada programa. De esta manera, cuando instalas un programa, no estropeas otro. Si algo sale mal con una nueva actualización de software, Nix le permite volver fácilmente a un estado anterior.
Nix Package Manager no sólo es útil para usuarios individuales, sino que también es excelente para desarrolladores y personas que administran servidores. Ayuda a que todos permanezcan en sintonía al garantizar que todos utilicen la misma configuración de software. Esto reduce las sorpresas al mover software de una computadora a otra.
Nix tiene una gran selección de software, todo mantenido por la comunidad de usuarios. Ya sea que trabaje solo o en equipo, es una opción sólida para el software de gestión.
Para obtener más detalles sobre Nix, consulte nuestra guía anterior:
Comenzando con el Administrador de paquetes Nix
Asegúrese de tener instalado Nix Package Manager. Si aún no ha instalado Nix, consulte la guía de instalación de Nix que se proporciona a continuación.
Después de configurar Nix Package Manager, puede comenzar a usarlo inmediatamente para instalar y administrar sus aplicaciones.
Nix tiene muchos comandos.Los principales comandos para la gestión de paquetes son ambiente de los knicks. Este comando se utiliza para enumerar, instalar, actualizar, rastrear, eliminar y consultar paquetes. Veamos algunos comandos con ejemplos.
pista: Si aún no lo sabes, no es necesario que lo sepas root
o sudo
Los usuarios utilizan Nix para realizar todas las operaciones de gestión de paquetes.
Actualizar canal Nix
Un canal Nix es simplemente una URL que apunta a una ubicación que contiene un conjunto de expresiones y manifiestos de Nix. Por defecto, Embalaje de los Knicks Cuando instalas Nix, el canal se agrega automáticamente a tu lista de canales «Suscripciones».
Para obtener la información más reciente sobre el canal Nix, ejecute el siguiente comando:
$ nix-channel --update
Salida de ejemplo:
downloading Nix expressions from ‘ downloading ‘ [8335/8656 KiB, 206.5 KiB/s] unpacking channels...
También puede agregar canales manualmente al sistema como se muestra a continuación.
$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable
Después de suscribirse (agregar recientemente) un canal, no olvide actualizar el canal con el comando para obtener las últimas expresiones Nix disponibles:
$ nix-channel --update
Para eliminar un canal, simplemente ejecute:
$ nix-channel --remove nixpkgs
Buscar/consultar paquetes disponibles en el canal
Para ver la lista de paquetes disponibles en un canal de suscripción, ejecute:
$ nix-env --query --available
o pronto:
$ nix-env -qa
Aquí las opciones -q
Indica operación de consulta -a
Representa todos los paquetes disponibles (listos para instalar).
salida de muestra:
0ad-0.0.26 0ad-data-0.0.26 0verkill-unstable-2011-01-13 0x-unstable-2022-07-11 0xproto-1.603 0xtools-1.2.4 1oom-1.0 1password-8.10.27 1password-8.10.28-21.BETA 1password-cli-2.26.1 2048-cli-unstable-2019-12-10 2048-cli-unstable-2019-12-10 2048-in-terminal-unstable-2022-06-13 20kly-1.5.0 2bwm-0.3 2fa-1.2.0 3270font-3.0.1 389-ds-base-2.4.3 3dpong-0.5 3llo-1.3.1 3mux-1.1.0 3proxy-0.9.4 4th-3.64.1 [...]
Si desea consultar un paquete específico, el comando es:
$ nix-env -qa firefox
Producción:
firefox-115.9.1esr firefox-124.0.1 firefox-124.0.1 firefox-124.0.1 firefox-125.0b3 firefox-125.0b3
También puede utilizar el siguiente comando para buscar un paquete específico.
$ nix-env -qaP | grep python3-3
Salida de ejemplo:
[...] nixpkgs.python312 python3-3.12.2 nixpkgs.python313 python3-3.13.0a5 nixpkgs.python313Full python3-3.13.0a5 nixpkgs.python39 python3-3.9.19 nixpkgs.python39Full python3-3.9.19
Listar paquetes instalados
Para enumerar todos los paquetes instalados, simplemente ejecute:
$ nix-env -q
También puede ver el estado de los paquetes disponibles. Vea el ejemplo a continuación.
$ nix-env -qas gcc
Salida de ejemplo:
IPS gcc-13.2.0
Aquí, «I» indica que el paquete de software especificado está instalado, «P» indica que el paquete de software existe en nuestro sistema y «S» indica si el llamado reemplazar Para paquetes.
Puede consultar/enumerar conjuntos utilizando expresiones regulares. A continuación se muestran algunos ejemplos de expresiones regulares.
chromium
Coincide con el nombre del paquete chromium y cualquier versión.
chromium-123.0.6312.86
Haga coincidir el nombre del paquete chromium y la versión 123.0.6312.86
.
ejemplo:
$ nix-env -qa chromium-123.0.6312.86
gtk\\+
Nombre del paquete coincidente gtk+. El carácter + debe tener como carácter de escape una barra invertida para evitar que se interprete como un cuantificador, y la barra invertida debe tener como carácter de escape otra barra invertida a su vez para garantizar que el shell lo pase.
.\*
Coincide con cualquier nombre de paquete. Este es el valor predeterminado para la mayoría de los comandos.
'.*zip.*'
Coincide con cualquier nombre de paquete que contenga esta cadena compresión. Tenga en cuenta: ‘*zip*’ no funciona porque en expresiones regulares el carácter * se interpreta como un cuantificador.
'.*(firefox|chromium).*'
Coincide con cualquier nombre de paquete que contenga la cadena Navegador Firefox o cromo.
Instalar paquetes
Como mencioné en mi último tutorial, todos los paquetes se almacenarán en tienda de los knicksnormalmente un directorio /nix/tienda.
Para instalar el paquete, simplemente ejecute:
$ nix-env --install gcc
o (pronto),
$ nix-env -i gcc
El comando anterior instalará el último paquete gcc disponible.
El resultado de ejemplo del comando anterior es:
installing ‘gcc-13.2.0’ download-from-binary-cache.pl: still waiting for ‘ after 5 seconds... download-from-binary-cache.pl: still waiting for ‘ after 5 seconds... download-from-binary-cache.pl: still waiting for ‘ after 5 seconds... these paths will be fetched (38.94 MiB download, 150.45 MiB unpacked): /nix/store/7n45x3waczv1smsdkax2dy4j2zhbfk82-glibc-2.25-bin /nix/store/dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-13.2.0 /nix/store/f05gsfcilsczwic8aga0cgl0sygbw5lc-zlib-1.2.11 /nix/store/f111ij1fc83965m48bf2zqgiaq88fqv5-glibc-2.25 /nix/store/g25gnfmd8i392ahiip9nwfv80szqbkcs-gcc-13.2.0-man /nix/store/n5k6yqf81jp4qbay2czaqciimhxikcq8-linux-headers-4.4.10 /nix/store/vrr9maj9lqj2xwndlx3kh07vhnc111i2-glibc-2.25-dev /nix/store/xfrkm34sk0a13ha9bpki61l2k5g1v8dh-gcc-13.2.0-lib /nix/store/zx0i63k1qswsfjj3kxhwk1vqa9i5ys8i-gcc-13.2.0-info fetching path ‘/nix/store/zx0i63k1qswsfjj3kxhwk1vqa9i5ys8i-gcc-13.2.0-info’... [...] fetching path ‘/nix/store/dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-13.2.0’... *** Downloading ‘ to ‘/nix/store/dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-13.2.0’... % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 29.5M 100 29.5M 0 0 373k 0 0:01:21 0:01:21 --:--:-- 365k building path(s) ‘/nix/store/nxx0bfg3n685fl0l3m2gbjqannh0wb9i-user-environment’ created 78 symlinks in user environment
Comprobemos si gcc está instalado usando el comando:
$ gcc -v
Salida de ejemplo:
Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/nix/store/dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-13.2.0/libexec/gcc/x86_64-unknown-linux-gnu/5.4.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: Thread model: posix gcc version 13.2.0 (GCC)
Como notó en el resultado anterior, gcc ya está ubicado en un subdirectorio llamado dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-13.2.0
bajo /nix/store
.
Aquí lo llamamos directorio dyj2k6ch35r1ips4vr97md2i0yvl4r5c-gcc-13.2.0
como identificador único. Este subdirectorio contiene todas las dependencias y bibliotecas requeridas por la suite gcc.
Conjunto de pruebas sin utilizar la instalación de Nix
Otra característica notable de Nix Package Manager es que puede probar paquetes sin instalarlos en su sistema. Consulte la guía a continuación sobre cómo probar la suite sin instalarla.
Paquete de actualización
Para actualizar un paquete a la siguiente versión disponible, simplemente ejecute:
$ nix-env --upgrade vim
De lo contrario:
$ nix-env -u vim
El comando anterior solo actualizará empuje paquete (si hay una versión «más nueva» disponible).
Además, puede actualizar todos los paquetes instalados a la vez ejecutando el siguiente comando:
$ nix-env -u
kit de recuperación
Ha instalado un paquete de software, pero es inútil o no funciona correctamente. Necesita una versión inferior del mismo paquete. ¿Qué vas a hacer? simple. Simplemente retroceda a una versión funcional anterior usando:
$ nix-env --rollback
Desinstalar paquete de software
Para desinstalar un paquete, ejecute:
$ nix-env -e gcc
El comando anterior desinstalará el archivo llamado Consejo de Cooperación del Golfo de su sistema.
Puede eliminar varios paquetes como se muestra a continuación.
$ nix-env -e gcc vim
Salida de ejemplo:
uninstalling ‘vim-9.1.0148’ uninstalling ‘gcc-13.2.0’ building path(s) ‘/nix/store/mxpikbq3l08379h8ik8mrj3fcw6mh6y4-user-environment’ created 6 symlinks in user environment
Eliminar paquetes no utilizados
Cuando se desinstala un paquete, no se elimina de Nix Store (es decir, el directorio /nix/store/). Sin embargo, el enlace simbólico será eliminado de su perfil.
Para eliminar realmente un paquete desinstalado, ejecute:
$ nix-collect-garbage -d
Salida de ejemplo:
finding garbage collector roots... deleting garbage... deleting ‘/nix/store/s4jr4dc9gghldr3xza23rw0gm9kp21kl-nix-prefetch-scripts.drv’ deleting ‘/nix/store/km2gyzlvs9vkrr52wxfyhinv4r52ksrj-nix-prefetch-bzr.drv’ deleting ‘/nix/store/7mi73sdc1p349vmpb5nyxsrv8ayk5hly-bazaar-2.7.0.drv’ [...] deleting ‘/nix/store/8ckmcs9hx1qm0yxdnv892vrvx49zm1sq-setup-hook-2.0.sh’ deleting ‘/nix/store/trash’ deleting unused links... note: currently hard linking saves -0.00 MiB 1447 store paths deleted, 12.65 MiB freed
Debe ejecutar este comando periódicamente para eliminar los paquetes no utilizados de su sistema.
Hoja de trucos del comando Nix
Esta es una hoja de referencia concisa para los comandos de Nix Package Manager. Imprímalo y manténgalo cerca de su escritorio para consultarlo fácilmente.
acción | Orden | ejemplo |
---|---|---|
Paquete de instalación | nix-env -i |
nix-env -i firefox |
Desinstalar el paquete de instalación | nix-env -e |
nix-env -e firefox |
Buscar paquetes | nix-env -qaP |
nix-env -qaP python |
kit de actualización | nix-env -u |
nix-env -u firefox |
Listar paquetes instalados | nix-env -q |
nix-env -q |
Revertir cambios | nix-env --rollback |
nix-env --rollback |
recolección de basura | nix-collect-garbage -d |
nix-collect-garbage -d |
Esta hoja de trucos cubre los comandos básicos para usar la suite de administración Nix y proporciona una guía sencilla para comenzar y mantener su sistema.
Preguntas frecuentes
Las siguientes son las preguntas más frecuentes (FAQ) sobre Nix Package Manager.
Respuesta: Nix es un potente administrador de paquetes para sistemas Linux y Unix que se centra en la reproducibilidad, confiabilidad y portabilidad. Permite a los usuarios instalar, administrar y cambiar fácilmente entre diferentes versiones de software y sus dependencias.
Respuesta: Para instalar un paquete de software, utilice nix-env -i
El comando va seguido del nombre del paquete. Por ejemplo, nix-env -i firefox
Instale el navegador web Firefox.
Respuesta: Para desinstalar un paquete de software, utilice nix-env -e
El comando va seguido del nombre del paquete. Por ejemplo, nix-env -e thunderbird
Desinstale el cliente de correo electrónico Thunderbird.
R: Para buscar paquetes, utilice nix-env -qaP
.Por ejemplo, para buscar paquetes relacionados con Python, puede utilizar nix-env -qaP python
.
Respuesta: Sí, para actualizar un paquete específico, ejecute nix-env -u
.Para actualizar todos los paquetes instalados, simplemente use nix-env -u
.
R: Para enumerar todos los paquetes instalados, use el comando nix-env -q
.
Respuesta: Para enumerar todos los paquetes disponibles en el canal, ejecute nix-env -qa
.
R: Los Knicks siguen los cambios a lo largo de «generaciones».Para volver a la generación anterior, utilice nix-env --rollback
.Puedes enumerar las generaciones disponibles. nix-env --list-generations
.
Respuesta: usar nix-collect-garbage -d
Elimine los paquetes no utilizados y libere espacio. Este comando borra todos los paquetes a los que el perfil no hace referencia.
en conclusión
Nix Package Manager proporciona una forma potente y flexible de administrar paquetes de software en sistemas Linux y Unix.
Su enfoque para el procesamiento de paquetes garantiza que pueda instalar, actualizar y cambiar entre diferentes versiones de software sin conflictos ni problemas de dependencia.
Aunque Nix puede tener una pequeña curva de aprendizaje, especialmente para aquellos nuevos en sus conceptos, los beneficios de una gestión precisa y repetible de la suite son significativos.
Ya sea desarrollador, administrador de sistemas o simplemente un usuario curioso, tomarse el tiempo para aprender Nix puede aumentar en gran medida su control sobre su entorno de software y optimizar su flujo de trabajo.
Eso es todo por ahora.Espero que hayas entendido claramente Uso básico del administrador de paquetes Nix. Lo que hemos cubierto aquí debería ser suficiente para comenzar con Nix.
Por supuesto, hay muchas instrucciones. Para saber más sobre los comandos de Nix, le recomiendo que consulte el manual oficial de Nix que se proporciona a continuación.
recurso: