• 4 Posts
  • 30 Comments
Joined 1 year ago
cake
Cake day: June 10th, 2023

help-circle

  • Your summary of the language is spot on. I still hope that more distros take inspiration from the declarative config and try to move in the direction, or nix supports a better language in the future. I think that ultimately that’s what the average linux user would want. The ability to still customize in a safe manner. Silverblue, and others, are and will remain a great option for the new or indifferent user.

    On your point about the transient phase, nix actually does that by default already. It installs everything at a separate path and then flips over in one go. You can even pick the mode, either try to do a live switch as you describe, or on boot. I don’t know if I see many benefits to images there.

    I am at a second place now that uses NixOS in a corporate setting, and it is much easier than maintaining the CoreOS images, or similar. I’ve had some many broken builds of CoreOS images because something goes wrong between the custom packages and the base CoreOS images, I would rather just run an Ansible script at this point. Also, you end up using the exact same test suite for NixOS images as for your other images, so the same guarantees end up being met.



  • No, I fully understand it. But if you build the whole system where every package is isolated, none of the packages interfere with each other, and every package is tested across a wide array of architectures, you can just as safely put together your ideal OS setup and don’t have to deal with being locked into very simple and bare system.

    The right place for immutable OSes is if you’re using it as a server for container workloads, where you will never customize the base system. Or if you never want to customize your system. Yes, you can customize the system image, but it breaks all the guarantees that the images gives you because the packages themselves are not isolated and by bumping a wrong dependency for a custom packages you can still break the whole system.




  • I would separate NixOS from other immutable distros. NixOS is really about giving you blank slate and letting you fully configure it.

    You do that configuration using a static config language that is able to be far more idempotent than Andible. It’s also able to define packages that are well contained and don’t require dynamic linking setup by manually installing other packages.

    Immutable distros, on the other hand, really have no advantage to your setup and will probably feel more restrictive. The main use I see for them is for someone new or lazy that wants to get a working system up and running quickly.




  • hackeryarn@lemmy.worldOPtoProgramming@programming.devYou don't need a map for that
    link
    fedilink
    arrow-up
    14
    arrow-down
    2
    ·
    edit-2
    6 months ago

    I wasn’t trying to go into typing as much as using structs or objects when working with known data attributes. Sorry that it was a bit misleading.

    The original actually went into using trees, sets, heaps, tries, etc., but it felt way too… ranty. After writing all that out, I realized that most of those other cases come up really infrequently, and that my biggest gripe was about not using structs or other pre-defined key container types. I thought it would be better to keep things short and focused.

    Maybe I should re-write and publish a data structures edition.









  • hackeryarn@lemmy.worldOPtoLinuxDistrobox in practice
    link
    fedilink
    arrow-up
    2
    ·
    9 months ago

    Yeah it does. I actually use nix as my base OS on one machine. But when I need to work on a project that will never be packaged with nix, and I need all the dependencies, it really becomes impossible to just use nix.

    Nix makes an amazing bas OS, however.


  • hackeryarn@lemmy.worldOPtoLinuxDistrobox in practice
    link
    fedilink
    arrow-up
    2
    ·
    9 months ago

    I use it to share environments with a small team. Just have distrobox specific Docker files and we can all spin up the same distrobox environment locally.

    We end up having a different base docker file (e.g. our distrobox one has editors and stuff), but we all share the same project specific docker file. That same project specific file gets used in CI/CD and deployment, but with a minimal base. So all in all, I would say it’s even better than Vagrant because we run the same system in production.