lanzamiento del gestor de paquetes y la distribución GuixSD GNU/Linux (Distribución del Sistema Guix). El cambio significativo en el número de versión se debe a la finalización de todos , establecidos para crear un lanzamiento emblemático. La publicación cierra siete años de trabajo en el proyecto y se considera lista para el uso cotidiano. Para descargar las imágenes para la instalación en USB Flash (243 MB) y para su uso en sistemas de virtualización (474 MB). Se admite su funcionamiento en arquitecturas i686, x86_64, armv7 y aarch64.
La distribución permite la instalación tanto como en sistemas de virtualización, en contenedores y en hardware convencional, como en distribuciones GNU/Linux ya instaladas, actuando como plataforma para el despliegue de aplicaciones. Al usuario se le ofrecen funciones como el seguimiento de dependencias, compilaciones repetibles, funcionamiento sin root, retroceso a versiones anteriores en caso de problemas, gestión de configuraciones, clonación de entornos (creación de copias exactas del entorno de software en otras computadoras), etc.
Principales :
- Se ha añadido un nuevo , que opera en modo texto;
- nueva imagen para máquinas virtuales, adecuada tanto para familiarizarse con la distribución como para crear entornos de trabajo para desarrollo;
- Se han añadido nuevos servicios del sistema: cups-pk-helper, imap4d, inputattach, localed, nslcd, zabbix-agent y zabbix-server;
- Se han actualizado las versiones de programas en 2104 paquetes, y se han añadido 1102 nuevos paquetes. Entre ellos se actualizan las versiones de clojure 1.10.0, cups 2.2.11, emacs 26.2, gcc 8.3.0, gdb 8.2.1, ghc 8.4.3,
gimp 2.10.10, glibc 2.28, gnome 3.28.2, gnupg 2.2.15, go 1.12.1,
guile 2.2.4, icecat 60.6.1-guix1, icedtea 3.7.0, inkscape 0.92.4,
libreoffice 6.1.5.2, linux-libre 5.0.10, mate 1.22.0, ocaml 4.07.1,
octave 5.1.0, openjdk 11.28, python 3.7.0, rust 1.34.0, r 3.6.0,
sbcl 1.5.1, shepherd 0.6.0, xfce 4.12.1 y xorg-server 1.20.4; - El gestor de servicios GNU Shepherd se ha actualizado a la versión , en la que se ha implementado el modo de funcionamiento one-shot de los servicios, en el que el servicio se marca como detenido inmediatamente después de haber sido iniciado con éxito, lo que puede ser necesario para ejecutar tareas únicas antes de otros servicios, como limpieza o inicialización;
- Se han añadido los comandos típicos de otros gestores de paquetes para el comando "guix package": "install", "remove", "upgrade" y "search". Para buscar un paquete se puede usar el comando "guix search", para instalar "guix install", y para actualizar "guix pull" y "guix upgrade";
- Se ha añadido un indicador de progreso y resaltado de colores para los mensajes de diagnóstico al gestor de paquetes. Por defecto, la mayoría de los comandos ahora se ejecutan sin salida detallada en pantalla, que se activa con la opción separada "-v" (—verbosity);
- Se ha añadido un nuevo comando "guix system delete-generations" al gestor de paquetes guix, así como las opciones "guix pack —save-provenance", "guix pull —news", "guix environment —preserve", "guix gc —list-roots", "guix gc —delete-generations", "guix weather —coverage";
- Se han añadido nuevas opciones "—with-git-url" y "—with-branch";
- Se han añadido campos de configuración "keyboard-layout" para definir la distribución del teclado, "xorg-configuration" para configurar el servidor X, "label" para la etiqueta de la partición y "essential-services" para definir los servicios esenciales;
- Se ha añadido el comando "guix pack -RR" para crear archivos tar con ejecutables movibles, que pueden iniciarse tanto en relación con rutas en el espacio de nombres del usuario como en relación con PRoot;
- En "guix pull" se ha garantizado la formación de un caché de paquetes para acelerar las operaciones de búsqueda por nombre y se ha integrado el paquete "glibc-utf8-locales";
- Se ha garantizado una repetibilidad completa (bit a bit) de las imágenes ISO generadas por el comando "guix system";
- Se ha implementado GDM como gestor de inicio en lugar de SLiM;
- Se ha dejado de soportar la construcción de Guix utilizando Guile 2.0.
Recordemos que el gestor de paquetes GNU Guix se basa en los desarrollos del proyecto y, además de las funciones típicas de gestión de paquetes, soporta capacidades como realizar actualizaciones transaccionales, permitir la reversión de actualizaciones, operar sin privilegios de superusuario, soportar perfiles vinculados a usuarios específicos, permitir la instalación simultánea de múltiples versiones de un mismo programa y herramientas de limpieza (detección y eliminación de versiones de paquetes no utilizadas). Se sugiere utilizar un lenguaje de alto nivel orientado a objetos para definir escenarios de construcción de aplicaciones y reglas para la formación de paquetes, además de los componentes de Guile Scheme API, que permiten realizar todas las operaciones de gestión de paquetes en el lenguaje de programación funcional Scheme.
Se soporta la posibilidad de utilizar paquetes preparados para el gestor de paquetes Nix y alojados en el repositorio.
. Además de las operaciones con paquetes, es posible crear scripts para gestionar la configuración de las aplicaciones. Al construir un paquete, se descargan y compilan automáticamente todas las dependencias asociadas. Es posible tanto cargar paquetes binarios listos desde el repositorio como construir desde el código fuente con todas las dependencias. Se implementaron herramientas para mantener las versiones de las aplicaciones instaladas actualizadas mediante la gestión de actualizaciones desde un repositorio externo.
El entorno de construcción para los paquetes se forma en forma de un contenedor, que contiene todos los componentes necesarios para el funcionamiento de las aplicaciones, lo que permite formar un conjunto de paquetes capaz de funcionar sin depender de la composición del entorno básico del sistema del distribuidor, en el que Guix se utiliza como complemento. Entre los paquetes de Guix se pueden definir dependencias, utilizando el escaneo de los hashes identificadores en el directorio de paquetes instalados para buscar la existencia de dependencias ya instaladas. Los paquetes se instalan en un árbol de directorios separado o en un subdirectorio en el directorio del usuario, lo que permite su coexistencia paralela con otros gestores de paquetes y garantizar el soporte de una amplia gama de distribuciones existentes. Por ejemplo, el paquete se instala como /nix/store/f42d5878f3a0b426064a2b64a0c6f92-firefox-66.0.0/, donde «f42d58…» es el identificador único del paquete utilizado para el control de dependencias.
La distribución incluye solo componentes libres y se entrega con el núcleo GNU Linux-Libre, limpio de elementos no libres de firmwares binarios. Para la construcción se utiliza GCC 8.3. Se emplea el gestor de servicios como sistema de inicialización. (), desarrollado como una alternativa a SysV-init con soporte para dependencias. El demonio gestor y las utilidades de Shepherd están escritas en Guile (una de las implementaciones del lenguaje Scheme), que también se utiliza para definir los parámetros de inicio de los servicios. La imagen básica admite el funcionamiento en modo consola, pero para la instalación 9714 paquetes listos, que incluyen componentes de la pila gráfica basada en X.Org, los gestores de ventanas dwm y ratpoison, el entorno de escritorio Xfce, así como una selección de aplicaciones gráficas.
Fuente: opennet.ru
