Hacker News new | past | comments | ask | show | jobs | submit login

An FHS base system that still gives you some of the nice features of Nix and Guix, like immutability and rollbacks.

In theory something like it could be a giant escape hatch so that if you run into Guix packaging difficulties for some software that, e.g., tries to fetch from the internet at runtime, you can just build with autoconf and make or `npm build` or whatever against the Fedora base system. Silverblue might be quirky enough that it has its own hiccups though, idk.




Nix provides FHS environment sandboxes, which are also a great escape hatch, or an alternative for quick packaging: https://nixos.org/manual/nixpkgs/stable/#sec-fhs-environment...


I think nonguix also uses equivalent machinery for its Steam package: https://gitlab.com/nonguix/nonguix/-/blob/master/nongnu/pack...

Maybe there are docs on repurposing that as a general packaging escape hatch, which someone more familiar with nonguix could point to in a reply.

Apparently there is an rpm-ostree-friendly RPM build of Nix that can be used to install Nix on Silverblue as well: https://github.com/nix-community/nix-installers/pull/8

It includes some code to get around the group/user management quirks that some other commenters have noted b0rked the Guix installer with Silverblue, so perhaps it gives an outline of how to install Guix on Silverblue for a hacker who'd like to try it :)


See my comment above about adding a general FHS container to Guix itself; it works, just need to put the final touches on the patches.


Awesome! That is great to hear.


There's an FHS emulating option for guix shell containers that has been proposed (it needs some minor code changes but is functional; I use it): https://issues.guix.gnu.org/56677

So doing a guix shell --container --emulate-fhs <packages> will have you in a container with the usual /lib, /bin, and so on, which should work just as a "typical" Linux distro. You'll want to share things from the host to the container (e.g. graphics) but that is all standard guix container options.


That is very cool. Could one then persist binaries built against such a container with something like `guix pack`? That would be absolutely killer. (Not reproducible at all, but an awesome escape hatch for building software in a traditional way, ad-hoc and imperative, on GuixSD. Could be really nice when packaging an odd piece of software feels overwhelming.)

Either way, that's pretty exciting and I hope it can be merged soon!


I'm not sure how that could work exactly, but yeah, did think of some sort of guix shell build environment container. Though I guess inside it should be the same as "regular" Linux, but you've specified the environment exactly (i.e. you could capture the exact Guix commits to make a reproducible container). Unfortunately, once in there you have state to worry about, so you'll lose reproducibility control as you say, but do think there could be some way to make this a nice stop-gap.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: