Hey folks! After using Fedora Atomic for quite a while and really appreciating its approach, I’ve been eyeing one particular feature from NixOS: its congruent system management. Inspired from Graham Christensen’s “Erase your darlings” post, I’d like to explore implementing something similar to NixOS’ impermanence module on Fedora Atomic as one step towards better state management.

Why not just switch to NixOS? Well, while NixOS’s package management and declarative approach are incredible, I specifically value Fedora’s stringent package vetting and security practices. The nixpkgs repository, despite its impressive scope, operates more like a user repository in terms of security standards.

I’ve already made some progress with the following:

  • Fedora Atomic’s shift to bootable OCI containers has helped with base system reproducibility when one creates their own images. This process has thankfully been streamlined by templates offered by either uBlue or BlueBuild
  • Using chezmoi for dotfiles (would’ve loved home-manager if it played nicer with SELinux)

My current (most likely naive and perhaps even wrong) approach involves tmpfs mounts and bind mounts to /persist, along with systemd-tmpfiles. I’m well aware this won’t give me the declarative goodness of NixOS, nor will it make the system truly stateless - there’s surely plenty of state I’m missing - but I’m hoping it might be another step in the right direction.

Particularly interested in:

  • Best practices for managing persistent vs temporary state
  • Working with rpm-ostree’s (or bootc’) assumptions
  • Tools or scripts that might help
  • Alternative approaches that achieve similar goals

Thanks in advance!

4 points

I’m confused, isn’t Fedora atomic immutable? Shouldn’t that make it stateless automatically?

permalink
report
reply
2 points

You would have been right if the entire filesystem were to be immutable. However, for Fedora Atomic, /var and /etc are writable. Thankfully so, as most people wouldn’t want a totally locked down operating system. Heck, no general-purpose distro (or OS otherwise) tries to achieve that level of immutability by default.

permalink
report
parent
reply
3 points

Sorry, can’t help you there since I’ve found out about that impermanence thing with this post, but I have a question, what is the problem that doesn’t allow you to use Home Manager on Fedora Atomic? AFAIK you just run DeterminateSystems’s Nix installer and everything is set up correctly, aside from maybe a couple of configurations, then you install Home Manager as usual, as the official documentation says

permalink
report
reply
2 points

Honestly, you could be absolutely right. I haven’t revisited Nix since Bazzite Buzz #12 informed us on the following:

“The Nix ujust script has also been removed due to conflicts with SELinux policies. Users can still install the Nix package manager manually if they so desire at their own risk.”

However, the above could be outdated; I simply don’t know. Are you aware of any developments that have changed things for the better?

permalink
report
parent
reply
2 points

I don’t remember when this installer was declared stable for use on Fedora, I have installed it in May myself, so after that post.

In the issues tab there seems to be some problems still, like #1325, for me, at least, it’s mostly all fine, the only issue I still have is that some things don’t work due to the user’s home directory being a synlink to /var/home/<username>, rare enough that I still use it

permalink
report
parent
reply
2 points

lol. I initially had a better written reply that I was about to send, but I clicked on cancel instead of reply. RIP.

First of all, thank you for sharing your own experiences!

Secondly, in short, looking at the discord servers that are related to the uBlue project, general folk seem to have moved past Nix and use flatpak and brew instead for GUI and CLI respectively. Though, some community members happily report to be content with Nix. So, perhaps I shouldn’t be necessarily opposed to home-manager.

Finally, I didn’t expect to find a crossover between brew and chezmoi to effectively become a quasi-home-manager.

permalink
report
parent
reply
3 points

I’m a big fan of fedora atomic and derivatives, but haven’t played around with nix or nixos yet. What’s your goal with the impermanence module?

permalink
report
reply
6 points

So, the basic premise of the impermanence module is to flush all state on (re)boot. By default, NixOS is already capable of rebuilding your entire system from the config file(s). The impermanence module simply aids in achieving the desired system workflow for no state without reinventing the wheel. In effect, It’s as if you’ve just done a reinstall and setup everything as you like. But you get to experience this on every reboot. For someone that’s perpetually disturbed by state, which has been the case since my Windows-days*, this would finally grant me a peace of mind that I’ve been yearning for years. So, to answer your question, it would help me get (at least one step) closer to stateless Fedora Atomic without giving up general usability.

permalink
report
parent
reply
2 points

Ohhh okay that’s awesome actually

permalink
report
parent
reply
2 points

I agree 😜.

permalink
report
parent
reply

Linux

!linux@lemmy.ml

Create post

From Wikipedia, the free encyclopedia

Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).

Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word “Linux” in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.

Rules

  • Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
  • No misinformation
  • No NSFW content
  • No hate speech, bigotry, etc

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

Community stats

  • 7K

    Monthly active users

  • 6.9K

    Posts

  • 186K

    Comments