Nix ecosystem/es: Difference between revisions
Created page with "Los usuarios instalan la distribución NixOS en sus equipos como cualquier otra distribución de Linux. Consultan los paquetes disponibles y las opciones de configuración en Nixpkgs a través de https://search.nixos.org y de esta wiki. Utilizan el lenguaje Nix para describir de forma declarativa, en un archivo de texto, qué paquetes de software deben instalarse y cómo debe configurarse el sistema. Ejecutan dos programas de línea de comandos en una terminal para trans..." |
No edit summary |
||
| Line 5: | Line 5: | ||
<span id="Official_ecosystem"></span> | <span id="Official_ecosystem"></span> | ||
== Ecosistema | == Ecosistema Oficial == | ||
{| class="wikitable" | {| class="wikitable" | ||
Revision as of 18:31, 13 July 2026
El Núcleo del ecosistema Nix es un conjunto de tecnologías diseñado para compilar de forma reproducible paquetes y sistemas, así como para configurarlos y administrarlos de manera declarativa junto con sus dependencias. Esto se consigue trasladando el paradigma funcional del ámbito de los programas al de los sistemas mediante un lenguaje específico de dominio (DSL), dinámico, funcional y de evaluación diferida, denominado lenguaje Nix, que permite definir compilaciones reproducibles.
Además, existen numerosas aplicaciones (ecosistema extendido de Nix) desarrolladas por la comunidad de Nix que utilizan y respaldan estas tecnologías del núcleo.
Ecosistema Oficial
| Componente | Manual | Descripción | Uso | Licencia |
|---|---|---|---|---|
| NixOS | NixOS Manual | Una distribución de Linux cuyos todos los componentes se compilan con Nix, lo que permite la gestión declarativa y reproducible de la configuración de todo el sistema, además de actualizaciones y reversiones atómicas. | Configure escritorios, servidores y clústeres de forma declarativa. | MIT |
| Nixpkgs | Nixpkgs Manual | El mayor repositorio de paquetes de Nix y módulos de NixOS mantenido por la comunidad; las versiones oficiales de NixOS se publican aquí. | Comparta paquetes de Nix y módulos para NixOS | MIT |
| Hydra | Hydra Manual | Un sistema de compilación continua basado en Nix. | Granjas de compilación para integración continua (CI). | GPL-3.0 |
| Nix | Nix Manual | Un gestor de paquetes que interpreta expresiones de Nix para definir compilaciones reproducibles y almacena el resultado en la store de Nix utilizando una dirección basada en el hash del árbol de dependencias. Esto evita el «infierno de las dependencias» y permite instalar varias versiones de un mismo paquete, así como realizar reversiones. | Compilaciones reproducibles y administración de paquetes en Linux y Darwin. | LGPL-2.1 |
|
NixOS
Una distribución de Linux y un sistema de configuración basado en Nixpkgs. | |
|
Nixpkgs
Un amplio repositorio de paquetes mantenido por la comunidad. |
Hydra
Un sistema de compilación continua basado en Nix. |
|
Nix
Un sistema de compilación puro y funcional. | |
Uso de NixOS
Los usuarios instalan la distribución NixOS en sus equipos como cualquier otra distribución de Linux. Consultan los paquetes disponibles y las opciones de configuración en Nixpkgs a través de https://search.nixos.org y de esta wiki. Utilizan el lenguaje Nix para describir de forma declarativa, en un archivo de texto, qué paquetes de software deben instalarse y cómo debe configurarse el sistema. Ejecutan dos programas de línea de comandos en una terminal para transformar el sistema en el sistema descrito. Luego utilizan el sistema como cualquier otro sistema Linux.
Desarrollo de NixOS
Developers of NixOS mainly work on Nixpkgs. NixOS development itself is compromised of three large areas as well as some others which are smaller by volume (but no less important). The major ones include packaging, the module system, and documentation.
- Packaging is done in Nixpkgs and is not exclusive to NixOS or even Linux-based platforms. Maintainers of packages which are not exclusive to NixOS (such as tooling required to run the distribution itself) usually take care of multiple platforms although not strictly required.
- The module system is the way in which services running on NixOS are primarily configured. This area stretches from "low-level" configuration such as systemd unit files or providing custom kernel configuration up to configuration file generation for specific services. The module system is the primary way for users to configure NixOS, and lives in the
nixos/subdirector of Nixpkgs.
- Documentation is largely embedded in packaging and module system data, although free-standing markdown files are also contained in the Nixpkgs repository. Documentation also includes maintaining the website, Wiki, and other aspects of the wider ecosystem. The first two categories are almost exclusively Nix language code written in text files, while the latter is a mix of Nix code, markdown files, and various other formats.
All contributions to Nixpkgs, regardless of whether they affect NixOS or not, are subject to peer review before being integrated into Nixpkgs. Many packages alongside documentation and supplementary materials such as ISOs or tarballs are pre built on Hydra to reduce the update time for NixOS users.
Those three categories are largest by contribution volume, however many maintainers also engage in activities surrounding the NixOS foundation, maintaining the infrastructure on which website, Hydra, and other tools run on, or developing tooling required for NixOS.
| Type of development | Location of Development | Examples |
|---|---|---|
| Platform Agnostic Packaging | Nixpkgs | coreutils package, stdenv framework, Libreoffice package |
| Platform Agnostic Tooling | Nixpkgs and various repositories | upstream/default Nix implementation (CppNix), Hydra source code, Nixpkgs merge bot |
| NixOS Tooling | mostly Nixpkgs | nixos-rebuild-ng source code, NixOS Installation ISOs |
| NixOS Module System | Nixpkgs | Display Manager configuration, MySQL (and derivative) database configuration |
| Infrastructure | Infrastructure for this Wiki, NixOS infra | |
| Documentation | This Wiki, stdenv documentation, NixOS IPv6 configuration (visible in the IPv6 section of the NixOS manual), Nixpkgs Contribution Guidelines | |
| Tech Organisation | NixOS RelEng, Nix and NixOS RFCs | |
| Other | NixOS artwork, NixOS (and related) discourse, NixOS Foundation |
See also: Nix organisation repository