A loosely moderated place to ask open-ended questions
Search asklemmy 🔍
If your post meets the following criteria, it’s welcome here!
- Open-ended question
- Not offensive: at this point, we do not have the bandwidth to moderate overtly political discussions. Assume best intent and be excellent to each other.
- Not regarding using or support for Lemmy: context, see the list of support communities and tools for finding communities below
- Not ad nauseam inducing: please make sure it is a question that would be new to most members
- An actual topic of discussion
Looking for support?
Looking for a community?
Icon by @Double_A@discuss.tchncs.de
- 0 users online
- 217 users / day
- 934 users / week
- 2.44K users / month
- 5.59K users / 6 months
- 1 subscriber
- 3.07K Posts
- 119K Comments
- Modlog
Really anything free and Debian-based. I’ve been happy with Pop! for a while but previously used Mint satisfactorily.
Still irritated that Ubuntu has turned into Red Hat and Red Hat has turned into Oracle — in terms of how they relate to their users, that is.
Fedora.
Fedora crew checking in. Where is the complementary goat cheese?
Opensuse
Tumbleweed
I’m considering to try it. Is the system stable?
Very stable for me. Been using it for over a year now.
OpenSuse Leap is my favourite distro.
Occasionally I try out others, some I really like, but I always end up back on leap.
NixOS. After trying it, I could never go back to a “regular” distro.
What makes NixOS standout?
It’s a somewhat immutable distro, that is however fully configurable.
/etc
, some in/lib
, etc, and having to remember all files you’ve changed.NixOS is an immutable distro. Immutability is binary, it either is, or it isn’t.
/nix/store
is immutable. But there are some files in other places like/etc
and/var
that are mutable. Also I (or a malicious executable) could, in theory, delete store symlinks and replace them with mutable files. Impermanence helps, but you’ll still want some mutable state.Fully immutable systems have everything outside of
/home
read-only. NixOS is not one of them.I see.
I don’t really get the malicious software point though. All immutable distros have a mechanism for changing, after all they need to be updated. If a malicious executable has root access, which is what you need to change symlinks on NixOS (I know services often get their own user, but unless modified, only root has access to those users), then these malicious executables could also leverage whatever mechanism for change other immutable distros have, to do malicious things, no?
Though I do agree with you, now, that NixOS isn’t immutable.
There are ways to secure the update process. For example, you can enable secure boot and store your secure boot keys encrypted (or on a smart card). Then (if a full chain of trust is implemented) to update your system, you’d need to enter the private key password (or insert the smart card), and a root-access executable couldn’t to that automatically.
Yeah, but do other distros do this though? Not that I’m aware.
And surely the same could be done to NixOS, no?
I think it can in theory, but there will be some problems. But most likely Silverblue or something else would have its own problems trying to implement something like that - I don’t have any experience with them and don’t know how they’d compare.
The control and deterministic nature of it is amazing. I have a git repo for all of my machines entire config. I have no fear that installing something will break or make things that would require blowing away and reinstalling. Also blowing away and reinstalling is no big deal, as is building new boxes. It has a high bar for learning to use it effectively, but the view is worth climbing the mountain.
How configurable is the build process for individual applications? I run Gentoo, have all my config files stored in a git repo which includes the defaults supplied to any application’d configure/make/make install steps.
You could apply patches or change the build process. But there are some limitations to ensure reproducible builds. For example, compiler optimizations that break reproducibility are disabled.
I think you could disable build reproducibility to get rid of those limitations, but I haven’t tried it.
The way I run Gentoo would be the type of thing to break reproducibility, getting rid of features globally that I never need. I keep getting the itch to run NixOS but then I remember rebuilding my Gentoo build from scratch is a weekend task I don’t have time for as I’m too frugal to actually upgrade my hardware.
While technically possible, you wouldn’t want to compile everything locally on NixOS. Only packages that you’ve made changes to (such as applied a patch) will be built locally, and everything else (by default) will be pulled from the precomputed binary cache.
You can disable the binary cache, or make changes to every package. The thing is, if you update a
nix
package, you’ll have to rebuild everything that depends on it, and with lower-level components, that can be literally everything. It’s not a sustainable workflow.NixOS is not the most efficient distro either. I already mentioned some compiler optimizations are disabled by default, because they break build reproducibility. It also tends to use more disk space than other distros. So actually trying to super-optimize every package on it is somewhat pointless.
My config is in a single github repo for all of my machines and my user.
It’s really tightly integrated and just works with the nix package manager, which has a huge repo and builds packages reproducibly, so theoretically what would work on my machine would also work on yours. Also, with nix you can run software without installing it, you can have multiple versions of the same library, and there are way more benefits just from this package manager that I can’t list here.
You can iteratively test your config, apply it on a live system and roll it back. You can also use git to roll back to an older version while keeping the actual source files.
There’s no dependency hell / leftover packages after uninstalling something - what you declare in your config is what is installed, and if an app has unspecified dependencies it won’t build. I guess this would also be a part of #2
And there are probably other benefits I can’t remember.
Arch, btw
Debian.
Based and Debianpilled
Debian. It’s FOSS.
I can have a 100% FOSS system. Everything else includes non-free stuff by default.
Manjaro KDE. Easier and more stable than Arch, but still able to use Pacman, the AUR, and Arch documentation (obviously, I don’t use their support channels, but Manjaro forums are helpful with issues). Been running it for years as main OS on all my PCs here.
Same, it’s beautiful out of the box and had everything I wanted pre installed and configured. I’ve been running it for 2 years and the only issues have been directly cause by me.
Have you run into many issues specifically around Manjaro?
Several years ago when I was using Manjaro ARM they let their SSL certificates expire a couple times and it was enough to cause me to jump ship.
About 5 years ago I had some issues with a GPU driver not working out of the box, but nothing that couldn’t be fixed. That issue was more Nvidia than Manjaro tho, and by now it does work out of the box. Otherwise no, not really.
I keep coming back to Pop OS. I also own a System 76 Thelio Mira so I’m a bit biased.
Mint, with cinnamon.
It works for me, on everything I have, with zero issues. The only thing that annoys me is I can’t get waydroid working right so far.
Greetings, fellow Mint peasant. We may not be as cool as the Arch bros, but our stuff just works. I use Mint because I don’t want to spend my time fiddling about with my OS. It does what it’s supposed to do and doesn’t get in the way. One day when I i was bored I did an Arch install in a VM just for fun. But getting that to an actual working state is a lot of hassle. For my daily driver I’ll stick with Mint.
Arch Linux is my #1, its package manager is extremely fast. Gentoo would be my #2 because the USE flags are just awesome to customize each package (basically an automated and centralized way of doing what used to be done using
./configure --enable-[...]
a long time ago). Both distos’ documentations are freaking good and the best there is on the internet right now.NixOS! Definitely not for beginners, and also definitely not for people who are used to the arch way and want something similar.
It’s a declarative OS, versus most Linux distros which are imperative:
So, instead of having to install KDE and change my display manager to use it, I just add this line to my configuration file:
If something wrong happens, I just change the config file to its old version. I can also share this config, and then the other person can run
nixos-rebuild
to get my exact system configuration.I really want to give NixOS a try when I have some time to learn. I’ve been on Arch for a couple years now, and I’m ready for a change. Lol.
Any places you recommend going to learn how to get started in addition to the official docs?
You should definitely use the tool called home manager for per user configs, they have good docs too and make configs for popular programs super easy
Absolutely agree, it’s a very steep learning curve but once it clicks it’s hard to go back to the old. It’s good on the desktop but I started running it on my server recently and I can’t stress how nice it is to just see everything in one place, especially with nix flakes. It’s been difficult with some stuff like running firefish (formerly calckey) but it’s hard to come by services that don’t have good support
I’ve been a Gentoo user since it first came out. I always liked the idea of buildings my entire system around my actual use case. For example I didn’t own a printer so it made absolutely no sense why I’d ever install CUPS and have that service running. If you install a Debian, Ubuntu or Fedora based distro installing Firefox required CUPS. WTF?!? How does wanting to browse the Internet require printer services installed?
Turns out there is a lot of unnecessary apps installed on your system because all the binary distro aim for maximum support. I am not generic so why install for a generic user?
Why compile while I can let someone else do it for me? (Just to see it from the other side :))
Who compiles the binary in the configuration I want? What distro extract all the options out and allows me to install X11 apps without CUPS or alsa or dbus or anything else my system doesn’t actually need? The point of Gentoo is to set a single config file to say “whenever you do a
./configure
make sure you disable X features, enable Y features, and uses my specific compiler tunings to target a specific use case or build.”For example I never default building apps with guis. I’d rather be able to SSH in and use everything that way if possible. I then select the very few applications that actually get their GUI interface or configuration tools built. Can’t do that on binary distro.
Nobody obviously. The closest you would get it probably Arch, with a lot of optional dependencies. And you are not wrong at all, if gentoo works for you. I just wonder if that all that compiletime is ever won back.
Yeah I ran Arch for a little while and it was ok. Felt like it was in-between a binary and a complete source based system but lacked the configurability that makes source base work.
As for getting time back, I setup my system to build stuff at night for upgrades, most apps took a few minutes to build as it’s rare for me to not already have the vast majority of libraries already on my machine. The only things that took a long time was browsers and LibreOffice. Both of which I built when I was sleeping.
Additionally I ran lxc on my system for situations where I had to have something now. Spin up a Debian build and install it. In the background I’d still build a Gentoo clean version and dump the Debian image once it was done.
I love gentoo, but for different reasons:
Very true, what OP said barely matters nowadays but the features you listed definitely give Gentoo an edge over most other distros.
Also, we gotta shout out the sheer stability of gentoo and honestly having to compile system packages isnt that bad if you use flatpak.
POP!_OS:
GNU Guix:
Flatpak/Flathub:
POP!_OS + GNU Guix + Flathub = the most complete GNU/Linux one can get.
Interesting setup, I can definitely see myself giving that a go as a nice middle ground between traditional distros and full-on NixOS/Guix.
Fedora workstation for now. Might give silverblue a go as I’ve found myself using more flatpaks recently, or vanilla OS when the rebase to Debian.
Coming from 2 years of Silverblue and now trying Workstation for the last month, get super comfortable with making tools with distrobox before going to Silverblue. Once you try SB, don’t waste any time with the native toolbox system. Layer on distrobox and just use it from the get go. You can’t upgrade distros that are used to make toolbox containers, so don’t waste time building anything you want to keep or maintain using toolbox. Distrobox is orders of magnitude more capable and even more orders of magnitude better for documentation and features. Using toolbox will leave you frustrated and looking for ways to use podman commands, and that leads to infuriating documentation that is only written for advanced Docker users making the transition to Podman. I ended up layering a lot of stuff on my base build. Like toolbox does not have access to /dev by default so messing with Arduino/embedded stuff is a pain, and there is no documentation or flag options available in SB for how to deal with this issue. Overall SB worked okay for me, but I probably learned less and progressed slower than I would have if I was not using SB and had just used Workstation. That said, I am probably going to wipe my current setup and start over soon. My Workstation build is already an untenable mess.