[a / b / c / d / e / f / g / gif / h / hr / k / m / o / p / r / s / t / u / v / vg / vm / vmg / vr / vrpg / vst / w / wg] [i / ic] [r9k / s4s / vip] [cm / hm / lgbt / y] [3 / aco / adv / an / bant / biz / cgl / ck / co / diy / fa / fit / gd / hc / his / int / jp / lit / mlp / mu / n / news / out / po / pol / pw / qst / sci / soc / sp / tg / toy / trv / tv / vp / vt / wsg / wsr / x / xs] [Settings] [Search] [Mobile] [Home]
Board
Settings Mobile Home
/g/ - Technology


Thread archived.
You cannot reply anymore.


[Advertise on 4chan]


File: IMG_5527.jpg (149 KB, 1170x1100)
149 KB
149 KB JPG
> solves Linux
>>
File: 1732512334589000.png (943 KB, 1200x1360)
943 KB
943 KB PNG
>>106448481
GNU 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 standards
Did 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, ever
nixos already solved linux.
>>
>>106448510
just use ai bro
>>
>>106448625
Nix 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.
>>
>>106448745
just 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.
>>
>>106448798
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.
>>
>>106448510
>ALL your programs now have to be declaritive packages
There 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 oppressive
I 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
>>
>>106448839
In 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.
>>
>>106448510
just 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
>>106449237
just 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.
>>
>>106448510
the argument is very shitty
every package manager requires you to write a package for it in order to install the program
pacman -> PKGBUILD
apt -> debian/rules
fedora -> 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.
>>
>>106448839
flake is a packages with fixed versions
it guarantees you no breakage caused by different versions, unlike arch
>>
>>106448745
the syntax is actually haskell-like
and it's very simplistic, you just define variables like so
x = 1;
y = 2;
>>
>>106448510
Go bath to /lambda/
>>
>>106448481
Does it allow building packages from source?
>>
guix would be my ideal distro if many packages werent years out of date and it didn't require me to use grub
>>
>>106450082
siverblue rebase
>>
>>106448510
> impossible to run non package software.
Entirely false and trivial to do.
>>
File: lightcycle.jpg (1.46 MB, 5000x2600)
1.46 MB
1.46 MB JPG
>>106448481
The only thing I know about Guix is that Monero uses it
https://github.com/monero-project/monero/pulls?q=guix
>>
>>106455067
Because of this
>Bootstrappability furthers our binary security guarantees by allowing us to audit and reproduce our toolchain instead of blindly trusting binary downloads.
>We achieve bootstrappability by using Guix as a functional package manager.
https://github.com/monero-project/monero/tree/master/contrib/guix
>>
File: 1730465376110793.jpg (12 KB, 474x167)
12 KB
12 KB JPG
>>106448481
It's does the opposite, it's a useless meme. Pic related actually solves it
>>
>>106456668
>it's a useless meme
>post some literal who useless meme shit
>>
>>106452114
Of course
>>
>>106452275
>siverblue rebase
???
>>
File: 1744479975011024.jpg (41 KB, 736x711)
41 KB
41 KB JPG
>>106448481
>packages older than on Debian Stable
>>
>>106448481
Isn't it immutable?
>>
>>106461662
the
/gnu/store
is
>>
>>106448488
Unedited versions:
https://www.zerochan.net/2417004
https://www.pixiv.net/en/artworks/53315200
>>
>>106448481
why does this nux have a womb tattoo?
>>
>>106448526
GNU/Linux is POSIX compliant though, the term was literally coined by stallman and is only necessary because GNU exists
>>
>>106466682
>the term was literally coined by stallman
Proofs?
>>
File: Cap.png (15 KB, 961x121)
15 KB
15 KB PNG
>>106466682
>>106468321
https://en.wikipedia.org/wiki/Richard_Stallman
>>
>>106468321
>>106468361
also here's stallman's article telling the story https://stallman.org/articles/posix.html



[Advertise on 4chan]

Delete Post: [File Only] Style:
[Disable Mobile View / Use Desktop Site]

[Enable Mobile View / Use Mobile Site]

All trademarks and copyrights on this page are owned by their respective parties. Images uploaded are the responsibility of the Poster. Comments are owned by the Poster.