I use Arch btw

  • Ignotum
    link
    fedilink
    arrow-up
    10
    arrow-down
    1
    ·
    1 day ago

    Tried to switch, but a couple of pieces of software did not function correctly on nix, and i work a ton in python and i couldn’t get anything to work there, issues with missing system libraries and so on i think, i ran out of free time for tinkering and had to switch back

    I use arch btw

    • ImgurRefugee114@reddthat.com
      link
      fedilink
      arrow-up
      13
      arrow-down
      1
      ·
      1 day ago

      It’s usually pretty straight forward to get python things to work once you know how, but yeah, you can still hit edgecases with poorly structured dependencies. Even in simple cases, having to package things as an end user can be a tough barrier. Personally, I find the pain to be well worth what nix offers me, but I know that it’s just not a good fit for the vast majority of people.

      • Clay_pidgin@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        2
        ·
        23 hours ago

        Is it? Every time nixpkgs changes the python minor version all of my virtualenvs break, which is a pain. I guess I need to look into dev shell or something.

        • urushitan 漆たん@kakera.kintsugi.moe
          link
          fedilink
          arrow-up
          2
          ·
          edit-2
          13 hours ago

          For most dev libraries I use

          https://github.com/nix-community/home-manager

          Which manages

          https://github.com/jdx/mise

          Which manages uv and pyenv and stuff for python, and package managers for just about every other language I dev in.

          It’s version managers all the way down lol, but it’s the only way I’ve found to have proper declarative versions within my nix config that don’t rely on the nixpkgs ecosystem changing, and doesn’t require manually managing a package manager for every single language I use

        • ImgurRefugee114@reddthat.com
          link
          fedilink
          arrow-up
          5
          ·
          23 hours ago

          Yes you need to use a shell to make it reproducible in the nix sense; a regular venv will try to point to the nix store or lose libraries (or try to dynamic-link stuff) when your system env changes which is why you need it to be independent of it.

          I don’t bother with venvs in my own projects because nix kind of subsumes its purpose, but it’s possible to work with them still.

          Something that might help: devenv. I haven’t used this personally but the UX looks like an upgrade. (I just use flakes with dev shells defined inline long-form)

          This video came across my feed last night, and might give you a rough idea: https://youtu.be/jldArhyi6jM&t=581

    • Martineski@lemmy.dbzer0.com
      link
      fedilink
      English
      arrow-up
      7
      arrow-down
      2
      ·
      1 day ago

      Yeah, nixos btw is a big commitment that works only if you have enough time and/or you highly value what it provides. Though if you have lots of time to get past the learning curve and get things going the maintenance becomes much less of an issue later on which is nice.

      • Zozano@aussie.zone
        link
        fedilink
        English
        arrow-up
        2
        ·
        5 hours ago

        I’ve been using NixOS for the past 4 years.

        I started a business with the mission statement to replace local business machines with a windows-like platform, based on NixOS.

        I can say with confidence that the maintenance does not become much less of an issue, but it certainly becomes more transparent.

        • Martineski@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          2
          ·
          5 hours ago

          Oof. Good to know. I’m lucky enough to only use it personally on a smaller scale where once something is set up I don’t need to touch it again and if I do it’s easy to do with the previously set up foundation. Do you regret using NixOS? Or do you think there are better alternatives in which case which ones?

          • Zozano@aussie.zone
            link
            fedilink
            English
            arrow-up
            2
            ·
            5 hours ago

            NixOS is fucking GOATed lol. I can’t imagine a business managing a fleet which isn’t based on NixOS - what a fucking nightmare lol.

            How long have you been using it for? Because you will certainly run into complications eventually, as options change, packages become depreciated, and others get marked as unsafe.

            • Martineski@lemmy.dbzer0.com
              link
              fedilink
              English
              arrow-up
              2
              ·
              3 hours ago

              Around half a year based off my commits which in retrospect is a short amount of time. It took me off guard because it felt like around a year before checking. Probably because of the steep learning curve that put me through a lot in a short amount of time. Lol

              I guess I will have my coming of age ceremony when I will bother doing my first major nixos update since I haven’t bothered doing one yet as I haven’t felt the need to warrant spending the time on it. ❄️

              • Zozano@aussie.zone
                link
                fedilink
                English
                arrow-up
                2
                ·
                3 hours ago

                Oh lol. You’re not on unstable?

                That explains why you’ve not had any issues lol.

                Changing channels every six months is a dice roll - sometimes fine, other times shit breaks.

                Depends how complex your system is I suppose, but the major releases are always the most work if youre pinning versions.

                • Martineski@lemmy.dbzer0.com
                  link
                  fedilink
                  English
                  arrow-up
                  2
                  ·
                  3 hours ago

                  Oh lol. You’re not on unstable?

                  Uh oh. I thought it’s a common practice to use stable by default and unstable where needed for stability. Is this less common than I thought?

                  • Zozano@aussie.zone
                    link
                    fedilink
                    English
                    arrow-up
                    2
                    ·
                    3 hours ago

                    It’s mostly the difference between:

                    “Wanting to resolve all your discrepancies at once”

                    Or,

                    “Gradually, as they roll out”

                    Stable is less work for sure, but it just means having to do everything at once.

                    You just need to remember to update your channel in your flake every six months and then set your options as they rotate.

      • Victor
        link
        fedilink
        arrow-up
        6
        arrow-down
        2
        ·
        1 day ago

        It sounds like it’s work for the sake of work.

        Anybody I ask about the benefits of nix can’t really say anything apart from reproducibility and quickly spinning up your system again if you need to.

        Those things aren’t really problems that need solving, in my opinion. They already have goods solutions. Especially ones that are simpler than nix 😅

        I use Arch btw.

        • iopq
          link
          fedilink
          arrow-up
          3
          ·
          17 hours ago

          It’s about remembering that you did. I have no idea what changes I’ve made to my ancient Ubuntu box so if an upgrade borks my system again I’m SOL

          Also, a Nix upgrade won’t break your system, unlike Ubuntu

          • Victor
            link
            fedilink
            arrow-up
            1
            ·
            16 hours ago

            Yeah, better to use Arch or nix to avoid system breakage 👌

            • iopq
              link
              fedilink
              arrow-up
              3
              ·
              11 hours ago

              Nix, yes, because it has rollbacks

              • Victor
                link
                fedilink
                arrow-up
                1
                ·
                6 hours ago

                If you need rollbacks, of course. I don’t.

        • [object Object]@lemmy.ca
          link
          fedilink
          arrow-up
          11
          ·
          24 hours ago

          For me I like iterating on my home lab so it’s nice knowing I 100% did not forget that I left some port open or service running, it’s all nicely defined in a configuration module I set up.

          There’s a low chance I’m going to reuse my configs, but it’s nice I have the option.

          Probably the biggest value is it’s all written down nicely in a structured and documented system instead of my old sub folders of just/makefiles and bash scripts and’s inlined configuration.

          Then there’s also nice stuff: my config also defines a dashboard for checking the status of my services (when I add a new service, it regenerates as the service is added automatically), I can see which users I created to run in containers, i can experiment with a new desktop environment and just comment out a block to go back.

        • ImgurRefugee114@reddthat.com
          link
          fedilink
          arrow-up
          8
          ·
          24 hours ago

          Documented declarative centralized configuration of all my systems; that value can’t be overstated.

          Then the fact that I can run any version of any nix package from anywhere at any time with a single terminal command,

          the ability to effortlessly and cleanly switch desktop environments with completely no friction or fear,

          to be able to roll back by booting into any previous configuration still on disk, or entirely rebuild any older configuration I’ve tracked in git,

          Painless and fearless updates with a rolling release, very little chance of borking and I can never get out of step; doesn’t matter if I update once an hour or once a year,

          I can share my settings with friends e.g. they can try out my MPV config with a single nix command, or consume my flake outputs and add it to their system with merge/overriding changes,

          I can clearly version system dependencies for everything that needs them without shipping containers,

          I can define development shell environments which is basically like python venvs with requires profiles but for every language,

          I can remotely provision a machine, including disk partitioning and luks and initrd ssh, with a single command,

          There’s a plethora of modules that make setting up complex services with sensible defaults as simple as “enable = true;”,

          … I could probably go on for a while but yeah

          • Victor
            link
            fedilink
            arrow-up
            3
            ·
            21 hours ago

            I guess it’s all down to use cases, eh. I have no use for most of that, so using nix makes no sense for me.

            And the things that I do do/use in that list, it’s just as easy to do without nix, if not easier, such as changing the desktop environment/compositor e.g. Just edit my login shell’s config file on a single line, usually. Stuff like that. 👍 No need to learn a whole ass language for that, or learn a new domain language. I like to keep it simple when I can.

            • ImgurRefugee114@reddthat.com
              link
              fedilink
              arrow-up
              2
              ·
              18 hours ago

              Definitely. It’s totally not the right thing for everyone But coming from windows, I remember the first time I wanted to switch from gnome to kde on arch resulted in a week of pain before just reinstalling… As someone who’s very forgetful, I also tried to write scripts to automate the changes I make on new systems, and remember what weird fixes I applied, where, and why; would usually end in disaster because of how fragile I felt everything was. I tried freebsd, debian, ubuntu, arch, manjaro, mint, even backtrack5 way back when. None of them stuck for one reason or another. NixOS is the first distro I’ve used long-term as a daily driver, and I’m pretty convinced it will be the only distro I use going forward (in one form or another).

              And regarding my point about update frequency, I mention that also because of my experience with arch. Everything is user-error. Reminds me of the straight to jail meme. Update too fast? Borked. Update too slow? Believe it or not, also borked. Update without reading the forum? Straight to borked. Not so much a problem for me now.

              But again, totally not for everyone. The vast majority even. But it jives with whatever part of whatever spectrums I’m on.

            • iopq
              link
              fedilink
              arrow-up
              1
              ·
              17 hours ago

              Here’s how you install Gnome in nixos

              services.desktopManager.gnome.enable = true;

              Here’s how you also install gdm

              services.displayManager.gdm.enable = true;

              • Victor
                link
                fedilink
                arrow-up
                1
                ·
                16 hours ago

                And on Arch: doas pacman -S gnome gdm

                😊

        • Martineski@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          5
          ·
          edit-2
          24 hours ago
          1. I like having the same system configuration across machines and be sure that everything is the same.

          2. I like having all configuration in one place and have comments near the relevant code for extra clarity.

          3. Nixos makes setting up root on ZFS a breeze.

          4. System as nix configuration makes it very easy to track changes with version control and informative commits.

          5. If I fuck up the system I can easily boot into older generation.

          6. System can rebuild only if everything (with proper checks) succeeds giving you a greater confidence in things working.

          7. System reinstals are quick and easy so on hardware failure you can go back to work very quickly without having go spend days and weeks getting your system so vagualy similar state as before.

          8. Nixos made it easy for me to set up mirrored boot so my system will still work fine when one of my boot drives fails.

          9. I get to know what is actually installed on my devices and can easily get rid of it.

          10. No dependency hell.

          11. I can easily try out a program before installing it permanently with nix shell.

          12. Impermanence helps me ensure that every folder and file that I need to keep is documented and keeps them in one place for very easy backups and I have 100% confidence at my backups have everything important.

          And many other bigger and smaller things that I can’t remember right now. I’d honestly be interested in solutions simpler than nix providing the same or greater benefits with more simplicity.

          E: Also, because my original comment wasn’t well worded I will mention that I meant that once you learn how to work with nixos things become easier and once you get the setup going it’s just there continuing to work since the effort is paid in advance and you continue getting the benefits just like that.

      • NotEasyBeingGreen@slrpnk.net
        link
        fedilink
        arrow-up
        3
        arrow-down
        1
        ·
        22 hours ago

        I came from Debian and Arch and was pleasantly surprised at how easy to set up and run NixOS is. I’ve been using it on my personal laptop for months now without any major issues.

    • [object Object]@lemmy.ca
      link
      fedilink
      arrow-up
      1
      ·
      edit-2
      17 hours ago

      I don’t think there’s anything wrong with installing homebrew into your NixOS system if that helps you get stuff done

      • pivot_root
        link
        fedilink
        arrow-up
        1
        ·
        20 hours ago

        Without the standard file hierarchy (which can be enabled), most executables straight up wouldn’t work. The linker and standard library .so files aren’t where they’re expected to be.