Nix (gestionar de pachete)

Nix este un manager de pachete pentru sistemele informatice. Ca RPM, APT și multe alte managere de pachete, este capabil de a controla instalarea de pachete sau a grupurilor de fișiere versionate, cum ar fi aplicațiile software sau a datelor de configurare asociate.[1][2][3]

Pachetele Nix sunt configurate folosind un limbaj funcțional pur si evaluat in mod lenes special conceput pentru acest scop; shell script-uri sau orice alt program extern (ca Make) poate fi folosit pentru a construi pachete de la codul sursă. Natura pur funcționala a sistemului permite urmărirea foarte precisa a dependințelor; de exemplu, un pachet binar are o dependență pe sursă corespunzătoare pachetului, pe compilator și alte pachete care compilarea o cere. Hash-uri criptografice determina exact dependențele de compilare si execuție a fiecare pachet, și fiecare pachet sursă sau binar este reprezentat de un astfel de un hash. Ca urmare, depozitele centrale de pachete binare permit o optimizare transparenta a funcționarii de bază a pachetului manager (similar cu un "cache" de pachete indexate de un hash criptografic).

Dependențele sunt rezolvate printr-un sistem funcțional echivalent cu legăturile hard (hard linking), în care versiuni ale software-ului ce depind de un pachet nu sunt eliminate până când nici un pachet nu mai este dependent de ele. Acest lucru poate duce la o mai mare nevoile de depozitare, dar face toate upgrade-uri în condiții de siguranță (garantat să nu corupa aplicațiile existente) și de atomicitate. Acesta permite, de asemenea, existenta a mai multor versiuni a unui pachet, inclusiv de pachete parametrizate, cum ar fi un program cu și fără o anumită caracteristică, de a coexista fără nici o interferență.

Nix depinde de propria sa structură de directoare pentru instalarea de pachete. Toate pachetele sunt instalate în sub-directoare ale director-ului nix. În numirea directoarelor, diferite versiuni ale unui pachet sunt identificate prin precedarea numele pachetului de către codul hash-ul asociat.

Nix pote fi utilizat, cu unele rezerve, ca un manager de pachete peste un sistem de operare existent, cum ar fi o distribuție GNU/Linux. Acesta poate fi, de asemenea, folosit pentru a menține orice fel de configuratii de fișier, cum ar fi setări de server, în plus față de software-ul de pachete în sens strict.

NixOS[4] este o distribuție Linux folosind Nix în mod consistent pentru fiecare bucată de software-ul în sistem.[5]

Referințe

modificare
  1. ^ Prins, P., Suresh, J. și Dolstra, E., "Nix stabilește dependența iadul pe toate distribuțiile Linux," linux.com, decembrie 22, 2008
  2. ^ Dolstra, E., de Jonge, M. și Visser, E. "Nix: Un Seif și Politică-Sistem Gratuit pentru Software-ul de Implementare." Arhivat în , la Wayback Machine.
  3. ^ Dolstra, E. Pur Software Funcțional Model De Implementare. Arhivat în , la Wayback Machine.
  4. ^ Nix: reproducible builds and deployments (în engleză), nixos.org 
  5. ^ Dolstra, E. și Löh, A. "NixOS: Pur Funcțional Distributie de Linux Arhivat în , la Wayback Machine.."
modificare