„Nix“ - grynai funkcinis „Linux“ paketų tvarkytuvas


„Nix“ yra galinga, visiškai funkcionali paketų valdymo sistema, sukurta patikimam ir atkuriamam paketų valdymui, išleista pagal GNU LGPLv2.1 sąlygas. Tai yra pagrindinė „NixOS“ paketų valdymo sistema - mažiau žinomas „Linux“ paskirstymas.

„Nix“ siūlo atominius atnaujinimus ir grąžinimus, kelias paketų diegimo versijas, kelių vartotojų paketų valdymą ir lengvą paketo komponavimo aplinkų nustatymą, neatsižvelgiant į tai, kokias programavimo kalbas ir įrankius naudoja kūrėjas.

Pagal „Nix“ paketai yra sukurti iš funkcinės paketų kalbos, vadinamos „Nix išraiškomis“. Šis funkcinis paketų valdymo būdas garantuoja, kad įdiegus ar atnaujinus vieną paketą negalima sugadinti kitų paketų.

„Nix“ taip pat turi daugelio vartotojų palaikymą, o tai reiškia, kad įprasti (arba neprivilegijuoti) sistemos vartotojai gali saugiai įdiegti paketus, o kiekvienas vartotojas atpažįstamas pagal profilį („Nix“ parduotuvėje esančių paketų rinkinys, rodomas vartotojo PATH).

Jei vienas vartotojas įdiegė paketą, jei kitas vartotojas bando įdiegti tą patį paketą, paketas nebus sukurtas ar atsisiųstas antrą kartą.

Šiuo metu jis palaiko „Linux“ („i686“, „x86_64“) ir „Mac OS X“ (x86_64). Tačiau jis yra gana nešiojamas, jį galite išbandyti daugumoje platformų, palaikančių POSIX gijas ir turinčios kompiliatorių C ++ 11.

Šiame straipsnyje mes parodysime, kaip įdiegti (kelių vartotojų režimu) ir naudoti „Nix“ paketų tvarkyklę sistemoje „Linux“. Aptarsime keletą pagrindinių paketų valdymo užduočių, susijusių su dažniausiai naudojamais įrankiais.

Kaip įdiegti „Nix“ paketų tvarkyklę sistemoje „Linux“

Įdiegsime naujausią „Nix“ versiją (v2.1.3 rašymo metu) kelių vartotojų režimu. Laimei, yra parengtas diegimo scenarijus, kurį galite paleisti iš savo apvalkalo kaip įprastas vartotojas, naudodamiesi tokia „curl“ komanda jūsų sistemoje.

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

Vykdydami pirmiau pateiktą komandą, atsisiųsite naujausią „nix“ dvejetainį vartotoją ir pateksite į kelių vartotojų „nix“ diegimo ekraną, kaip parodyta ekrano kopijoje.

Norėdami peržiūrėti išsamų diegimo proceso sąrašą, įveskite y ir paspauskite Enter. Jei esate patenkintas ir pasirengęs tęsti, įveskite y ir paspauskite Enter.

Scenarijus prireikus daug kartų iškvies sudo komandą. Turite leisti jam naudoti sudo, atsakydami į y ir paspausdami Enter.

Tada diegimo programa atliks keletą bandymų ir sugeneruos „Nix“ konfigūracijos ataskaitą, sukurs sukūrimo vartotojus tarp vartotojo ID 30001 ir 30032 ir grupę su grupės ID 30000. Įveskite y ir tęskite, kai būsite paraginti. Jis sukurs skirtingų versijų vartotojų versijų grupes, sudarys pagrindinę „Nix“ katalogų struktūrą.

Jis modifikuos failą/etc/bashrc, (ir/etc/zshrc zsh), jei jie yra. Atkreipkite dėmesį, kad pirmiausia jis sukuria minėtų failų atsarginę kopiją su plėtiniu .backup-before-nix, o diegimo programa taip pat sukuria failą /etc/profile.d/nix.sh.

Diegimo programa taip pat sukurs „nix-daemon“ ir „nix-daemon“ lizdų tarnybą, įkels „systemd“ bloką „nix-daemon“ ir paleis abi minėtas paslaugas.

Baigę diegti, turite atidaryti naują terminalo langą, kad pradėtumėte naudoti „Nix“. Arba uždarykite ir atidarykite savo apvalkalą, kad pritaikytumėte naujausius pakeitimus. Tada iškelkite failą /etc/profile.d/nix.sh (nes tai nėra „shell“ paleisties failas, atidarius naują apvalkalą jo nebus.

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

Tada paleiskite šią komandą, norėdami atsisiųsti keletą kelių iš oficialios projekto svetainės, reikalingų „Nix“ veikimui. Kai visi keliai bus atsisiųsti ir nukopijuoti į teisingas vietas, pamatysite sistemos ir „nix“ diegimo tipo suvestinę, kaip parodyta ekrano kopijoje.

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

Kaip naudoti „Nix“ paketų tvarkyklę sistemoje „Linux“

Pagal „Nix“ paketų valdymą atlieka „nix-env“ įrankis. Jis naudojamas diegiant, atnaujinant ir pašalinant/ištrinant paketus bei pateikiant užklausą, kokie paketai yra įdiegti ar kuriuos galima įdiegti.

Visi paketai yra „Nix“ kanale, kuris yra URL, nurodantis į saugyklą, kurią sudaro tiek „Nix“ išraiškų rinkiniai, tiek žymeklis į dvejetainę talpyklą.

Numatytasis kanalas yra „Nixpkgs“, o prenumeruojamų kanalų sąrašas saugomas ~/.nix-kanaluose, juos galite išvardyti naudodami šią komandą (be išvesties reiškia, kad nėra kanalų).

$ nix-channel --list

Norėdami pridėti „Nix“ kanalą, naudokite šią komandą.

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

Prieš diegdami bet kokius paketus, pradėkite atnaujindami „Nix“ kanalą; tai yra panašu į apt atnaujinimo vykdymą naudojant APT paketų tvarkyklę.

$ nix-channel --update

Galite paklausti, kokius paketus galima įdiegti, naudodami šią komandą.

$ nix-env -qa

Šiame pavyzdyje įdiegsime „grep“, kad rastume paketą, kurį galima įdiegti, kaip parodyta.

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

Norėdami įdiegti paketą, naudokite šią komandą nurodydami paketo versiją, pavyzdžiui, apache-tomcat-9.0.2.

$ nix-env -i apache-tomcat-9.0.2

Vietinėje sistemoje „Nix“ saugo paketus „Nix“ parduotuvėje, kuri pagal numatytuosius nustatymus yra katalogas/nix/store, kur kiekvienas paketas turi savo unikalų pakatalogį. Pavyzdžiui, „apache-tomcat“ paketai saugomi:

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

Šiame kelyje atsitiktiniai simboliai 95gmgnxlrcpkhlm00fa5ax8kvd6189py yra unikalus paketo identifikatorius, kuris atsižvelgia į visas jo priklausomybes.

Įdiegtus paketus galite išvardyti naudodami šią komandą.

$ nix-env -q

Norėdami atnaujinti apache-tomcat paketą, galite naudoti atnaujinimo jungiklį -u , kaip parodyta.

$ nix-env -u apache-tomcat

Jei norite pašalinti/ištrinti apache-tomcat, naudokite vėliavą -e . Čia paketas iš sistemos neištrinamas iš karto, jis tik padaromas nenaudojamas. Tai naudinga, nes norite sugrąžinti arba gali būti kitų vartotojų profiliuose.

$ nix-env -e apache-tomcat

Pašalinę pakuotę, galite atlikti šiukšlių surinkimą naudodami nix-collect-šiukšlių priemonę.

$ nix-collect-garbage

Kaip pašalinti „Nix“ paketų tvarkyklę sistemoje „Linux“

Norėdami pašalinti „Nix“, vienu metu pašalinkite visus susijusius „nix“ failus.

$ 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

Sistemose, kuriose yra systemd, vykdykite šias komandas, kad sustabdytumėte visas su nix susijusias paslaugas ir jas išjungtumėte.

$ 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

Be to, turite pašalinti visas nuorodas į „Nix“ šiuose failuose:/etc/profile,/etc/bashrc ir/etc/zshrc.

Norėdami gauti daugiau informacijos, žr. Aukščiau nurodytų komunalinių paslaugų puslapius, kuriuos mes peržiūrėjome.

$ man nix-channel
$ man nix-env

„Nix Package Manager“ dokumentaciją rasite projekto svetainėje: https://nixos.org/nix/.

„Nix“ yra grynai funkcionalus paketų tvarkytuvas, sukurtas patikimam ir atkuriamam paketų valdymui. Tai pateikia įdomią paketų valdymo koncepciją, labai skiriasi nuo dažniausiai naudojamų „Linux“ įrankių, tokių kaip APT ir daugelis kitų.

Šiame straipsnyje mes parodėme, kaip įdiegti nix kelių vartotojų režimu ir aptarėme, kaip atlikti paketų valdymą naudojant „Nix“. Pasidalykite savo mintimis su mumis arba užduokite klausimų naudodamiesi žemiau esančia komentaro forma. Galiausiai būsimame straipsnyje paaiškinsime daugiau „Nix“ paketų valdymo komandų. Iki tol palaikykite ryšį.