Why-We-UseThe-Nix-Package-Manager

Nix es un potente sistema de gestión de paquetes puramente funcional diseñado para una gestión de paquetes fiable y reproducible, publicado bajo los términos de la LGPLv2.1 de GNU. Es el principal sistema de gestión de paquetes en NixOS, una distribución de Linux poco conocida.

Nix ofrece actualizaciones, múltiples versiones de instalación de paquetes, gestión de paquetes multiusuario y configuración sin esfuerzo de entornos de compilación para un paquete, independientemente de los lenguajes de programación y herramientas que utilice un desarrollador.

Bajo Nix, los paquetes se construyen a partir de un lenguaje de paquetes funcional llamado “Nix Expressions”. Este enfoque funcional de la gestión de paquetes garantiza que la instalación o actualización de un paquete no pueda romper otros paquetes.

Nix también tiene soporte multiusuario, lo que implica que los usuarios normales (o no privilegiados) del sistema pueden instalar paquetes de forma segura y cada usuario es identificado por un perfil (una colección de paquetes en la tienda Nix que aparecen en el PATH del usuario).

En caso de que un usuario haya instalado un paquete, si otro usuario intenta instalar el mismo paquete, el paquete no se creará ni se descargará por segunda vez.

Actualmente soporta Linux (i686, x86_64) y Mac OS X (x86_64). Sin embargo, es bastante portable, puedes probarlo en la mayoría de las plataformas que soportan POSIX y tienen un compilador C++11.

En este artículo, mostraremos cómo instalar (en modo multiusuario) y usar el gestor de paquetes Nix en Linux. Discutiremos algunas de las tareas básicas de gestión de paquetes en relación con las herramientas comúnmente utilizadas.

Cómo instalar Nix Package Manager en Linux

Instalaremos la última versión de Nix (v2.1.3 en el momento de escribir este artículo) en modo multiusuario. Afortunadamente, hay un script de instalación preparado que puedes ejecutar desde tu shell como un usuario normal usando el siguiente comando curl en tu sistema.

$ sh <(curl https://nixos.org/nix/install) --daemon

Ejecutando el comando anterior descargará el último tarball binario nix, y aterrizará en la pantalla de instalación multiusuario nix como se muestra en la captura de pantalla.

Why-We-UseThe-Nix-Package-Manager-01

Para ver una lista detallada de lo que sucederá durante el proceso de instalación, escribe y y pulsa Enter. Si estás satisfecho y listo para continuar, escribe y y y pulsa Enter.

El script invocará el comando sudo muchas veces según sea necesario. Necesitas permitirle usar sudo contestando y y presionando Enter.

El instalador ejecutará algunas pruebas y generará un informe de configuración de Nix, creará usuarios de build entre los IDs de usuario 30001 y 30032, y un grupo con el ID de grupo 30000. Introduce y para continuar cuando se te pida. Establecerá los grupos de compilación para los diferentes usuarios de la compilación, haciendo la estructura básica de directorios de Nix.

Modificará el fichero /etc/bashrc, (y /etc/zshrc para el zsh) si existen. Ten en cuenta que primero realiza una copia de seguridad de los archivos mencionados con una extensión.backup-before-nix y el instalador también crea el archivo /etc/profile.d/nix.sh.

El instalador también configurará el servicio nix-daemon y el servicio nix-daemon socket, cargará la unidad systemd para nix-daemon e iniciará los dos servicios mencionados anteriormente.

Una vez finalizada la instalación, es necesario abrir una nueva ventana de terminal para comenzar a utilizar Nix. Alternativamente, cierra y vuelve a abrir tu shell para aplicar los cambios recientes. Luego busca el archivo /etc/profile.d/nix.sh (debido a que no es un archivo de inicio de shell, abrir un nuevo shell no lo hará).

$ source /etc/profile.d/nix.sh

A continuación, ejecuta el siguiente comando para descargar algunas rutas de la página web oficial del proyecto, necesarias para que Nix funcione. Después de descargar y copiar todas las rutas a las ubicaciones correctas, verás un resumen del tipo de instalación del sistema y de Nix como se muestra en la captura de pantalla.

$ nix-shell -p nix-info --run "nix-info -m"

Nix-Installation-and-System-Summary

Cómo usar Nix Package Manager en Linux

En Nix, la gestión de paquetes se realiza mediante la utilidad nix-env. Se utiliza para instalar, actualizar y eliminar/borrar paquetes, y para consultar qué paquetes están instalados o están disponibles para su instalación.

Todos los paquetes se encuentran en un canal Nix, que es una URL que apunta a un repositorio que comprende tanto una colección de expresiones Nix como un puntero a una caché binaria.

El canal por defecto es Nixpkgs y la lista de canales suscritos se almacena en canales ~/.nix, puedes listarlos usando el siguiente comando (sin salida significa sin canales).

$ nix-channel --list

Para añadir el canal Nix, utiliza el siguiente comando.

$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable

Antes de instalar cualquier paquete, comienza por actualizar el canal Nix; esto es similar a ejecutar apt update bajo el gestor de paquetes de APT.

$ nix-channel --update

Puedes consultar qué paquetes están disponibles para la instalación utilizando el siguiente comando.

$ nix-env -qa

query-packages-available-for-installation

En este ejemplo, instalaremos el servidor Apache Tomcat usando el comando anterior junto con grep para encontrar que el paquete está disponible para instalar como se muestra.

$ nix-env -qa | grep "apache-tomcat"

find-specific-package-using-grep-1

Para instalar un paquete, utiliza el siguiente comando especificando la versión del paquete, por ejemplo apache-tomcat-9.0.2.

$ nix-env -i apache-tomcat-9.0.2

install-package-using-nix

En el sistema local, Nix almacena paquetes en el almacén Nix, que es por defecto el directorio /nix/store, donde cada paquete tiene su propio subdirectorio único. Por ejemplo, los paquetes apache-tomcat se almacenan en:

/nix/store/95gmgnxlrcpkhlm00fa5ax8kvd6189py-apache-tomcat-9.0.2

En esta ruta, los caracteres aleatorios 95gmgnxlrcpkhlm00fa5ax8kvd6189py son un identificador único para el paquete que tiene en cuenta todas sus dependencias.

Puedes listar los paquetes instalados con el siguiente comando.

$ nix-env -q

Para actualizar el paquete apache-tomcat, puedes usar el switch de actualización -u como se muestra.

$ nix-env -u apache-tomcat

Si quieres eliminar o borrar apache-tomcat, usa el indicador -e. Aquí, un paquete no se borra del sistema inmediatamente, sólo se deja sin usar. Esto es útil porque quizás quisieras hacer un rollback.

$ nix-env -e apache-tomcat

Después de quitar un paquete, puedes hacer un poco de recolección de basura con el servicio nix-collect-garbage.

$ nix-collect-garbage

Cómo quitar Nix Package Manager en Linux

Para desinstalar Nix, elimina todos los archivos relacionados de una sola vez.

$ sudo rm -rf /etc/profile/nix.sh /etc/nix /nix ~root/.nix-profile ~root/.nix-defexpr ~root/.nix-channels ~/.nix-profile ~/.nix-defexpr ~/.nix-channels

En sistemas con systemd, ejecuta los siguientes comandos para detener todos los servicios relacionados con Nix y deshabilitarlos.

$ sudo systemctl stop nix-daemon.socket
$ sudo systemctl stop nix-daemon.service
$ sudo systemctl disable nix-daemon.socket
$ sudo systemctl disable nix-daemon.service
$ sudo systemctl daemon-reload

Además, necesitas eliminar cualquier referencia a Nix en estos archivos: /etc/profile, /etc/bashrc, y /etc/zshrc.

Para obtener más información, consulta las páginas de manual de las utilidades anteriores que hemos analizado.

$ man nix-channel
$ man nix-env

Puedes encontrar la documentación del Nix Package Manager en la página web del proyecto: nixos.org/nix/.

 

Fuente: Original | maslinux

¿Quién está en línea?

Hay 1246 invitados y ningún miembro en línea