NixOS

Hvordan bruke NixOS Package Manager?

Hvordan bruke NixOS Package Manager?
NixOS pakkebehandler er et eget system. Du kan bruke den under hvilken som helst Linux-distribusjon.

Hva gjør NixOS Package Manager?

De fleste pakkeforvaltere bruker en fil som inneholder kjørbar eller kildekode. De beregner deretter hva det trenger på systemet og sørger for at det eksisterer. I Nix fungerer ting veldig likt. Den store forskjellen er at Nix oppretter alle filene, og kompilerer dem om nødvendig, og deretter plasserer dem på ett sted; nix-butikken. Det første spørsmålet du har kan være, "Vil ikke filene ha samme navn?”Systemet unngår dette ved å ha en katalog for hver versjon OG navngi alle filer med en hash. For å få applikasjonen til å føle seg hjemme, blir alle avhengigheter koblet til de riktige katalogene ved hjelp av vanlige symlinker. En profil holder oversikt over hvilken versjon hver bruker kjører.

NixOS brukerinstallasjoner

Med dette systemet kan du ha forskjellige versjoner installert i hver brukerkatalog. Hvis de er de samme hos flere brukere, kan administratoren la Nix koble til binærfiler på nytt, så bare en eksisterer om gangen. Dette er nyttig for å spare diskplass. Du kan også lage spesifikke miljøer for hver versjon av pakken. Dette er spesielt nyttig når du vil teste en ny versjon eller utvikle programvare.

Installere for vanlig distribusjon

For de vanligste plattformene kan du installere Nix, pakkebehandleren med et enkelt skript. Dette skriptet er tilgjengelig på Nix-nettstedet. Skriptet trenger root-brukeradgang, men hvis du er veldig sikkerhetsbevisst, bør du lese skriptet før du bruker det. Hvis du vil unngå å bruke root i skriptet, er det bare å opprette / nix-katalogen på systemet ditt.

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

Hvis du ikke har rottilgang eller bare er veldig forsiktig, kan du ha Nix som en pakkeadministrator som bare er bruker.

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

Denne binæren fungerer bra for de fleste, om ikke alle, distribusjoner. Plattformer er x8664, i?86, aarch64 og x8664-darwin, som dekker nesten alle tilgjengelige plattformer. Hvis du bruker andre plattformer, kan du sannsynligvis bruke kildekoden og bygge din egen. Når installasjonen er ferdig, vil du ha en haug med nye kommandoer.

Legge til ditt første program til NixOS

For å installere programvare og angi når den kan brukes, har du nix-env. Installasjonsalternativet (-i) er det vanligste siden du alltid bruker det og legger en pakke som argument.

$ nix-env -i Firefox

Dette ser ut som i andre distribusjoner, det gjør også spørringsargumentet. Installasjonen vil imidlertid ta litt tid. Årsaken er at den må kompilere programvaren med mindre det er en forhåndskompilert versjon i Nix Cache. Det er ikke alltid veldig raskt å nå hurtigbufferen. Det er en forskjell som du bør merke deg; du kan velge en versjon! Hvis du vil ha en spesiell versjon, må du finne hvilke som er tilgjengelige ved å bruke regulære uttrykk.

$ nix-env -qa 'firefox.* '

Du vil motta en liste over alle tilgjengelige pakker. Du kan installere det på samme måte, men ved å bruke verdien i listen.

$ nix-env -install 'firefox-78.4.0ser '-reserver-installert

Dette kan mislykkes hvis du allerede har en installert versjon. Alternativet '-preserve-installed' sletter ikke den installerte versjonen. Du kan ende opp med to versjoner av samme prioritet, som du kan fikse ved å sette prioriteten.

$ nix-env -set-flag prioritet 2 'firefox-82.0.2 '

Nå vil du kjøre den gamle versjonen neste gang du starter Firefox. For å bytte hvilken du kjører, kan du angi prioriteten tilsvarende. Du kan også starte et skall for å velge en binær. Dette er et utvikleralternativ, og kommandoen er nix-shell.

Oppdaterer NixOS

Når du har en samling programvare, vil du holde deg oppdatert. Samme som alltid, du bruker den samme kommandoen med et argument. Men du må også holde kanalen oppdatert. Kommandoen er nix-kanal.

$ nix-kanal -oppdatering

Dette leser de gjeldende versjonene av alle tilgjengelige pakker. Etter det kan du begynne å oppgradere programvaren din med nix-env.

$ nix-env -oppgradering

En oppgradering som denne vil oppgradere den gamle versjonen av programvaren. I dette tilfellet vil den gamle Firefox erstattes med den nyeste versjonen. Du vil kanskje ikke ha det av en eller annen grunn, vanligvis utvikling.

Fjerner applikasjoner fra NixOS

Fjerning av applikasjoner er like enkelt, med en liten advarsel. Ingen applikasjoner blir fjernet med en fjernkommando.

$ nix-env -installere 'firefox-78.4.0ser '

Denne kommandoen fjerner koblingene til den nåværende versjonen av denne versjonen av Firefox. Alle filene forblir alltid på disken. Du har disse versjonene tilgjengelig for å gjøre en tilbakeføring. En tilbakestilling betyr at du går tilbake til å bruke den gamle versjonen. Dette kan være nyttig hvis du har prøvd det nyeste og det har uforutsette problemer.

$ nix-env -rollback

Du tilbakestiller en hel generasjon, noe som betyr alle programmene som ble oppgradert siden forrige generasjon. Alternativet kjører to kommandoer; den listen og bytter deretter til den gamle generasjonen. Alle installerte pakker eksisterer i en generasjon på disk.

NixOS tilbakeslag og rydding

Gjenopprettingsfunksjonen vil føre til at mye diskplass brukes av gamle versjoner. Du kan rydde opp i dette (du må rydde opp i dette!). Når du har hatt en lang nok periode, etter eget valg, kan du også rydde opp i disse gamle generasjonene for å spare diskplass.

$ nix-env -delete-generasjoner gamle

Med denne kommandoen sletter du alle generasjoner unntatt de to siste. Du kan gå frem og tilbake i listen med mer komplekse parametere for å forlate den spesifikke generasjonen som fungerte best for deg. Med mindre du har mange test- eller utviklingsprosjekter som trenger mange versjoner for testing, bør du bruke en planlagt fjerning av alle gamle generasjoner.

Et enkelt skript for å holde generasjonene rene kommer med en installasjon av Nix-pakkebehandling.

$ nix-samle-søppel

Du bør også sette opp samleren til å kjøre automatisk ved hjelp av systemd eller andre systemer.

Konklusjon

Nix pakkebehandling er et kraftig system som kan få deg til å kjøre komplekse utviklingsmiljøer på maskinen din. Du kan også bruke den til å holde programvaren din ryddig og ha en enkel måte å gjenopprette på en ny maskin, hvis katastrofen til en diskkrasj skulle oppstå.

SuperTuxKart for Linux
SuperTuxKart er en flott tittel designet for å gi deg Mario Kart-opplevelsen gratis på Linux-systemet ditt. Det er ganske utfordrende og morsomt å spi...
Kjemp om Wesnoth-opplæringen
Kampen om Wesnoth er et av de mest populære open source-strategispillene du kan spille på dette tidspunktet. Ikke bare har dette spillet vært i utvikl...
0 A.D. Opplæringen
Ut av de mange strategispillene der ute, 0 A.D. klarer å skille seg ut som en omfattende tittel og et veldig dypt, taktisk spill til tross for å være ...