¿Qué hace el administrador de paquetes de Nixos??
La mayoría de los administradores de paquetes usan un archivo que contiene el código ejecutable o fuente. Luego calculan lo que necesita en el sistema y luego se aseguran de que exista. En nix, las cosas funcionan de manera muy similar. La gran diferencia es que Nix crea todos los archivos y los compila si es necesario, luego colóquelos en un solo lugar; la tienda nix. La primera pregunta que tiene puede ser: "Los archivos no tendrán el mismo nombre?"El sistema evita esto al tener un directorio para cada versión y nombrar todos los archivos con un hash. Para hacer que la aplicación se sienta "en casa", todas las dependencias se vinculan a sus directorios correctos utilizando enlaces simbólicos ordinarios. Un perfil realiza un seguimiento de qué versión se ejecuta cada usuario.
El usuario de Nixos instala
Con este sistema, puede tener diferentes versiones instaladas en el directorio de cada usuario. Si son iguales en varios usuarios, el administrador puede dejar que Nix vuelva a vincular los binarios, por lo que solo existe uno a la vez. Esto es útil para ahorrar espacio en disco. También puede crear entornos específicos para cada versión del paquete. Esto es especialmente útil cuando desea probar una nueva versión o desarrollar software.
Instalación para distribución común
Para las plataformas más comunes, puede instalar NIX, el Administrador de paquetes con un script simple. Este script está disponible en el sitio web de Nix. El script necesitará acceso a los usuarios raíz, pero si está muy consciente de la seguridad, debe leer el script antes de usarlo. Si desea evitar usar root en el script, simplemente cree el directorio /nix en su sistema.
$ sh <(curl -L https://nixos.org/nix/install)
Si no tiene acceso raíz o simplemente súper cauteloso, puede tener NIX como Administrador de paquetes de solo usuario.
$ sh <(curl -L https://nixos.org/nix/install) -no-daemon
Este binario funciona bien para la mayoría, si no todas, distribuciones. Las plataformas son x8664, yo?86, AARCH64 y X8664-DARWIN, que cubren casi todas las plataformas disponibles. Si usa cualquier otra plataforma, probablemente pueda usar el código fuente y crear su propio. Cuando se realice la instalación, tendrá un montón de comandos nuevos.
Agregar su primer programa a Nixos
Para instalar software y establecer cuando se puede usar, tiene Nix-Env. La opción de instalación (-i) es la más común, ya que la usa siempre y pone un paquete como argumento.
$ nix -env -i Firefox
Esto se ve igual que en otras distribuciones, al igual que el argumento de la consulta. Sin embargo, la instalación llevará algún tiempo. La razón es que debe compilar el software a menos que haya una versión precompilada en el caché Nix. Llegar a la memoria caché tampoco es muy rápido. Hay una diferencia de la que debe tomar nota; Puedes elegir una versión! Si desea una versión especial, debe encontrar cuáles están disponibles utilizando expresiones regulares.
$ nix -env -qa 'Firefox.*
Recibirá una lista de todos los paquetes disponibles. Puede instalarlo de la misma manera, pero usando el valor en la lista.
$ nix-env -install 'Firefox-78.4.0ser '-Servein instalado
Esto puede fallar si ya tiene una versión instalada. La opción '-Preserve-Installed' no borrará la versión instalada. Puede terminar con dos versiones de la misma prioridad, que puede solucionar estableciendo la prioridad.
$ nix-env -set-flag priority 2 'Firefox-82.0.2 '
Ahora, ejecutarás la versión anterior la próxima vez que comiences Firefox. Para cambiar cuál ejecuta, puede establecer la prioridad en consecuencia. También puede iniciar un caparazón para elegir un binario. Esta es la opción de un desarrollador, y el comando es nix-shell.
Actualización de Nixos
Una vez que tenga una colección de software, desea mantenerse actualizado. Lo mismo que siempre, usa el mismo comando con un argumento. Pero también debe mantener el canal actualizado. El comando es nix-canal.
$ nix -canal -update
Esto lee las versiones actuales de todos los paquetes disponibles. Después de eso, puede comenzar a actualizar su software con NIX-EVV.
$ nix -env -upgrade
Una actualización como esta actualizará su versión anterior del software. En este caso, el antiguo Firefox será reemplazado por la versión más reciente. Es posible que no desee esto por cualquier razón, generalmente desarrollo.
Eliminar aplicaciones de Nixos
Eliminar aplicaciones es igualmente simple, con una pequeña advertencia. No se eliminan las aplicaciones mediante un comando eliminar.
$ NIX-ENV -UNINSTALL 'Firefox-78.4.0ser '
Este comando eliminará los enlaces a la compilación actual de esta versión de Firefox. Todos los archivos siempre permanecerán en el disco. Tienes estas versiones disponibles para hacer una reversión. Una reversión significa que vuelve a usar la versión anterior. Esto puede ser útil si ha probado lo más nuevo y tiene problemas imprevistos.
$ nix -env -rollback
Revuelve una generación completa, lo que significa todos los programas que se actualizaron desde la última generación. La opción ejecuta dos comandos; esa lista y luego cambia a esas antiguas generaciones. Todos los paquetes instalados existen en una generación en el disco.
Nixos Roll-Back y limpiando
La función de reversión conducirá a que un gran espacio en disco sea utilizado por versiones antiguas. Puedes limpiar esto (necesitas limpiar esto!). Cuando haya tenido un período lo suficientemente largo, por su cuenta, también puede limpiar estas antiguas generaciones para ahorrar espacio en disco.
$ nix-env -delete-generations viejos
Con este comando, eliminas todas las generaciones excepto las dos últimas. Puede ir y venir en la lista con parámetros más complejos para dejar la generación específica que funcionó mejor para usted. A menos que tenga muchos proyectos de prueba o desarrollo que necesiten muchas versiones para las pruebas, debe usar una eliminación programada de todas las generaciones antiguas.
Un script simple para mantener a sus generaciones limpias viene con una instalación de Nix Package Manager.
$ nix-colect-Garbage
También debe configurar el coleccionista para ejecutarse automáticamente utilizando Systemd u otros sistemas.
Conclusión
NIX Package Manager es un sistema poderoso que puede hacer que ejecute entornos de desarrollo complejos en su máquina. También puede usarlo para mantener su software ordenado y tener una manera simple de recuperarse en una nueva máquina, si se produce la catástrofe de un bloqueo de disco.