Kaj počne NixOS Package Manager?
Večina upraviteljev paketov uporablja datoteko, ki vsebuje izvršljivo ali izvorno kodo. Nato izračunajo, kaj potrebuje v sistemu, in se nato prepričajo, da obstaja. V Nixu stvari delujejo zelo podobno. Velika razlika je v tem, da Nix ustvari vse datoteke in jih po potrebi prevede, nato pa jih postavi na eno mesto; trgovina nix. Prvo vprašanje, ki ga imate, je lahko: »Ali datoteke ne bodo imele istega imena?”Sistem se temu izogne tako, da ima po en imenik za vsako različico IN poimenuje vse datoteke s zgoščeno. Da se aplikacija "počuti kot doma", se nato vse odvisnosti z običajnimi simbolnimi povezavami povežejo s svojimi pravilnimi imeniki. Profil spremlja, katero različico izvaja vsak uporabnik.
Namestitve uporabnika NixOS
S tem sistemom lahko v imeniku vsakega uporabnika namestite različne različice. Če so enaki pri več uporabnikih, lahko skrbnik dovoli Nixu, da znova poveže binarne datoteke, tako da hkrati obstaja samo eden. To je koristno pri varčevanju prostora na disku. Za vsako različico paketa lahko ustvarite tudi posebna okolja. To je še posebej koristno, če želite preizkusiti novo različico ali razviti programsko opremo.
Namestitev za skupno distribucijo
Za najpogostejše platforme lahko namestite Nix, upravitelja paketov s preprostim skriptom. Ta skript je na voljo na spletnem mestu Nix. Skript bo potreboval dostop korenskega uporabnika, če pa ste zelo pozorni na varnost, ga preberite, preden ga uporabite. Če se želite izogniti uporabi root v skriptu, preprosto ustvarite imenik / nix v vašem sistemu.
$ sh <(curl -L https://nixos.org/nix/install)Če nimate korenskega dostopa ali ste zelo previdni, lahko Nix nastavite kot skrbnika paketov samo za uporabnike.
$ sh <(curl -L https://nixos.org/nix/install) -no-daemonTa binarna datoteka deluje dobro za večino, če ne za vse distribucije. Platforme so x8664, tj?86, aarch64 in x8664-darwin, ki pokrivajo skoraj vse razpoložljive platforme. Če uporabljate katero koli drugo platformo, lahko verjetno uporabite izvorno kodo in sestavite svojo. Ko je namestitev končana, boste imeli kup novih ukazov.
Dodajanje vašega prvega programa v NixOS
Če želite namestiti programsko opremo in določiti, kdaj jo je mogoče uporabljati, imate nix-env. Možnost namestitve (-i) je najpogostejša, saj jo vedno uporabljate in kot argument daste paket.
$ nix-env -i firefoxTo je videti enako kot v drugih distribucijah, prav tako tudi argument poizvedbe. Namestitev pa bo trajala nekaj časa. Razlog je v tem, da mora prevesti programsko opremo, razen če v predpomnilniku Nix ni vnaprej pripravljene različice. Doseganje predpomnilnika tudi ni vedno zelo hitro. Obstaja razlika, ki bi jo morali upoštevati; lahko izberete različico! Če želite posebno različico, morate poiskati, katere so na voljo z uporabo regularnih izrazov.
$ nix-env -qa 'firefox.* 'Prejeli boste seznam vseh razpoložljivih paketov. Namestite ga lahko na enak način, vendar z uporabo vrednosti na seznamu.
$ nix-env -install 'firefox-78.4.0ser '-preserve-namestilTo lahko propade, če že imate nameščeno različico. Možnost '-preserve-installed' ne bo izbrisala nameščene različice. Na koncu lahko dobite dve različici iste prioritete, ki ju lahko popravite z nastavitvijo prioritete.
$ nix-env -set-flag prioriteta 2 'firefox-82.0.2 'Zdaj boste zagnali staro različico, ko boste naslednjič zagnali Firefox. Če želite preklopiti, katerega zaženete, lahko ustrezno nastavite prednost. Lahko tudi zaženete lupino, da izberete binarno datoteko. To je možnost razvijalca, ukaz pa je nix-shell.
Posodabljanje NixOS-a
Ko imate zbirko programske opreme, želite ostati na tekočem. Kot vedno uporabljate isti ukaz z argumentom. Kanal pa morate tudi redno posodabljati. Ukaz je nix-channel.
$ nix-channel -updateTo prebere trenutne različice vseh razpoložljivih paketov. Po tem lahko začnete nadgrajevati svojo programsko opremo z nix-env.
$ nix-env -upgradeTakšna nadgradnja bo nadgradila vašo staro različico programske opreme. V tem primeru bo stari Firefox nadomeščen z najnovejšo različico. Tega si morda ne želite iz kakršnega koli razloga, običajno zaradi razvoja.
Odstranjevanje aplikacij iz NixOS-a
Odstranjevanje aplikacij je prav tako preprosto, z majhnim opozorilom. Ukaz za odstranitev ne odstrani nobene aplikacije.
$ nix-env -uninstall 'firefox-78.4.0ser 'Ta ukaz bo odstranil povezave do trenutne gradnje te različice Firefoxa. Vse datoteke bodo vedno ostale na disku. Na voljo so te različice za vrnitev. Povrat pomeni, da se vrnete k uporabi stare različice. To je lahko koristno, če ste preizkusili najnovejše in imate nepredvidene težave.
$ nix-env -rollbackPovrate celotno generacijo, kar pomeni vse programe, ki so bili nadgrajeni od zadnje generacije. Možnost zažene dva ukaza; seznam in nato preklopi na stare generacije. Vsi nameščeni paketi obstajajo v generaciji na disku.
NixOS Roll-back in čiščenje
Funkcija vračanja bo povzročila, da bodo stare različice porabile veliko prostora na disku. To lahko očistite (to morate očistiti!). Ko imate dovolj dolgo obdobje, lahko po lastni izbiri očistite tudi stare generacije, da prihranite prostor na disku.
$ nix-env -delete-generacijS tem ukazom izbrišete vse generacije, razen dveh zadnjih. Na seznamu lahko greste naprej in nazaj z bolj zapletenimi parametri, da zapustite določeno generacijo, ki je najbolje delovala za vas. Če imate veliko preskusnih ali razvojnih projektov, ki za preizkušanje potrebujejo veliko različic, uporabite razporejeno odstranitev vseh starih generacij.
Z namestitvijo upravitelja paketov Nix je na voljo preprost skript za čiščenje generacij.
$ nix-zbiraj-smetiPrav tako morate nastaviti zbiralnik tako, da se samodejno zažene z uporabo systemd ali drugih sistemov.
Zaključek
Upravitelj paketov Nix je zmogljiv sistem, s katerim lahko v računalniku vodite zapletena razvojna okolja. Uporabite ga lahko tudi za vzdrževanje urejenosti programske opreme in preprost način za obnovitev na novem računalniku, če pride do katastrofe zrušitve diska.