Wat doet NixOS Package Manager??
De meeste pakketbeheerders gebruiken een bestand dat het uitvoerbare bestand of de broncode bevat. Ze berekenen dan wat het nodig heeft op het systeem en controleren dan of het bestaat. In Nix werken de dingen op dezelfde manier. Het grote verschil is dat Nix alle bestanden aanmaakt en ze indien nodig compileert, en ze vervolgens op één plaats zet; de nix-store. De eerste vraag die u heeft, kan zijn: "Zullen de bestanden niet dezelfde naam hebben?"?Het systeem vermijdt dit door voor elke versie één map te hebben EN alle bestanden een hash te geven. Om de applicatie "thuis te laten voelen", worden alle afhankelijkheden vervolgens gekoppeld aan hun juiste mappen met behulp van gewone symlinks. Een profiel houdt bij welke versie elke gebruiker gebruikt.
NixOS-gebruikersinstallaties
Met dit systeem kunt u verschillende versies installeren in de directory van elke gebruiker. Als ze bij meerdere gebruikers hetzelfde zijn, kan de beheerder Nix binaire bestanden opnieuw laten koppelen, zodat er maar één tegelijk bestaat. Dit is handig om schijfruimte te besparen. U kunt ook specifieke omgevingen maken voor elke versie van het pakket. Dit is vooral handig als u een nieuwe versie wilt testen of software wilt ontwikkelen.
Installeren voor algemene distributie
Voor de meeste gangbare platforms kun je Nix installeren, de pakketbeheerder met een eenvoudig script. Dit script is beschikbaar op de Nix-website. Het script heeft root-gebruikerstoegang nodig, maar als je erg veiligheidsbewust bent, moet je het script lezen voordat je het gebruikt. Als u root in het script niet wilt gebruiken, maakt u gewoon de /nix-map op uw systeem aan.
$ sh <(curl -L https://nixos.org/nix/install)Als je geen root-toegang hebt of gewoon super voorzichtig bent, kun je Nix gebruiken als pakketbeheerder voor alleen gebruikers.
$ sh <(curl -L https://nixos.org/nix/install) -no-daemonDit binaire bestand werkt goed voor de meeste, zo niet alle distributies. Platforms zijn x8664, i?86, aarch64 en x8664-darwin, die bijna alle beschikbare platforms dekken. Als u andere platforms gebruikt, kunt u waarschijnlijk de broncode gebruiken en uw eigen maken. Wanneer de installatie is voltooid, heb je een aantal nieuwe opdrachten.
Je eerste programma toevoegen aan NixOS
Om software te installeren en in te stellen wanneer deze kan worden gebruikt, heb je nix-env. De installatieoptie (-i) is de meest voorkomende omdat je deze altijd gebruikt en een pakket als argument plaatst put.
$ nix-env -i firefoxDit ziet er hetzelfde uit als in andere distributies, net als het query-argument. De installatie zal echter enige tijd duren. De reden is dat het de software moet compileren, tenzij er een voorgecompileerde versie in de Nix Cache zit. Het bereiken van de cache is ook niet altijd even snel. Er is een verschil waar u rekening mee moet houden; je kunt een versie kiezen! Als je een speciale versie wilt, moet je met reguliere expressies zoeken welke beschikbaar zijn.
$ nix-env -qa 'firefox'.*'U ontvangt een lijst met alle beschikbare pakketten. Je kunt het op dezelfde manier installeren, maar met de waarde in de lijst.
$ nix-env -install 'firefox-78'.4.0ser' -preserve-geïnstalleerdDit kan mislukken als je al een geïnstalleerde versie hebt. Optie '-preserve-installed' zal de geïnstalleerde versie niet wissen. U kunt eindigen met twee versies van dezelfde prioriteit, die u kunt oplossen door de prioriteit in te stellen.
$ nix-env -set-flag prioriteit 2 'firefox-82'.0.2'Nu start u de oude versie de volgende keer dat u Firefox start. Om te wisselen tussen welke je draait, kun je de prioriteit dienovereenkomstig instellen. Je kunt ook een shell starten om een binair bestand te kiezen. Dit is een optie van een ontwikkelaar en het commando is nix-shell.
NixOS bijwerken
Als je eenmaal een verzameling software hebt, wil je op de hoogte blijven. Hetzelfde als altijd, je gebruikt hetzelfde commando met een argument. Maar je moet het kanaal ook up-to-date houden. Het commando is nix-channel.
$ nix-channel -updateDit leest de huidige versies van alle beschikbare pakketten. Daarna kunt u beginnen met het upgraden van uw software met nix-env.
$ nix-env -upgradeEen upgrade als deze zal je oude versie van de software upgraden. In dit geval wordt de oude Firefox vervangen door de nieuwste versie. Misschien wil je dit om welke reden dan ook niet, meestal ontwikkeling.
Applicaties verwijderen uit NixOS
Het verwijderen van applicaties is even eenvoudig, met een klein voorbehoud. Er worden geen applicaties verwijderd door een verwijderopdracht.
$ nix-env - verwijder 'firefox-78'.4.0ser'Met deze opdracht worden de koppelingen naar de huidige versie van deze versie van Firefox verwijderd. Alle bestanden blijven altijd op schijf. Je hebt deze versies beschikbaar om een rollback uit te voeren. Een rollback betekent dat u teruggaat naar het gebruik van de oude versie. Dit kan handig zijn als je het nieuwste hebt geprobeerd en het onvoorziene problemen heeft.
$ nix-env -rollbackJe draait een hele generatie terug, dat wil zeggen alle programma's die zijn geüpgraded sinds de laatste generatie. De optie voert twee opdrachten uit; die lijst en schakelt dan over naar die oude generaties. Alle geïnstalleerde pakketten bestaan in een generatie op schijf.
NixOS terugdraaien en opruimen
De rollback-functie zal ertoe leiden dat veel schijfruimte wordt gebruikt door oude versies. U kunt dit opruimen (u moet dit opruimen)!). Als je een periode hebt gehad die lang genoeg is, kun je naar eigen keuze ook deze oude generaties opschonen om schijfruimte te besparen.
$ nix-env -verwijder-generaties oudMet dit commando verwijder je alle generaties behalve de laatste twee. U kunt heen en weer gaan in de lijst met complexere parameters om de specifieke generatie te verlaten die het beste voor u werkte. Tenzij je veel test- of ontwikkelingsprojecten hebt die veel versies nodig hebben om te testen, moet je een geplande verwijdering van alle oude generaties gebruiken.
Een eenvoudig script om uw generaties schoon te houden, wordt geleverd met een installatie van Nix-pakketbeheerder.
$ nix-collect-garbageU moet het verzamelprogramma ook zo instellen dat het automatisch wordt uitgevoerd met systemd of andere systemen.
Conclusie
Nix-pakketbeheerder is een krachtig systeem waarmee u complexe ontwikkelomgevingen op uw machine kunt laten draaien. Je kunt het ook gebruiken om je software netjes te houden en een eenvoudige manier te hebben om te herstellen op een nieuwe machine, mocht de catastrofe van een schijfcrash zich voordoen.