Nix: un gestionnaire de packages révolutionnaire et un système de construction pour Linux et au-delà
Nix se démarque comme un gestionnaire de packages et un système de construction puissant et unique, offrant une nouvelle approche de la gestion des logiciels sur Linux et d'autres systèmes d'exploitation de type UNIX. Contrairement aux gestionnaires de packages traditionnels, Nix excelle dans sa capacité à gérer plusieurs versions du même package simultanément, en fournissant des mises à niveau atomique et en arrière sans couture, en soutenant la gestion des packages par utilisateur et en simplifiant la création d'environnements de développement reproductibles.
Initialement développé pour Nixos, une distribution Linux utilisant une approche distinctive de la gestion des packages et de la configuration (un projet de recherche lancé par Eelco Dolstra en 2003), Nix a gagné une traction significative au sein des communautés scientifiques et de recherche, où des constructions reproductibles et fiables sont primordiales. Ses fonctionnalités robustes et sa méthodologie innovante de gestion des emballages sont également de plus en plus adoptées dans la gestion des infrastructures de DevOps et des infrastructures.
Table des matières
Nix se distingue des gestionnaires de packages Linux conventionnels via sa fonctionnalité et ses fonctionnalités. Voici un regard plus approfondi:
Nix construit des packages dans des environnements isolés, garantissant des builds reproductibles non affectés par la configuration du système hôte. Ceci est réalisé grâce à un modèle de construction purement fonctionnel.
Les packages résident dans le NIX Store ( / Nix / Store ), un répertoire contenant tous les packages et leurs dépendances. Le nom de fichier de chaque package est un hachage cryptographique unique, permettant la coexistence de différentes versions de package sans conflits.
Les packages sont définis à l'aide du langage d'expression NIX, un langage paresseux et purement fonctionnel. Ces expressions détaillent comment créer des packages à partir du code source.
Nix utilise une approche déclarative de la gestion des emballages. Vous spécifiez l'état du système souhaité et Nix garantit que le système atteint cet état.
Le modèle fonctionnel pur et les versions isolées garantissent des constructions reproductibles; La construction du même package sur différentes machines à différents moments donne des résultats identiques bits-pour-bit.
NIX prend en charge les mises à niveau atomique et les reculs, permettant une commutation facile entre différentes versions de package ou des états système entiers.
Les canaux NIX facilitent la distribution des collections d'expression NIX, simplifiant les mises à jour et le partage de packages entre les systèmes.
Nixpkgs (packages NIX) est une vaste collection d'expressions Nix, de packages de logiciels et de build utilitaires formant la fondation de l'écosystème NIX. Souvent appelé «NIX Standard Library», ce référentiel unique (Mono Repo) abrite plus de 80 000 définitions de packages et les outils pour les gérer, y compris les modules pour Nixos et les composants pour la construction et le déploiement d'un système NIX complet.
Nixos est une distribution Linux construite sur le gestionnaire de packages NIX, étendant l'approche déclarative à la configuration du système et à la gestion des packages.
Nixops est un outil pour déployer des machines Nixos dans des environnements réseau ou cloud, en utilisant la même approche déclarative que Nixos.
NIX prend en charge la gestion des packages multi-utilisateurs, permettant à plusieurs utilisateurs de gérer les packages sur le même système sans interférence. Ceci est inestimable dans les environnements partagés ou de développement.
L'isolement de dépendance et le sable pendant les constructions de colis empêchent les effets secondaires et améliorent la sécurité, réduisant le risque de «l'enfer de dépendance».
Les packages NIX sont stockés immuables dans / Nix / Store. Le chemin unique de chaque package comprend un hachage de ses intrants, empêchant les conflits et permettant à plusieurs versions de coexister.
Le langage d'expression NIX est un langage spécifique au domaine et purement fonctionnel central de la gestion des packages NIX. Les caractéristiques clés comprennent:
(L'expression de l'exemple de Nix reste largement la même, mais pourrait bénéficier de changements de libellés mineurs pour une clarté et un flux améliorés. Envisagez d'ajouter une brève explication du stdenv
et de son rôle.)
(Le reste du document, y compris les instructions d'installation, le guide de démarrage, la FAQ et la conclusion, peut être de la même manière paraphrasé et restructuré pour maintenir la signification d'origine tout en atteignant un flux plus naturel et engageant. Les structures spécifiques de phrasé et de phrases doivent être ajustées pour améliorer la lisibilité et la concision.)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!