I recently took up Bazzite from mint and I love it! After using it for a few days I found out it was an immutable distro, after looking into what that is I thought it was a great idea. I love the idea of getting a fresh image for every update, I think for businesses/ less tech savvy people it adds another layer of protection from self harm because you can’t mess with the root without extra steps.

For anyone who isn’t familiar with immutable distros I attached a picture of mutable vs immutable, I don’t want to describe it because I am still learning.

My question is: what does the community think of it?

Do the downsides outweigh the benefits or vice versa?

Could this help Linux reach more mainstream audiences?

Any other input would be appreciated!

    • FooBarrington@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      Do you have any examples of the kind of “tinkering” you couldn’t do with an immutable distro? I haven’t run into any restrictions after more than a year.

        • FooBarrington@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          2 years ago

          … why would you want to install packages with sudo? The proper way is to install them (as a user, not root) using rpm-ostree, which will layer the packages on top of the image, automatically installing them for every future system as well.

          You haven’t actually looked into immutable distributions, have you?

            • FooBarrington@lemmy.world
              link
              fedilink
              arrow-up
              0
              ·
              2 years ago

              I keep hearing this, but people never elaborate on those “other reasons”. Did I miss where you mentioned them?

              You mentioned storage, but AFAIK atomic Fedora doesn’t use more space (unless you keep multiple versions for rolling back).

                • FooBarrington@lemmy.world
                  link
                  fedilink
                  arrow-up
                  0
                  ·
                  2 years ago

                  Of course it’s ok! You do whatever you want. Though I’d like to clear up a couple of misconceptions:

                  I don’t want to deal with images. I don’t want to have to be cleaning the system from those images to reclaim my storage.

                  You don’t have to, happens automatically.

                  I dislike flatpaks, snaps and appimage on which immutable distros rely.

                  Fair, though you don’t have to use them at all - you could run everything in a distrobox.

                  The lack of customization as you can’t modify system files or install traditional packages outside the immutable framework, which limits personal tweaks.

                  This really depends on what system files you mean. Anything in /etc/? Fully writable. Everything is configurable either in your home directory or in /etc/, so I haven’t run into any issues with not being able to modify something - and if you do run into that, you always have distrobox.

                  Apps availability, not all apps on the planet exist in flatpaks.

                  Don’t need to, you have distrobox for that.

                  The learning curve.

                  That’s fair. It’s been very small for me, and the issues have helped me become a better Linux developer, but it does bring its own problems in some cases.

                  Having to change the way I interact with my computer completely, I’m too fucking lazy for that and way too cozy where I am.

                  That’s the thing, I hear this a lot, and I just don’t know what the big changes are. I installed Kinoite, set up a distrobox, and have been smooth sailing since - all my previous installations have had far more issues, and I just haven’t really changed much (besides switching from Ubuntu to Fedora, but I’m happy about that, fuck Canonical).

  • vga@sopuli.xyzBanned
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    I have investigated the idea and came to the conclusion that immutable distros are essentially a research project. They attempt to advance the state-of-art a slight bit but the cost is currently too great.

    Perhaps somebody will some day create something that’s worth switching to. But I don’t think that has happened yet, or is happening with any of the current distros. Silverblue might become that with enough polish, but I feel that to get that amount of polish, they would have to make Silverblue the 1st class citizen, i.e. the default install of Fedora.

  • thingsiplay@beehaw.org
    link
    fedilink
    arrow-up
    0
    ·
    edit-2
    2 years ago

    TL;DR: My desktop PC uses EndeavourOS and the only immutable experience I have is SteamOS 3. I can’t say one approach is better than the other, but I like having the newest software and packages in my system. And that’s best provided with a rolling release. I also think that sandbox systems like Flatpak and the several alternative installation methods besides the system package manager is an added complexity for a new user in Linux.


    I don’t mind using an immutable system (BTW another term that describes this kind of system is Atomic, which comes from Fedora), as long as it is designed around it and works well. The only immutable system I use is on my Steam Deck with the pre-installed SteamOS 3. My generic desktop personal computer is using an Archlinux derivative EndeavourOS with a rolling-release, where I have much greater control over the system.

    Both systems have their strengths. I don’t think that my mutable and always up to date system is breaking more often than the other system. The best part of it is, its always up to date and I get the newest applications. I try to not use much Flatpaks or AppImages (but do for certain apps, where I have no other choice for ease of use). And an immutable system naturally basically asks me to use Flatpaks and other user space package formats that is not handled by the distribution itself.

    Even though I have some thoughts on it, I am not excluding one approach. Many say that immutable distributions are good for new users to Linux. I think this adds some complexity and problems, because they need to use sandbox systems like Flatpak. And that’s if they know that they are using Flatpak, because sometimes the app distribution gives options like AppImage and custom installer scripts as well. This is all confusing for someone who just starts with Linux. On top of it, the sandbox of Flatpak requires some additional setup and configuration for some apps, to access certain hardware or filesystems in example.

    All in all, I tend to like the traditional “mutable” distribution system as a rolling release model the most. But I’m an not excluding any other and would use a good “immutable” one; I just didn’t try any other than the one in my Steam Deck.

  • jamesbunagna@discuss.online
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    what does the community think of it?

    It’s important to note how the Linux community interacts with change. In the past, whenever a change has been significant enough to influence individual workflows, it often provoked strong reactions. This was evident when systemd was introduced and adopted by distros like Arch and Debian. Even though systemd was arguably superior in essential aspects for most users, it failed to meet the needs of at least a vocal minority. Consequently, community endeavors were set up to enable the use of Debian or Arch without systemd.

    Similarly, the introduction of immutable distributions seems to upset some people, though (at least to me) it’s unjustified. Immutable distributions don’t necessarily alter the traditional model. For instance, the existence of Fedora Silverblue doesn’t impose changes on traditional Fedora; let alone Arch or Debian.

    But, overall, most Linux users aren’t bothered by it. Though, they often don’t see a use for themselves. Personally, I attribute this at least in part to existing misconceptions and misinformation on the subject matter. Though, still, a minority[1] (at best ~10%) actually prefers and uses ‘immutable’ distros.

    Do the downsides outweigh the benefits or vice versa?

    Depends entirely on what you want out of your system. For me, they absolutely do. But it’s important to note that the most important thing they impose on the user is the paradigm shift that comes with going ‘immutable’. And this is actually what traditional Linux users are most bothered by. But if you’re unfamiliar with Linux conventions, then you probably won’t even notice.

    As a side note, it’s perhaps important to note that the similarities between traditional distros are greater than the similarities between immutable distros. Also, Fedora Atomic is much more like traditional Fedora than it is similar to, say, openSUSE Aeon or Vanilla OS. Grouping them together as if they are a cohesive group with very similar attributes is misleading. Of course, they share a few traits, but overall, the differences are far more pronounced.

    Therefore, it is a false dichotomy to simply label them as traditional distros versus immutable distros. Beyond these names, which we have assigned to them, these labels don’t actually adequately explain how these systems work, how they interact, how their immutability is achieved (if at all), what underlying technologies they use, or how they manage user interactions. The implications of the above. Etc.

    Could this help Linux reach more mainstream audiences?

    The success of the Steam Deck and its SteamOS are the most striking and clear proof of this. So, yes. Absolutely.


    1. Not accounting SteamOS users.
  • Nibodhika@lemmy.world
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    what does the community think of it?

    Everyone has their own opinion, personally I think they’re a great idea and have lots of great applications. But just like rolling vs non-rolling release it’s a personal and application dependant choice.

    Do the downsides outweigh the benefits or vice versa?

    Again, depends, for my personal computer I wouldn’t use it because I think it could get complicated to get specific things to work, but for closed hardware like the Deck or even a fairly stable desktop used as a gaming system it’s perfect.

    Could this help Linux reach more mainstream audiences?

    It could, it can also hamper it because people might start to try solutions that only work until next boot and not understanding why, or having problems getting some special hardware to work (more than it would be a mutable distro). But there is a great counter to this which is that once it’s running it will be very difficult to break by user error.

    At the end of the day I think it’s a cool technology but that people should know what they’re getting into, just like when choosing rolling vs non-rolling distro, it’s not about what’s better, but what suits your needs best.

  • orcrist@lemm.eedeleted by creator
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    From an advertising perspective, it’s important to think about who you’re targeting. Who are your likely customers? Certainly there are some based on the strengths that you raised.

    However, some people are definitely not a good target audience, and some people is actually a very large group of people. There are a lot of current and potential users who essentially want the standard major applications to work, and they’re not going to touch the root partition, and they want things to be very simple. For people like that, Debian or Ubuntu or Fedora already do what they want. And these major operating systems have been around for so long that people will naturally be more confident using them, because they were their friends have experience, or because they think the organization has more stability because of its experience.

    Of course a lot of things depend on how you define words, but to me the above paragraph describes the mainstream audience, and I don’t think you’re going to have much luck reaching them, because I don’t think the thing you’re trying to sell gives them extra value. In other words, it’s not solving a problem for them, so why should they care.

    • YonderEpochs@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      Feel like elaborating? I’ve been running it for a couple weeks and very happy so far. One nice little feature was how I can just scroll on top of the little sun icon in the taskbar and my monitors dim and brighten. But that’s prolly a Plasma thing more than anything else.

      • prole@lemmy.blahaj.zone
        link
        fedilink
        arrow-up
        0
        ·
        2 years ago

        One thing I really like about Bazzite (compared to EndeavourOS which I ran before), is that it just works for gaming. Lots of little tweaks and stuff to get certain qol things working in EOS, are just installed and configured by default in Bazzite.

        The stability is super impressive… I used to rely on TimeShift on EOS to roll back when I broke shit (which was over and over, because that’s how I learn), and while it’s trivial to rollback on Bazzite, I’ve never even been close to needing to. It’s just hard to break (and if you do, just reboot it and everything is fine).

        It’s definitely more user friendly, but I wouldn’t say immutable like Bazzite is only for non-tech people.

        • YonderEpochs@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          2 years ago

          Thanks for the info! So far I’ve been enjoying those same characteristics. I spend my work day arguing with computers, so I have little patience for doing more of it when I’m off (more seriously, I carefully marshall my tech efforts outside of work as a long-term strategy against burnout). I appreciate how “out of the box” gaming (and anything else I’ve tried) works in Bazzite, and the stability has been great too. Though to be fair, def helps that it’s my first experience with Plasma which really makes the “feeling” of the OS pop, in an unfair way lol.

          • prole@lemmy.blahaj.zone
            link
            fedilink
            arrow-up
            0
            ·
            2 years ago

            Plasma is awesome! The customizability is just off the charts.

            Yesterday I powered up my older laptop (running EndeavourOS) after not starting it up in several months. Had to install the updates in chunks because there were just too many, and the dependency situation was a nightmare… Anyway, got it all updated.

            and then next thing I know, I look at the clock and like 3 hours passed. I had been tinkering with shit, completely unnecessarily, for hours without realizing it. I don’t think I really accomplished anything, and in fact may have left it worse off than it was before I turned it on lol.

            So yeah, TONS of time saved using Bazzite, but there is that level of tinkering that I do miss at times (DistroBox can help with some things). I don’t even know if I’d say it’s something I “enjoy,” per-se… It just tickles my brain in a certain way that I don’t get elsewhere?

        • kurcatovium@lemm.ee
          link
          fedilink
          English
          arrow-up
          0
          ·
          2 years ago

          I had to turn it off (which is easy in plasma) because I have two different monitors and they have different brightness, so it was either first one insanely bright to other one being normal or first being normal to second barely dim.

  • kylo@programming.dev
    link
    fedilink
    English
    arrow-up
    0
    ·
    2 years ago

    Has anyone had good success with setting up a development environment in an immutable distro? I love the entire concept because it fits with a lot of my other software preferences, but the tools for containerized dev environments felt frustrating.

    Like, what do you do for your editor? vscode + devcontainers feel like the best option, but it’s rough when I need other IDEs (like I use some of the Jetbrains products). Stuff like toolbox works well too, but to get an editor in that, you have to install it in each one, or make a container that has it built in.

    Otherwise, I’ll stick with plain Fedora — I use flatpaks for all of my apps anyways (except my editor)

    • marlowe221@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      2 years ago

      Personally, I have found the developer experience on Bluefin-dx (the only one I’ve tried…) to be…. mixed.

      VSCode + Devcontainers, which are the recommended path, are pretty fiddly. I have spent as much time trying to get them to behave themselves as I have actually writing code.

      Personally, I’ve resorted to using Homebrew to install dev tools. The CLI tools it installs are sandboxed to the user’s home directory and they have everything.

      It’s not containers - I deploy stuff in containers all the time. But, at least right now, the tooling to actually develop inside containers is kind of awkward. Or at least that’s been my experience so far.

      I think the ublue project is fantastic and I really like what they are doing. But most of the world of developer tooling just isn’t there yet. Everything you can think of has instructions on how to get it going in Ubuntu in a traditional installation. We just aren’t there yet with things like Devcontainers.

      • asap@lemmy.world
        link
        fedilink
        English
        arrow-up
        0
        ·
        2 years ago

        Using brew is the recommended method on uBlue, so you’re already doing the right thing.

        That being said, I use Jetbrains and devcontainers on Bluefin-DX and it’s been flawless for me, straight out of the box.

        • marlowe221@lemmy.world
          link
          fedilink
          English
          arrow-up
          0
          ·
          2 years ago

          Hmmm, interesting. I like brew, for sure. And devcontainers worked ok for me when I was working on something by myself.

          But as soon as I started working on a side project with a friend, who uses Ubuntu and was not trying to develop inside a container, things got more complicated and I decided to just use brew instead. I’m sure I could have figured it out, but we are both working full time and have families and are just doing this for fun. I didn’t want to hold us up!

          Our little project’s back end runs in a docker compose with a Postgres instance. It’s no problem to run it like that for testing.

          Maybe a re-read of the documentation for devcontainers would help…

    • ahal@lemmy.ca
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      I do my main development with Bazzite. I use the Neovim flatpak for my editor and toolbox for builds and such.

      • atzanteol@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        0
        ·
        2 years ago

        Running cli apps like neo vim from a flatpak is frustrating… “flatpak run com.something.neovim” is just the worst way to handle things. Complete deal breaker.

        • ahal@lemmy.ca
          link
          fedilink
          arrow-up
          0
          ·
          2 years ago

          Why is it a bad way to handle things?

          I have an alias set up and SDKs enabled. The experience is indistinguishable from a regular install. But you could also layer it onto the os image or install it in user space if you don’t like flatpaks for the extra resource usage or something. That’s a complete non issue for me though.

          • atzanteol@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            0
            ·
            2 years ago

            I have an alias set up and SDKs enabled. The experience is indistinguishable from a regular install.

            That’s not indistinguishable - that’s you working around the problem of running flatpak run some.domain.IForget(which - BONUS is case sensitive which is awesome) to run neovim.

            Snaps install a binary you can run. Flatpaks make you remember the 3 part domain to run things. So you setup aliases after installing things to run them, and if you uninstall them you need to remove your aliases. It’s a complete own-goal by the flatpak developers that this mess exists and is completely unnecessary. Simply providing an option to create and manage a script in .local/bin or something would be all it takes to make flatpaks usable from the CLI in a way that isn’t obnoxious.

    • asap@lemmy.world
      link
      fedilink
      English
      arrow-up
      0
      ·
      2 years ago

      I use Jetbrains, devcontainers, and distrobox on Bluefin-DX and it has been flawless out of the box. There’s a single command to install the Jetbrains toolbox, which let’s you then manage all their apps.

      Couldn’t recommend it enough, made my development lifecycle so easy.

    • Discover5164@lemm.ee
      link
      fedilink
      English
      arrow-up
      0
      ·
      2 years ago

      i started learning rust with nixos, you can declare a shell.nix with everything needed for the environment, and those things will only be available in that folder.

      there are caveats and annoyances to this like building a python environment costed me some time, because python packages sometimes require compling and all the shared libraries in nix are not in the right path (because you can have multiple versions installed) so you need to set some env vars to patch this.

      nothing that gpt cannot solve.

  • lambalicious@lemmy.sdf.org
    link
    fedilink
    English
    arrow-up
    0
    ·
    2 years ago

    Since the idea is that the “root partition” is immutable, serious question:

    How do you fix a hardware config issue or a distro packaging / provision issue in an immutable distro?

    Several times in my Linux history I’ve found that, for example, I need to remove package-provided files from the ALSA files in /usr/share/alsa in order for the setup to work with my particular chipset (which has a hardware bug). Other times, I’ve found that even if I set up a custom .XCompose file in my $HOME, some applications insist on reading the Compose files in /usr/share/X11/locale instead, which means I need to be able to edit or remove those files. In order to add custom themes, I need to be able to add them to /usr/share/{icons,themes}, since replicating those themes for each $HOME in the system is a notorious waste of space and not all applications seem to respect /usr/local/share. Etc.

    Unless I’m mistaken on how immutable systems work, I’m not sure immutable systems are really useful to someone who actually wants to or needs to power user Linux, or customize past the “branding locking” that environments like Gnome have been aiming for for like a decade.

    • Kanedias@lemmy.ml
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      My guess would be: have an additional overlay filesystem on top of your immutable root and apply all your fixes to it.

      • lambalicious@lemmy.sdf.org
        link
        fedilink
        English
        arrow-up
        0
        ·
        2 years ago

        On the one hand sounds sensible, on the other hand I wonder if that’s possible when wanting to apply things that need to take place as early in boot as possible (eg.: modprobe options for a module, apparmor profiles, …).

  • kibiz0r@midwest.social
    link
    fedilink
    English
    arrow-up
    0
    ·
    2 years ago

    NixOS is kinda the best of both worlds, because it does everything in a way that is compatible with an immutable fs, but it doesn’t force you into abiding by immutability yourself.

    You can always opt into immutability by using Impermanence, but I’ve never seen any reason to.

    Edit: That said, the syntax has a steep learning curve and there are tons of annoying edge cases that spawn out of the measures it takes to properly isolate things. It can be a lot to micromanage, so if you’d rather just use your system more than tinker with it, it may not be a good fit.

      • kibiz0r@midwest.social
        link
        fedilink
        English
        arrow-up
        0
        ·
        2 years ago

        I suppose you’re right. It’s just another tool for helping you abide by immutable practices without forcing immutability as an unbreakable rule.

  • Inui [comrade/them]@hexbear.net
    link
    fedilink
    English
    arrow-up
    0
    ·
    2 years ago

    I’ve used Bazzite for the last year or so after distrohopping for a while and landing on Arch. I learned how ‘atomic’ distros, as the Fedora folks call them, work. It sounded like my phone, where apps are relatively sandboxed and automatically update. I said ‘this is how computers should work’ and stuck to it.

    I wouldn’t use standard Silverblue/Kinoite or standard Fedora. The uBlue images include so many drivers and fixes on the image that make the primary distros look incompetently made if you’re not a power user. They wouldn’t like me saying that because their work is only possible because of what Fedora does. But by that I mean, you will eventually run into something that doesn’t work and it always comes down to some licensing or scope issue that the developers simply don’t care about.

    Having to do literally anything extra to get your NVIDIA GPU drivers frankly isn’t acceptable when that’s not the case for AMD cards. Let alone having to modify grub in the worst case if your distro doesn’t boot properly. If I have a part or plug something in that isn’t some hyper specific piece of technology, it should just work, because it isn’t 1999 where you need driver CDs anymore.

    The main tradeoff is that for users who aren’t very technical, installing anything outside of flatpaks probably won’t make any sense. They have guides, and stuff like brew and distrobox isn’t that difficult when you understand it. But having 4 different ways to install stuff (flatpak, brew, distrobox, layering) sounds ridiculous and confusing on its face.

    I have a practically 0 maintenance system with Bazzite and that’s the way I like it even though I’m perfectly capable of running anything else and modifying it to my liking. The average user isn’t going to care about anything they’re missing by not being able to modify certain files, or if they do, there’s probably a better way to do whatever it is they’re trying to do that doesn’t involve running random bash scripts.

    I would recommend Aurora and Bluefin to all my Windows/Mac friends who aren’t gamers, and Bazzite or Bazzite-gnome to everyone who is. I would never recommend anything else at this point, not even something like Mint, because I consider the uBlue images to be just that good and the tradeoffs of the weird program installation to be more than worth it. Other immutable/atomic distros are too immature (like Arkane Linux) or work fundamentally differently to Fedora Atomic and rely more on things like snapshots (like OpenSUSE Aeon/Kalpa) so I’m not really comfortable recommending them either.

  • Hemingways_Shotgun@lemmy.ca
    link
    fedilink
    English
    arrow-up
    0
    ·
    2 years ago

    I don’t mind flatpaks in a pinch, but having to use them for literally every app on my computer is an unreasonable amount of bloat.

      • Hemingways_Shotgun@lemmy.ca
        link
        fedilink
        English
        arrow-up
        0
        ·
        2 years ago

        Not when every app decides to use a different point version of the same damn platform.

        "Hello Mr. Application. I see you’d like to use the Freedesktop-SDK 23.08.27

        “Oh…well hello other application. What’s this? You want to use Freedesktop-SDK 24.08.10? Well…I guess so…”

        Edited to add: Yes, I know that flatpaks will upgrade to use updated platforms. But it doesn’t automatically remove the old one, forcing you to have to run flatpak remove --unused every week just to keep your drive clean. That’s hardly user friendly for the average person.

        • SpatchyIsOnline@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          2 years ago

          The average person has a 1tb+ drive and doesn’t care about a few hundred megabytes of bloat in a partition they will never look at. If someone is switching from Windows, every app having its dependencies self contained is mostly normal anyway (aside from the occasional system provided dll). The only people likely to care about removing old flatpak platforms are the kind of people who don’t mind running the command to remove them.

        • fruitycoder@sh.itjust.works
          link
          fedilink
          arrow-up
          0
          ·
          2 years ago

          I had a systemd unit that ran it weekly after the update one ran. I feel like the default behavior though should be automatic purge old unused runtimes though too. I don’t see why that wouldn’t the case to me.

          I’ve even gone so far as wanting to force run time changes underneath the packs because of Caves and such, but thats my niche and puts security over function.

          Definitely not a free lunch sys admin wise, but it is still a marked improvement over native apps 98% of the time for me.

    • IrritableOcelot@beehaw.org
      link
      fedilink
      arrow-up
      0
      ·
      2 years ago

      The barrier for me is that I use a lot of apps which require native messaging for inter-program communication (keepass browser, citation managers talking to Libreoffice, etc.), and the portal hasn’t been implemented yet. Its been stuck in PR comment hell for years. Looks like its getting close, but flatpak-only is a hard no go for me until then.

      Even after that, I would worry about doing some Dev work on atomic distros, and I worry about running into other hard barriers in the future.

  • noodles@sh.itjust.works
    link
    fedilink
    arrow-up
    0
    ·
    2 years ago

    Secure != stable Immutable distros aren’t always more secure but rather more stable and hard to break Also btw nixos can apply updates without rebooting

      • Chewy@discuss.tchncs.de
        link
        fedilink
        arrow-up
        0
        ·
        edit-2
        2 years ago

        NixOS is immutable and atomic, but it isn’t image-based.

        Immutable simply refers to how the running system configuration can’t be changed by simply putting a file somewhere (e.g. copy a binary to /bin, which is a bad idea).

        For example, Fedora Atomic and derivatives are image based, although they are more flexible than the A/B types like SteamOS.

        OpenSUSE MicroOS uses btrfs snapshots to apply updates atomically, and is more flexible than most image based immutable distros.

        Edit: But I don’t think those terms have a single definition, so how would you differentiate these terms?

        • ivn@jlai.lu
          link
          fedilink
          English
          arrow-up
          0
          ·
          2 years ago

          I’m on NixOS right now and just dropped a Chewy in my /bin, only had to sudo touch /bin/chewy.

          • priapus@sh.itjust.works
            link
            fedilink
            English
            arrow-up
            0
            ·
            2 years ago

            That doesn’t make it not immutable. /bin is not a critical directory in NixOS, only the contents of /nix are, which are immutable. /bin isn’t even part of your path by default.

            • ivn@jlai.lu
              link
              fedilink
              English
              arrow-up
              0
              ·
              2 years ago

              Well that was an approximation to keep it simple and disprove the given example. There are other directories in the root filesystem that are in the path by default, or used in some other critical way (like /etc). Even if they are links to directories in the nix store you can replace the link.

          • Chewy@discuss.tchncs.de
            link
            fedilink
            arrow-up
            0
            ·
            2 years ago

            Good point. I’ll have to stop using immutable and stay with atomic (and declarative).

            Interestingly /bin and /usr/bin are not in PATH by default, so /bin/chewy can only be executed by its path directly and won’t affect the systems reliability.

      • jamesbunagna@discuss.online
        link
        fedilink
        arrow-up
        0
        ·
        2 years ago

        In your opinion, when can we refer to a distro as being immutable? How do you regard the likes of Fedora Atomic, openSUSE Aeon or Vanilla OS? Are any of these immutable in your opinion?

        • ivn@jlai.lu
          link
          fedilink
          English
          arrow-up
          0
          ·
          2 years ago

          To be honest I don’t know these very well. I only use NixOS. My understanding is that in an immutable distribution the root filesystem is read-only. Granted in NixOS the nix store is immutable and most things in the root filesystem are just links to the nix store, but the root filesystem itself is not read-only.

          • zwerdlds@lemmy.ml
            link
            fedilink
            arrow-up
            0
            ·
            2 years ago

            At the surface, you can pin the commit you pull packages from, but if you want to go deeper, you can essentially define your own channel and dependent binaries, allowing you to store every aspect of how a generation is built.

            • ivn@jlai.lu
              link
              fedilink
              English
              arrow-up
              0
              ·
              2 years ago

              Yes, or use flakes which gives you a lockfile pinning everything. But this is related to reproducibility, not immutability.

                • ivn@jlai.lu
                  link
                  fedilink
                  English
                  arrow-up
                  0
                  ·
                  2 years ago

                  Isn’t immutability related to the root filesystem being read-only? I can write on my root filesystem, even if it’s mostly links to the store I can replace those links.