Permalänk
Medlem

Nix och NixOS

Hejsan!

Jag har på det senaste blivit frälst av Nix och dess ekosystem. Det förvånar mig att det fortfarande är så okänt och varje gång jag pratar om det med folk i utvecklingsbranschen så ser de ofta mest förvirrade ut. Tänkte att det borde finnas en tråd om detta på SweClockers men det verkar inte finnas representerat här heller.

Jag är ganska ny och har inte hunnit utforska samt greppa hela ekosystemet ännu. Därför tänkte jag att det vore trevligt med en tråd på SweClockers, där man kan diskutera och komma med tips och tricks för hur man kan navigera i Nix-världen.

Nix har hittills låtit mig släppa docker för lokal utveckling och jag använder typ inte apt längre. Det mesta som har med utveckling att göra har blivit mycket lättare (enligt min egen åsikt). För lokal utveckling använder jag numera Devenv som hanterar alla dependencies och services för projektet. För deploy så bygger jag dockerimages med den konfiguration som är deklarerad genom devenv och kan därför få "containerfeelingen" som docker erbjuder utan att behöva köra docker lokalt. Jag har också använt flakes på jobbet för att lösa lokala dependencies i gamla legacyprojekt som körs med dockerlösningar och som det inte finns tid att att konvertera till devenv. Så med flakes och devenv så blir versioner inte ett problem längre.

För dependencies "system wide" så använder jag oftast nix profile install som har fungerat alldeles utmärkt för alla binärer/program som jag har behövt hittills. Har dock inte börjat med NixOS än men det är nära nu ;).

Finns det nixfolk på SweClockers? Ge er tillkänna :)!

Permalänk
Medlem

Jo, är med ny frälst Nix'are... men inte svinbra än men man lär ju sig varje dag

Visa signatur

Battlestation: 12700k - RTX3090 - 32gb ram - 1tb M2 990 PRO - 2TB M2 crucial
Server: 2x Xeon E5-2670 - 64GB Ecc ram

Permalänk
Medlem
Skrivet av basn:

Jo, är med ny frälst Nix'are... men inte svinbra än men man lär ju sig varje dag

Trevligt!! Hur använder du det? Kör du NixOS eller något annat os?

Permalänk
Medlem
Skrivet av Esrakuf:

Trevligt!! Hur använder du det? Kör du NixOS eller något annat os?

Kör NixOS på servers just nu, håller på migrera alla mina "servers" i parken hemma (massa vms).
Sen kör jag Nix på min jobblaptop (macbook pro)

Visa signatur

Battlestation: 12700k - RTX3090 - 32gb ram - 1tb M2 990 PRO - 2TB M2 crucial
Server: 2x Xeon E5-2670 - 64GB Ecc ram

Permalänk
Medlem
Skrivet av basn:

Kör NixOS på servers just nu, håller på migrera alla mina "servers" i parken hemma (massa vms).
Sen kör jag Nix på min jobblaptop (macbook pro)

Har också funderat på att börja köra NixOS på någon testserver. Känns som ett bra sätt att bryta in det :).

Permalänk
Medlem

Vad är det för fel på apt och Docker anser du ?

Permalänk
Medlem
Skrivet av Meto:

Vad är det för fel på apt och Docker anser du ?

Ser inte var han skriver att det är fel på det?

Men för att svara på frågan, vad är det för fel på att ploga åkern med oxar?

Permalänk
Medlem
Skrivet av Meto:

Vad är det för fel på apt och Docker anser du ?

Absolut inget 🙂! Min poäng är att Nix tillgodoser vad dessa båda tillsammans gör (för mig).

Permalänk
Medlem

Jag var NixOS-frälst för ett år sedan men valde att överge NixOS.

Jag gillade idén med att ha en konfiguration för min dist och blev även såld på konceptet om att se paket som pure-functions som skulle leda till att paket-maintainern och paket-användaren skulle få samma resultat efter installation givet samma paket-konfig så inga mer trasiga paket.

Allt började OK men det var klurigt att förstå olika versioner av nix-filerna och lära sig övergången till flakes (dokumentationen kändes inte helt mogen) och jag har ingen aning om hur statusen är idag men jag fick till en konfig som jag var väldigt nöjd med men jag insåg snart att simpla åtgärder blev ganska omständliga.

Jag jobbat som utvecklare och första problemet jag stötte på var att konfigurera min editor, Neovim, och alla dess plugins. Nix blir mer lättarbetat om det finns färdiga paket att referera till men Neovim, precis som många programmeringsspråk har egna pakethanterare för at bl a hålla LSP:er uppdaterade och det var svårt att få till så att Neovim skulle kunna använda binärer som plugins hämtat istället för nix-paket.

Utöver editorn så blev simpla åtgärder som att editera /etc/hosts eller /etc/resolv.conf väldigt omständligt eftersom man behövde uppdatera konfig:en för filens värde och sedan bygga om paket-konfigen och slutligen ladda om (nix)environment:en för att uppdateringen skulle få effekt.

Utöver detta så låg min paket-cache på ca 500GB(detta var med 3 snapshots och inga oanvända paket) och jag frågade på en konferens om detta var normalt? Flera som jag pratade med tyckte att detta var en normal cache-storlek (Jag har så klart ingen aning om detta ändrats sedan dess). Detta var enormt, speciellt i jämförelse med min paket-cache på min arch-installation som är 62GB och aldrig rensats(ca 4 år av paket, många oanvända).

När det kom till utveckling så var detta innan devenv fick fart men det kändes omständligt att hela tiden sätta upp separata dev-envs för varje projekt man jobbar på istället för att dra in dependencies en gång eller via byggverktyg som cargo för rust.

Det som till slut fick mig att överge NixOS var när mina grafikdrivrutiner pajade efter en uppgradering. Enl. mig så fallerade en av grundkoncepten som Nix utlovade utöver att paketen konsumerade halva min disk och gjorde mitt jobb/användarupplevelse omständligare. Det var extremt skönt för mig att falla tillbaka på KISS-principen och gå tillbaka till Arch.

Edit: Låt inte min erfarenhet avskräcka andra. Ni har kanske andra behov där NixOS passar perfekt.

Permalänk
Medlem
Skrivet av orp:

Jag var NixOS-frälst för ett år sedan men valde att överge NixOS.

Jag gillade idén med att ha en konfiguration för min dist och blev även såld på konceptet om att se paket som pure-functions som skulle leda till att paket-maintainern och paket-användaren skulle få samma resultat efter installation givet samma paket-konfig så inga mer trasiga paket.

Allt började OK men det var klurigt att förstå olika versioner av nix-filerna och lära sig övergången till flakes (dokumentationen kändes inte helt mogen) och jag har ingen aning om hur statusen är idag men jag fick till en konfig som jag var väldigt nöjd med men jag insåg snart att simpla åtgärder blev ganska omständliga.

Jag jobbat som utvecklare och första problemet jag stötte på var att konfigurera min editor, Neovim, och alla dess plugins. Nix blir mer lättarbetat om det finns färdiga paket att referera till men Neovim, precis som många programmeringsspråk har egna pakethanterare för at bl a hålla LSP:er uppdaterade och det var svårt att få till så att Neovim skulle kunna använda binärer som plugins hämtat istället för nix-paket.

Utöver editorn så blev simpla åtgärder som att editera /etc/hosts eller /etc/resolv.conf väldigt omständligt eftersom man behövde uppdatera konfig:en för filens värde och sedan bygga om paket-konfigen och slutligen ladda om (nix)environment:en för att uppdateringen skulle få effekt.

Utöver detta så låg min paket-cache på ca 500GB(detta var med 3 snapshots och inga oanvända paket) och jag frågade på en konferens om detta var normalt? Flera som jag pratade med tyckte att detta var en normal cache-storlek (Jag har så klart ingen aning om detta ändrats sedan dess). Detta var enormt, speciellt i jämförelse med min paket-cache på min arch-installation som är 62GB och aldrig rensats(ca 4 år av paket, många oanvända).

När det kom till utveckling så var detta innan devenv fick fart men det kändes omständligt att hela tiden sätta upp separata dev-envs för varje projekt man jobbar på istället för att dra in dependencies en gång eller via byggverktyg som cargo för rust.

Det som till slut fick mig att överge NixOS var när mina grafikdrivrutiner pajade efter en uppgradering. Enl. mig så fallerade en av grundkoncepten som Nix utlovade utöver att paketen konsumerade halva min disk och gjorde mitt jobb/användarupplevelse omständligare. Det var extremt skönt för mig att falla tillbaka på KISS-principen och gå tillbaka till Arch.

Nej, det där med dokumentation är verkligen inte styrkan med Nix. Håller med om att det är förvirrande, speciellt angående flakes. Faktumet att det existerar två olika CLI gör ju inte saken lättare heller. Håller också med om att Nix storen växer rätt snabbt men för mig har detta inte hunnit bli ett problem än. Hittills har det varit fler fördelar än nackdelar för min del, speciellt på jobbet där vi har massa gammalt skräp som fortfarande skall fungera och gå att utveckla.

Permalänk
Medlem

Jag är en väldigt enkel användare när det kommer till NixOS.
Att sväva i väg med flakes, home manager, impermanence och annat är inte något för mig, inte som det är just nu, och dokumentationen är verkligen inget att hurra för.
Jag trivs med enkelheten, jag har inga flådiga konfigurationsiställningar eller annat.
Min configuration.nix innehåller det lilla jag behöver.

Använder jag NixOS till sin fulla potential? Absolut inte, och det kommer jag aldrig att göra och även om jag testar lite olika distributioner så inser jag att jag saknar det enkla med NixOS.
NixOS är KISS för mig.

Visa signatur

Marantz NR1605, Rotel RB1090, Ino Audio piPs
SMSL SP200 THX Achromatic Audio Amplifier 888, SMSL M400, Audio-Gd NFB-11 (2015), Objective2+ODAC RevB, Audeze LCD-2 Rosewood, Monoprice M1060, ATH-M40x, Sennheiser HD660S, DROP X KOSS ESP/95X, Koss KPH30i, DROP X HiFiMan HE4XX

Permalänk
Medlem
Skrivet av Esrakuf:

Absolut inget 🙂! Min poäng är att Nix tillgodoser vad dessa båda tillsammans gör (för mig).

Devenv ser faktiskt ganska trevligt ut. I jobbet har det nästan alltid varit Debian/Ubuntu som gäller och det är svårt att motivera ett alternativ om det inte finns väldigt goda skäl till det.

Permalänk
Medlem
Skrivet av backspace:

Jag är en väldigt enkel användare när det kommer till NixOS.
Att sväva i väg med flakes, home manager, impermanence och annat är inte något för mig, inte som det är just nu, och dokumentationen är verkligen inget att hurra för.
Jag trivs med enkelheten, jag har inga flådiga konfigurationsiställningar eller annat.
Min configuration.nix innehåller det lilla jag behöver.

Använder jag NixOS till sin fulla potential? Absolut inte, och det kommer jag aldrig att göra och även om jag testar lite olika distributioner så inser jag att jag saknar det enkla med NixOS.
NixOS är KISS för mig.

Haha, jag är nog lika just nu också

Visa signatur

Battlestation: 12700k - RTX3090 - 32gb ram - 1tb M2 990 PRO - 2TB M2 crucial
Server: 2x Xeon E5-2670 - 64GB Ecc ram

Permalänk
Medlem
Skrivet av Meto:

Devenv ser faktiskt ganska trevligt ut. I jobbet har det nästan alltid varit Debian/Ubuntu som gäller och det är svårt att motivera ett alternativ om det inte finns väldigt goda skäl till det.

Det är otroligt trevligt faktiskt. Fräckt att man kan dra konfig var som helst ifrån. Jag har ett repo på GitHub med konfiguration som flera appar delar. I det här fallet handlar det om Nginx och MySQL men det går att komponera services, processer o.s.v lite som man vill.

Här är ett exempel på hur jag använder det. Har gjort ett enkelt testprojekt för att undersöka. I templates ligger gemensam konfiguration och i axum_base så använder jag den.

https://github.com/linusfri/axum_base
https://github.com/linusfri/templates