Nix - puhtalt funktsionaalne pakettihaldur Linuxile


Nix on võimas, puhtalt toimiv pakettide haldussüsteem, mis on loodud usaldusväärseks ja taasesitatavaks pakettide haldamiseks ning mis on välja antud GNU LGPLv2.1 tingimustel. See on NixOS-i peamine paketihaldussüsteem, vähem tuntud Linuxi distributsioon.

Nix pakub aatomiuuendusi ja tagasivõtmisi, pakettide installimise mitut versiooni, mitme kasutaja paketihaldust ja paketi ehituskeskkondade lihtsat seadistamist, olenemata sellest, milliseid programmeerimiskeeli ja tööriistu arendaja kasutab.

Nixi all on paketid ehitatud funktsionaalsest paketikeelest nimega\"Nix avaldised". See funktsionaalne lähenemine paketihaldusele tagab, et ühe paketi installimine või täiendamine ei saa teisi pakette rikkuda.

Nixil on ka mitme kasutaja tugi, mis tähendab, et tavalised (või privilegeerimata) süsteemikasutajad saavad pakette turvaliselt installida ja iga kasutaja tuvastatakse profiili järgi (NIX-i poes olevate pakettide kogu, mis kuvatakse kasutaja PATH-is).

Kui üks kasutaja on paketi installinud ja kui teine kasutaja üritab sama paketti installida, siis seda paketti teist korda ei laadita ega laadita alla.

Praegu toetab see Linuxi (i686, x86_64) ja Mac OS X-i (x86_64). Kuid see on üsna kaasaskantav, saate seda proovida enamikul platvormidel, mis toetavad POSIX-lõime ja millel on C ++ 11 kompilaator.

Selles artiklis näitame, kuidas installida (mitme kasutaja režiimis) ja kasutada Nixi paketihaldurit Linuxis. Arutleme mõnede pakettide haldamise põhiülesannete üle seoses sagedamini kasutatavate tööriistadega.

Nixi pakettihalduri installimine Linuxi

Installime Nixi uusima versiooni (kirjutamise ajal v2.1.3) mitme kasutaja režiimis. Õnneks on olemas ettevalmistatud installiskript, mida saate oma shellist tavalise kasutajana käivitada, kasutades oma süsteemis järgmist curl käsku.

$ sh <(curl https://nixos.org/nix/install) --daemon

Ülaltoodud käsu käivitamisel laaditakse alla uusim nixi binaarne tarball ja maandute mitme kasutaja nixi installiekraanil, nagu ekraanipildil näidatud.

Installiprotsessi toimumise üksikasjaliku loendi kuvamiseks tippige y ja vajutage sisestusklahvi. Kui olete rahul ja olete valmis jätkama, tippige y ja vajutage sisestusklahvi.

Skript kutsub vajadusel sudo käsu mitu korda. Peate lubama tal sudo kasutada, vastates y ja vajutades Enter.

Seejärel käivitab installer mõned testid ja genereerib Nixi konfigureerimisaruande, loob kasutajate ID-de 30001 ja 30032 vahel järk-kasutajad ning grupi ID-ga 30000. Kui soovite, jätkamiseks sisestage y . See seab erinevatele kasutajatele kasutajatele ülesehitusgrupid, teeb Nixi kataloogi põhistruktuuri.

See muudab faili/etc/bashrc, (ja/etc/zshrc zsh jaoks), kui need on olemas. Pange tähele, et see varundab kõigepealt mainitud failid laiendiga .backup-before-nix ja installer loob ka faili /etc/profile.d/nix.sh.

Installer seadistab ka teenuse nix-daemon ja pesa nix-daemon, laadib nix-daemoni jaoks systemd-üksuse ja käivitab kaks eelmainitud teenust.

Kui installimine on lõpule jõudnud, peate Nixi kasutamise alustamiseks avama uue terminaliakna. Teise võimalusena sulgege ja avage oma kest hiljutiste muudatuste rakendamiseks. Seejärel hankige fail allikast /etc/profile.d/nix.sh (kuna see pole kesta käivitusfail, siis uue kesta avamine seda ei hanki).

$ source /etc/profile.d/nix.sh

Järgmisena käivitage järgmine käsk, et alla laadida mõned teed Nixi toimimiseks vajalikul ametlikul veebisaidil. Pärast kõigi teede allalaadimist ja õigesse asukohta kopeerimist näete süsteemi ja nixi installitüübi kokkuvõtet, nagu ekraanipildil näidatud.

$ nix-shell -p nix-info --run "nix-info -m"

Nixi pakettihalduri kasutamine Linuxis

Nixi all teostab pakettide haldust utiliit nix-env. Seda kasutatakse pakettide installimiseks, täiendamiseks ja eemaldamiseks/kustutamiseks ning päringute tegemiseks, millised paketid on installitud või on installimiseks saadaval.

Kõik paketid asuvad Nixi kanalil, mis on URL, mis osutab hoidlale, mis sisaldab nii Nixi avaldiste kogu kui ka binaarse vahemälu kursorit.

Vaikekanal on Nixpkgs ja tellitud kanalite loend salvestatakse ~/.nix-kanalitesse, saate need loetleda järgmise käsu abil (ükski väljund ei tähenda kanaleid).

$ nix-channel --list

Nixi kanali lisamiseks kasutage järgmist käsku.

$ nix-channel --add https://nixos.org/channels/nixpkgs-unstable

Enne pakettide installimist värskendage Nixi kanalit; see on sarnane apt-värskenduse käivitamisega APT paketihalduris.

$ nix-channel --update

Järgmise käsu abil saate küsida, milliseid pakette saab installida.

$ nix-env -qa

Selles näites installime grepi, et leida pakett, mida on võimalik installida, nagu näidatud.

$ nix-env -qa | grep "apache-tomcat"

Paketi installimiseks kasutage järgmist käsku, määrates paketi versiooni, näiteks apache-tomcat-9.0.2.

$ nix-env -i apache-tomcat-9.0.2

Kohalikus süsteemis hoiab Nix pakette Nixi poes, mis on vaikimisi kataloog/nix/store, kus igal paketil on oma ainulaadne alamkataloog. Näiteks paketid apache-tomcat on salvestatud:

/nix/store/95gmgnxlrcpkhlm00fa5ax8kvd6189py-apache-tomcat-9.0.2

Sel teel on juhuslikud märgid 95gmgnxlrcpkhlm00fa5ax8kvd6189py paketi kordumatu tunnus, mis võtab arvesse kõiki selle sõltuvusi.

Installitud pakette saate loetleda järgmise käsuga.

$ nix-env -q

Apache-tomcati paketi värskendamiseks võite kasutada värskenduslülitit -u , nagu näidatud.

$ nix-env -u apache-tomcat

Kui soovite apache-tomcati eemaldada/kustutada, kasutage lippu -e . Siin ei kustutata paketti süsteemist kohe, vaid see muudetakse kasutamata. See on kasulik, kuna soovite tagasi minna või see võib olla teiste kasutajate profiilides.

$ nix-env -e apache-tomcat

Pärast pakendi eemaldamist saate nix-collect-garbage utiliidiga prügi koguda.

$ nix-collect-garbage

Nixi paketihalduri eemaldamine Linuxis

Nixi desinstallimiseks eemaldage kõik nixiga seotud failid korraga.

$ sudo rm -rf /etc/profile/nix.sh /etc/nix /nix ~root/.nix-profile ~root/.nix-defexpr ~root/.nix-channels ~/.nix-profile ~/.nix-defexpr ~/.nix-channels

Systemd-süsteemides käivitage kõik nixiga seotud teenuste peatamiseks ja keelamiseks järgmised käsud.

$ sudo systemctl stop nix-daemon.socket
$ sudo systemctl stop nix-daemon.service
$ sudo systemctl disable nix-daemon.socket
$ sudo systemctl disable nix-daemon.service
$ sudo systemctl daemon-reload

Lisaks peate nendest failidest eemaldama kõik viited Nixile:/etc/profile,/etc/bashrc ja/etc/zshrc.

Lisateavet leiate ülalnimetatud utiliitide manulehtedelt, mida oleme vaadanud.

$ man nix-channel
$ man nix-env

Nixi paketihalduri dokumentatsiooni leiate projekti veebisaidilt: https://nixos.org/nix/.

Nix on puhtalt toimiv paketihaldur, mis on loodud usaldusväärseks ja reprodutseeritavaks pakettide haldamiseks. See pakub huvitavat paketihalduse kontseptsiooni, mis erineb Linuxi tavaliselt kasutatavatest tööriistadest nagu APT ja paljudest teistest.

Selles artiklis näitasime, kuidas nixi installida mitme kasutaja režiimis, ja arutasime, kuidas Nixiga paketihaldust teha. Jagage oma mõtteid meiega või küsige küsimusi alloleva kommentaarivormi kaudu. Lõpuks selgitame ühes järgmises artiklis veel Nixi paketihalduse käske. Seni püsige ühenduses.