> solves Linux
>>106448481GNU based
>>106448481>>106440716> The fatal flaw of guix/nix is that you're trapped inside a nonstandard ecosystem and can't get out.> ALL your programs now have to be declaritive packages. Effectively it's impossible to run non packages software, even writing your own code needs to be packages to run correctly.> It's all consuming and oppressive, you've run from the terror of arbitrarily mutable chaos breaking everything directly into the jaws of the beast.> Realistically they should only be used as secondary package managers. I love installing guix/nix packages, I HATE making them.
>>106448510>muh eunuchs standardsDid you forget that GNU is literally not Unix. It's right there in the name.
>>106448510>Realistically they should only be used as secondary package managers. I love installing guix/nix packages, I HATE making them.defining a package is not that bad, though i cant speak about guile. nix however has straight up library functions that make defining a package a few lines of code. whether you want to build a go app, a rust app, if you want it to use a premade ninja or cmake file. need to add a bash script? writeShellScriptBin
>>106448481>no drivers for anything, evernixos already solved linux.
>>106448510just use ai bro
>>106448625Nix seems neat in theory, but understanding their convoluted half custom shell script, half YAML environment does my head in. Might try installing it on my laptop to try and get my head around it.I like the idea of being able to tweak all my settings in one place, with one format, but as soon as I’m trying to do something stupid that hasn’t been accounted for it gets annoying. I’m too used to being able to bodge shit on the fly.
Try to uninstall that shit from your OS is a fucking Herculean task. Fuck that shit.
>>106448745just use templates. you don't need to write everything yourself. i can fire up a python environment with all the packages i want in 30 seconds. then automate a build script for all dependencies to get that software to run on any other machine.
>>106448798It’s been a while, but I remember finding the difference between flakes and packages confusing, a lot of different shit to learn just to get stuff up and running.
>>106448510>ALL your programs now have to be declaritive packagesThere is nix-ld that lets you run random binaries off the internet. Or buildFHSEnv wraps them in a FHS environment so they become a package without needing to recompile.>It's all consuming and oppressiveI look at it from the other side. Random packages with undeclared dependencies are all-consuming and oppressive. Nix is an escape where you actually define your dependencies and nothing else gets included. I love being able to reach any build target of any software package ever, just from a single "nix build" command
>>106448839In Nix there's like 2 main way of doing things, flakes and channels. Flakes are the new "experimental" way that everyone uses like it's stable anyway. If you use the determinate installer it'll enable it by default. Channels are the old way that's technically stable but is weird. Idk. I never learned it and would suggest against learning it. Guix is a fork of Nix that uses Scheme instead of Nix's own language, and only uses channels, not flakes.So the 2 main way of doing things, flakes and channels, are the 2 main way of accessing "projects". "Projects" are just a word I made up on the spot, but it's a good way of describing, well, projects. Each project has "stuff" inside it, most commonly packages, sometimes also some other stuff (e.g. reusable NixOS modules). Really it can be anything.So to build a package of a project with flakes, you literally just run "nix build project#package". It will resolve "project" as a flakeref, most commonly in the format "github:owner/repo" but can also be other stuff, you can also define shorthands and there's a default shorthand for the Nixpkgs project (which is like a Nix standard library) that's just called "nixpkgs". So you can do "nix build nixpkgs#chromium" to build package chromium from nixpkgs. It will automatically pull down the project repo master branch, figure out the dependencies, see if they're available in a binary cache to download, and build anything in a sandbox that's not.With channels it's more complicated. Channels are mutable system state that are updated separately, like using "nix-channel --update nixpkgs" to update the nixpkgs channel which is present by default. This will update your reference to the nixpkgs project to point to latest commit, then you can do "nix-build '<nixpkgs>' --attr chromium". Basically the '<nixpkgs>' is like a C-style #include, it's how you import channels. Then --attr tells it to build that attribute. Like I said it's weird and I would recommend against it.
>>106448839>It’s been a while, but I remember finding the difference between flakes and packages confusing, a lot of different shit to learn just to get stuff up and running.-you use the nix language to write a "nix expression"-"nix expressions" are used to define a package or service as a "derivation"-you can express multiple "derivations" declared to create other "derivations" you can create large complex services, large packages that bring in dependencies, or even a whole operating system as a "derivation"-flakes are a unified schema. used to take inputs, and express them in outputs as a "nix expression" to create "derivations". -flakes enforce "purity". meaning that it requires all information in the expression. need to build a "derivation" for an ARM or and X86_64 CPU? you need to declare it.
>>106448510just kys bro
Nix/Guix desktop users are masochists, there's no other explanation.
>>106450001>only distro that lets you cleanly, easily switch between desktop environments without reinstalling the OS
>>106448741>>106449237just chill fags, that's a bait repost to gather replies contradicting its point. i'm considering to switch to guix and need arguments against stuff said against it.other posts are fine explanations. good work /g/entoomen.
>>106448510the argument is very shittyevery package manager requires you to write a package for it in order to install the programpacman -> PKGBUILDapt -> debian/rulesfedora -> rpm
>>106450001>Nix/Guix desktop users are masochists, there's no other explanation.maybe its because i came from gentoo and gentoo is a distro that forces you to rtfm, but nixos was easy to manage as a desktop.many of the pre-provided options have pretty sane defaults and packages are easily overridable if you look at how they allow you to do it. the biggest configuration hiccups ive run into are if the config file is a toml. it was fixed by pointing the settings option to a toml file.it gave me a better appreciation of systemd and even makes the feature set systemd offers not suck to use.
>>106448839flake is a packages with fixed versionsit guarantees you no breakage caused by different versions, unlike arch
>>106448745the syntax is actually haskell-likeand it's very simplistic, you just define variables like sox = 1;y = 2;
x = 1;y = 2;
>>106448510Go bath to /lambda/