Nix ecosystem/es: Difference between revisions
Created page with "Una distribución de Linux y un sistema de configuración basado en Nixpkgs." Tags: Mobile edit Mobile web edit |
No edit summary |
||
| (45 intermediate revisions by the same user not shown) | |||
| Line 2: | Line 2: | ||
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 [[Special:MyLanguage/Overview of the Nix Language|lenguaje Nix]], que permite definir compilaciones reproducibles. | 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 [[Special:MyLanguage/Overview of the Nix Language|lenguaje Nix]], que permite definir compilaciones reproducibles. | ||
Además, existen numerosas [[Special:MyLanguage/applications|aplicaciones]] (''' | Además, existen numerosas [[Special:MyLanguage/applications|aplicaciones]] ('''Ecosistema Extendido Nix''') desarrolladas por la comunidad de Nix que utilizan y respaldan estas tecnologías del nucleo. | ||
<span id="Official_ecosystem"></span> | <span id="Official_ecosystem"></span> | ||
== Ecosistema | == Ecosistema Oficial == | ||
{| class="wikitable" | {| class="wikitable" | ||
| Line 31: | Line 31: | ||
| [https://nixos.org/hydra/manual/ Hydra Manual] | | [https://nixos.org/hydra/manual/ Hydra Manual] | ||
| Un sistema de compilación continua basado en Nix. | | Un sistema de compilación continua basado en Nix. | ||
| | | Infraestructura de compilación de integración continua | ||
| GPL-3.0 | | GPL-3.0 | ||
|- | |- | ||
| Line 43: | Line 43: | ||
{| style="max-width: 36rem; margin: auto;" | {| style="max-width: 36rem; margin: auto;" | ||
|+ ''' | |+ '''Principales tecnologías del ecosistema NixOS''' | ||
| style="text-align: center; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); padding: 1.6rem" width="2%"| | | style="text-align: center; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); padding: 1.6rem" width="2%"| | ||
<div style="font-size: 1.3em; font-weight: bold">NixOS</div> | <div style="font-size: 1.3em; font-weight: bold">NixOS</div> | ||
| Line 50: | Line 50: | ||
| style="text-align: center; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); padding: 1.6rem" width="2%"| | | style="text-align: center; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); padding: 1.6rem" width="2%"| | ||
<div style="font-size: 1.3em; font-weight: bold">Nixpkgs</div> | <div style="font-size: 1.3em; font-weight: bold">Nixpkgs</div> | ||
Un amplio repositorio de paquetes mantenido por la comunidad. | |||
| style="text-align: center; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); padding: 1.6rem" width="2%"| | | style="text-align: center; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); padding: 1.6rem" width="2%"| | ||
<div style="font-size: 1.3em; font-weight: bold">Hydra</div> | <div style="font-size: 1.3em; font-weight: bold">Hydra</div> | ||
Un sistema de compilación continua basado en Nix. | |||
|- | |- | ||
| style="text-align: center; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); padding: 1.6rem" width="2%" colspan="2"| | | style="text-align: center; border: 1px solid var(--border-color-base); background: var(--background-color-neutral); padding: 1.6rem" width="2%" colspan="2"| | ||
<div style="font-size: 1.3em; font-weight: bold">Nix</div> | <div style="font-size: 1.3em; font-weight: bold">Nix</div> | ||
Un sistema de compilación puro y funcional. | |||
|} | |} | ||
< | <span id="Usage_of_NixOS"></span> | ||
== | == 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. | |||
< | <span id="Development_of_NixOS"></span> | ||
== | == Desarrollo de NixOS == | ||
Los desarrolladores de ''NixOS'' trabajan principalmente en ''Nixpkgs''. El desarrollo del propio NixOS abarca tres grandes áreas, además de otras de menor tamaño (aunque no menos importantes). Las áreas principales son el empaquetado, el sistema de módulos y la documentación. | |||
* El empaquetado se realiza en ''Nixpkgs'' y no es exclusivo de ''NixOS'' ni siquiera de plataformas basadas en Linux. Los mantenedores de paquetes que no son exclusivos de ''NixOS'' (como las herramientas necesarias para ejecutar la propia distribución) suelen encargarse de múltiples plataformas, aunque esto no es un requisito estricto. | |||
* El sistema de módulos es la forma en que se configuran principalmente los servicios que se ejecutan en ''NixOS''. Esta área abarca desde configuraciones de "bajo nivel", como archivos de unidades de ''systemd'' o la provisión de configuraciones personalizadas del kernel, hasta la generación de archivos de configuración para servicios específicos. El sistema de módulos es la principal forma en que los usuarios configuran ''NixOS'' y se encuentra en el subdirectorio <code>nixos/</code> de ''Nixpkgs''. | |||
* La documentación está integrada en gran medida en los datos del sistema de empaquetado y de módulos, aunque también se incluyen archivos Markdown independientes en el repositorio de ''Nixpkgs''. La documentación también abarca el mantenimiento del sitio web, la Wiki y otros aspectos del ecosistema más amplio. Las dos primeras categorías consisten casi exclusivamente en código del lenguaje ''Nix'' escrito en archivos de texto, mientras que la última es una combinación de código ''Nix'', archivos Markdown y diversos formatos adicionales. | |||
Todas las contribuciones a ''Nixpkgs'', independientemente de si afectan a ''NixOS'' o no, están sujetas a revisión por pares antes de ser integradas en ''Nixpkgs''. Muchos paquetes, junto con documentación y materiales adicionales como imágenes ISO o archivos tar, se compilan previamente en ''Hydra'' para reducir el tiempo de actualización para los usuarios de ''NixOS''. | |||
Esas tres categorías son las más grandes en cuanto a volumen de contribuciones; sin embargo, muchos mantenedores también participan en actividades relacionadas con la fundación de ''NixOS'', como el mantenimiento de la infraestructura sobre la que se ejecutan el sitio web, ''Hydra'' y otras herramientas, o el desarrollo de herramientas necesarias para ''NixOS''. | |||
{| class="wikitable" | {| class="wikitable" | ||
|+ | |+ Varios ejemplos de desarrollo de ''NixOS'' junto con sus enlaces. | ||
! | ! Tipo de desarrollo !! Ubicación del desarrollo !! Ejemplos | ||
|- | |- | ||
| | | Empaquetado independiente de la plataforma || ''Nixpkgs'' || [https://github.com/NixOS/nixpkgs/blob/bf3287dac860542719fe7554e21e686108716879/pkgs/tools/misc/coreutils/default.nix paquete coreutils ], [https://github.com/NixOS/nixpkgs/tree/5fe6820251dfab92c84ff356a7c7c336f8d8490c/pkgs/stdenv ''stdenv'' framework], [https://github.com/NixOS/nixpkgs/blob/5fe6820251dfab92c84ff356a7c7c336f8d8490c/pkgs/applications/office/libreoffice/default.nix paquete Libreoffice] | ||
|- | |- | ||
| | | Herramientas independientes de la plataforma || ''Nixpkgs'' y varios repositorios || [https://github.com/NixOS/nix implementación upstream/default de Nix (CppNix)], [https://github.com/NixOS/hydra código fuente de ''Hydra''], [https://github.com/NixOS/nixpkgs-merge-bot bot de integración de ''Nixpkgs''] | ||
|- | |- | ||
| | | Herramientas de ''NixOS'' || mayormente ''Nixpkgs'' || [https://github.com/NixOS/nixpkgs/tree/5fe6820251dfab92c84ff356a7c7c336f8d8490c/pkgs/by-name/ni/nixos-rebuild-ng Código fuente de nixos-rebuild-ng], [https://github.com/NixOS/nixpkgs/blob/5fe6820251dfab92c84ff356a7c7c336f8d8490c/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix ISOs de instalación de ''NixOS''] | ||
|- | |- | ||
| | | ''NixOS'' Sistema de Módulos || ''Nixpkgs'' || [https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/display-managers/default.nix Configuración del gestor de pantalla], [https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/services/databases/mysql.nix configuración de bases de datos MySQL (y derivadas)] | ||
|- | |- | ||
| | | Insfraestructura || || [https://github.com/NixOS/nixos-wiki-infra Infraestructura de esta Wiki], [https://github.com/NixOS/infra infraestructura de ''NixOS''] | ||
|- | |- | ||
| | | Documentación || || [https://wiki.nixos.org Esta Wiki], [https://github.com/NixOS/nixpkgs/blob/8d92119c540d78599ba208010c722a60958810f4/doc/stdenv/stdenv.chapter.md documentación de ''stdenv''], [https://github.com/NixOS/nixpkgs/blob/master/nixos/doc/manual/configuration/ipv6-config.section.md configuración IPv6 de ''NixOS''] (visible en la [https://nixos.org/manual/nixos/stable/#sec-ipv6 sección IPv6 del manual de ''NixOS'']), [https://github.com/NixOS/nixpkgs/blob/master/CONTRIBUTING.md Guía de contribución de ''Nixpkgs''] | ||
|- | |- | ||
| | | Organización Técnica || || [https://github.com/NixOS/nixpkgs/issues/390768 ''NixOS'' RelEng], [https://github.com/NixOS/rfcs/ ''Nix'' and ''NixOS'' RFCs] | ||
|- | |- | ||
| | | Otros || || [https://github.com/NixOS/nixos-artwork Ilustraciones de ''NixOS''], [https://discourse.nixos.org/ discurso de ''NixOS'' (y relacionados)], [https://github.com/NixOS/foundation Fundación ''NixOS''] | ||
|} | |} | ||
Ver también: github.com/NixOS/org Repositorio de la Organización Nix | |||
[[Category:Pedias]] | [[Category:Pedias]] | ||
[[Category:NixOS]] | [[Category:NixOS]] | ||
[[Category:nix]] | [[Category:nix]] | ||