Hva gjør Nixos Package Manager?
De fleste pakkeledere bruker en fil som inneholder den kjørbare eller kildekoden. De beregner deretter hva det trenger på systemet og sørger for at det eksisterer. I Nix fungerer ting veldig lignende. Den store forskjellen er at Nix oppretter alle filene, og kompilerer dem om nødvendig, og deretter legg dem på ett sted; Nix-butikken. Det første spørsmålet du har kan være, “Vil filene ikke ha samme navn?”Systemet unngår dette ved å ha en katalog for hver versjon og navngi alle filer med en hasj. For å få applikasjonen til "Feel At Home", er alle avhengigheter koblet til deres riktige kataloger ved å bruke vanlige symlink. En profil holder oversikt over hvilken versjon hver bruker kjører.
NIXOS -brukerinstallasjoner
Med dette systemet kan du ha forskjellige versjoner installert i hver brukers katalog. Hvis de er de samme i flere brukere, kan administratoren la Nix-koblingsbinarier, så bare en eksisterer om gangen. Dette er nyttig for å spare diskplass. Du kan også opprette 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 fleste vanlige plattformer kan du installere Nix, Package Manager med et enkelt skript. Dette skriptet er tilgjengelig på NIX -nettstedet. Skriptet trenger tilgang til rotbruker, men hvis du er veldig sikkerhetsbevisst, bør du lese skriptet før du bruker det. Hvis du vil unngå å bruke rot i skriptet, er det bare å lage /nix -katalogen på systemet ditt.
$ sh <(curl -L https://nixos.org/nix/install)
Hvis du ikke har noen rottilgang eller bare super forsiktig, kan du ha NIX som brukerpakkebehandler.
$ sh <(curl -L https://nixos.org/nix/install) -no-daemon
Denne binære 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 et argument.
$ nix -env -i Firefox
Dette ser ut som det samme som i andre distribusjoner, det samme gjør spørringsargumentet. Installasjonen vil ta litt tid, skjønt. Årsaken er at den må kompilere programvaren med mindre det er en forhåndskompilert versjon i Nix Cache. Å nå hurtigbufferen er ikke alltid veldig raskt heller. Det er en forskjell du bør ta oppmerksom på; Du kan velge en versjon! Hvis du vil ha en spesiell versjon, må du finne hvilke som er tilgjengelige ved hjelp av vanlige uttrykk.
$ nix -env -qa 'Firefox.*'
Du vil motta en liste over alle tilgjengelige pakker. Du kan installere det på samme måte, men bruke verdien i listen.
$ nix-env -install 'Firefox-78.4.0Ser '-Preserve -installert
Dette kan mislykkes hvis du allerede har en installert versjon. Alternativet '-preserve-installert' vil ikke slette den installerte versjonen. Du kan ende opp med to versjoner av samme prioritet, som du kan fikse ved å sette prioriteten.
$ nix-env -set-flagg prioritet 2 'Firefox-82.0.2 '
Nå vil du kjøre den gamle versjonen neste gang du begynner Firefox. For å bytte hvilken du kjører, kan du sette prioriteten deretter. Du kan også starte et skall for å velge en binær. Dette er en utviklerens alternativ, og kommandoen er Nix-Shell.
Oppdatering av Nixos
Når du har en samling av programvare, vil du holde deg oppdatert. Samme som alltid bruker du den samme kommandoen med et argument. Men du må også holde kanalen oppdatert. Kommandoen er NIX-kanal.
$ nix -kanal -update
Dette leser de gjeldende versjonene av alle tilgjengelige pakker. Etter det kan du begynne å oppgradere programvaren din med Nix-Env.
$ NIX -env -Upgrade
En oppgradering som denne vil oppgradere den gamle versjonen av programvaren. I dette tilfellet vil den gamle Firefox bli erstattet med den nyeste versjonen. Du vil kanskje ikke ha dette av en eller annen grunn, vanligvis utvikling.
Fjerne applikasjoner fra nixos
Å fjerne applikasjoner er like enkelt, med en liten advarsel. Ingen applikasjoner fjernes ved en fjerningskommando.
$ nix-env -Unstall 'Firefox-78.4.0Ser '
Denne kommandoen vil fjerne koblingene til den nåværende byggingen av denne versjonen av Firefox. Alle filene vil alltid holde seg på disken. Du har disse versjonene tilgjengelige for å gjøre en tilbakevending. En tilbakeføring 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 siste generasjon. Alternativet kjører to kommandoer; den listen og bytter deretter til de gamle generasjonene. Alle installerte pakker finnes i en generasjon på disken.
Nixos roll-back og rydde opp
Rollback -funksjonen vil føre til at mye diskplass blir brukt 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 bortsett fra de to siste. Du kan gå frem og tilbake på 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 manus for å holde generasjonene rent kommer med en NIX Package Manager -installasjon.
$ NIX-Collect-Garbage
Du bør også sette opp samleren for å kjøre automatisk ved hjelp av SystemD eller andre systemer.
Konklusjon
Nix Package Manager 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 ryddig og ha en enkel måte å komme seg på en ny maskin, hvis katastrofen til en diskkrasj oppstår.