Nix (gestor de paquets)

De Viquipèdia
Salta a la navegació Salta a la cerca
Infotaula de programariNix
Escrit en C++
Tipus sistema de gestió de paquets i programari lliure
Llicència GNU LGPL
Més informació
Lloc web Web oficial
Modifica les dades a Wikidata

Nix és un gestor de paquets per ordinadors que és purament funcional. Igual que el Gestor de paquets RPM, APT i molts altres gestors de paquets, controla la instal·lació de paquets, és a dir, grups de fitxers (com ara aplicacions i les configuracions corresponents) amb un nom col·lectiu i un número de versió.[1][2][3]

Funcionament[modifica]

Els paquets de Nix es configuren mitjançant un llenguatge purament funcional i tardà que es va dissenyar expressament per fer aquesta tasca; per crear els paquets a partir del codi font, es poden utilitzar shell scripts o qualsevol altre programa extern (com ara Make). La naturalesa purament funcional del sistema permet fer un seguiment molt precís de les dependències entre els paquets; per exemple, un paquet binari té una dependència del corresponent paquet de codi font, del compilador i d'altres paquets necessaris per compilar-lo. Les dependències exactes de compilació i d'execució de cada paquet es determinen mitjançant resums (hashes) criptogràfics, i així cada paquet (de codi font o binari) es representa amb un d'aquests resums. Com a resultat, els repositoris de paquets binaris són una optimització transparent del funcionament bàsic del gestor de paquets (una cosa similar a un "cau" (cache) de paquets indexats per un resum criptogràfic).

Les dependències es resolen mitjançant un sistema funcionalment equivalent als enllaços físics, en el sentit que les versions de programes de què depèn un paquet no s'eliminen fins que ja no en depengui cap paquet. Això pot comportar que s'utilitzi més espai d'emmagatzematge, però també fa que totes les actualitzacions siguin segures (està garantit que no perjudiquen les aplicacions existents) i atòmiques. També permet que coexisteixin sense interferència diverses versions de qualsevol paquet, fins i tot paquets parametritzats com ara un programa amb una funcionalitat i sense.

Nix necessita tenir la seva pròpia estructura de directoris per instal·lar-hi els paquets: instal·la tots els paquets a subdirectoris del directori "nix". Les diferents versions d'un paquet es distingeixen afegint-ne el resum (hash) davant del nom.

Amb algunes precaucions, Nix es pot utilitzar com a gestor de paquets d'un sistema operatiu existent, per exemple d'una distribució de GNU/Linux. També es pot fer servir per gestionar tota mena de fitxers de configuració (com ara la instal·lació de servidors), més enllà dels paquets en sentit estricte.

NixOS[modifica]

NixOS[4] és una distribució de GNU/Linux que utilitza Nix per gestionar tots els programes del sistema.[5]

Referències[modifica]

  1. Prins, P., Suresh, J. i Dolstra, E., "Nix fixes dependency hell on all Linux distributions," linux.com, 22 desembre 2008
  2. Dolstra, E., de Jonge, M. i Visser, E. "Nix: A Safe and Policy-Free System for Software Deployment." A Damon, L. (Ed.), 18th Large Installation System Administration Conference (LISA '04), pàgines 79–92, Atlanta, Georgia, USA. USENIX, Novembre 2004.
  3. Dolstra, E. The Purely Functional Software Deployment Model. tesi doctoral, Faculty of Science, Utrecht, Països Baixos. Gener 2006. ISBN 90-393-4130-3.
  4. http://nixos.org/
  5. Dolstra, E. i Löh, A. "NixOS: A Purely Functional Linux Distribution." A ICFP 2008: 13th ACM SIGPLAN International Conference on Functional Programming, pàgines 367–378, Victoria, British Columbia, Canadà. Setembre 2008.

Vegeu també[modifica]

Enllaços externs[modifica]