this post was submitted on 06 Nov 2024
45 points (97.9% liked)

Linux

48031 readers
994 users here now

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

Related Communities

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

founded 5 years ago
MODERATORS
 

Perhaps dumb questions inbound ;)

I use Arch because I'm strapped for time and my system is always moving.

  • 2 minutes to install something? AUR probably has it.

  • Ten minutes of free time to look for a software that fits a new need? Try random AUR things (auditing PKGBUILDs is just twenty seconds or so).

  • If I need a tiny patch, I'll just add a sed or patch file to the PKGBUILD. (Super easy, you barely learn any syntax cuz it's intuitive shell.)

  • make && make install/meson blahblah usually just works.

  • Wiki does the thinking for me if I need something special (e.g. hw video acceleration)

Buuuut update surprises can be a pain (e.g. Pipewire explodes Saturday evening) and declarative rollbackable immutability sounds really freakin' AWESOME, so I'm considering NixOS for my new laptop (old one's webcam broke). So I ask:

  • How much can I grok in a week?
    • I need to know Nixlang, right? I have a ton of dotfiles and random homemade cpp commands in ~/.local/bin that I use daily
  • How quick is it to make a derivation?
    • I make install a lot, do I need to declare that due to non-FHS? Can I boilerplate the whole thing with someone else's make install and ctrl+c ctrl+v? How does genAI fare? (Lemmy hates word guess bots, I know)
  • How quick is it to install something new and random?
    • Do I just use nix-shell if I need something asap? Do I need to make a derivation for all my programs? e.g. do I need to declare a Hyprland plugin I'm test-running?
  • How long do you research a new package for?
    • On Gentoo I always looked up USE flags (NOO my time); on Arch I just audit the PKGBUILD and test-run it (20 seconds); on Ubuntu I had to find the relevant PPA (2 minutes). What's it like for Nix?
  • Can you set up dev environments quickly or do you need to write a ton of configs?
    • I hear python can be annoying. Do C++/Android Studio have header file/etc. issues?
  • What maintenance ouchies do you run into? How long to rectify?
  • Do I need to finagle on my own to have /boot encrypted?
    • I boot via: unencrypted EFI grub asks for LUKS password -> decrypt /boot, which then has a keyfile -> decrypt and mount btrfs root partition. But lots of guides don't do it this way

Thanks for bearing with me ദ്ദി(。•̀ヮ<)~✩‧₊

top 16 comments
sorted by: hot top controversial new old
[–] apt_install_coffee@lemmy.ml 3 points 4 hours ago* (last edited 4 hours ago)

Nixpkgs has more and newer packages than the aur.

The initial time to get shit done is longer; you can't simply make install, but honestly you shouldn't have been doing so on arch anyway.

Making your own derivation is much easier than making your own PKGBUILD and should be considered in those terms because you're not just shoving some binary into /usr/bin for it to explode later when glibc updates.

When things fuck up, reverting to your previous config is at worst a reboot away.

I have much less time than I used to, so moving from arch to Nixos has prevented the time otherwise wasted in an arch-chroot trying to fix issues like the kernel upgrading past what the zfs-dkms supports.

If you're using specialised proprietary tools, working them in with Nix can be an absolute nightmare, but I use a debian container for them.

[–] ravhall@discuss.online 28 points 18 hours ago (1 children)

Sounds like you have a lot of time.

[–] SturgiesYrFase@lemmy.ml 15 points 17 hours ago (2 children)

Or had a lot of time, and have streamlined their setup to the point that they don't spend nearly any time on the fiddly bits, because they now have next to no time.

[–] fool@programming.dev 6 points 15 hours ago (1 children)

Yep this is my diagnosis. I had a lot of time at the start to config horns and halos and miniguns and waffle toasters onto my craptop but now everything is constrained

o(╥﹏╥)o

[–] SturgiesYrFase@lemmy.ml 4 points 5 hours ago

It's really unfair. The older we get, the faster time seems to pass, and the less we have to spare. If we're lucky, maybe we can get 15 or 20 years at the end to enjoy our labour...most of us will be too banged up from the grind to enjoy it.

[–] ravhall@discuss.online 9 points 17 hours ago (1 children)

True. I love to fiddle, but not on my daily driver.

[–] SturgiesYrFase@lemmy.ml 8 points 17 hours ago (1 children)

I also love to fiddle, but the ADHD steers the ship a lot, and so I sometimes end up bricking my install.... I'd say it's a thing I'm working on, but you seem nice...and I'd hate to lie to you.

[–] ravhall@discuss.online 3 points 17 hours ago (1 children)

We are floating in the same boat, my friend. ;)

[–] SturgiesYrFase@lemmy.ml 1 points 5 hours ago

✊🤜🤛 the struggle is real fam

[–] dosse91@lemmy.trippy.pizza 13 points 16 hours ago* (last edited 16 hours ago) (1 children)

I'd say I'm a "time-strapped" user since I have a full time job and I'd rather spend my free time gaming rather than fixing a broken OS, nevertheless... I have 2 PCs with Arch Linux (one for personal stuff and one for work) and a server with NixOS.

When things break on Arch (which is rare these days but it can happen, especially if you play around with things from the AUR), I just rollback with timeshift (it takes just a few seconds with btrfs) and try that update again in a few days. Minor issues I can just ignore or work around them and take care of them when I feel like it, but they usually get fixed with updates within a few days. The only time I felt that it was actively wasting my time was when Plasma 6 came out a few months ago and a lot of little things broke, especially on wayland, but they were fixed rather quickly with 6.1 so I can't complain too much.

NixOS on the other end has been nothing but trouble and a waste of time ever since I installed it. It took me a week to configure it, some packages are kinda old, most have incomplete declarative config, I had to manually write some units myself, and when things break it drives me crazy because even basic troubleshooting of services can be a pain in the ass because I have to find out where stuff is, know which config files are going to be overwritten, launch the correct nix-shell, ... it's all so tiresome... so I just revert to an older config and hope for the best. To make things worse, major updates often require manual changes to the config or even to application files themselves (looking at you, nextcloud) and you will excuse me if I can't be bothered to do that on a DECLARATIVE DISTRO. Even debian doesn't need that, come on! I don't care what people say on NixOS, this OS is not ready yet, I don't have time for this shit when I'm working and that server will be going back to debian next summer.

[–] Telorand@reddthat.com 6 points 15 hours ago

I don't care what people say on NixOS, this OS is not ready yet, I don't have time for this shit when I'm working and that server will be going back to debian next summer.

I like the idea behind it, but I'm with you. I've tried to learn it and given up several times. There's just not enough tutorial info, yet, to get people up to speed, and making changes seems to be a bigger deal than pretty much every other distro out there.

Its current state feels like Arch for people who think Arch is too easy.

[–] algernon@lemmy.ml 21 points 18 hours ago (1 children)

I've been daily driving NixOS for about a year now, switched from over two decades of running Debian. I'll try to answer your questions from my perspective:

How much can I grok in a week?

If you have some experience with functional programming or declarative configs (think Ansible), then it's a lot easier. You can definitely learn enough in a week to get started. One year in, my Nix knowledge is very light still, and I get by fine. On the other hand, there's a lot of Nix I simply don't use. I don't write reusable Nix modules, and my NixOS configuration isn't split into small, well manageable files. It's a single 3k lines long, 130k sized flake.nix. Mind you, it's not complete chaos: it is generated from an Org Roam document (literate programming style; my Org Roam files are 1.2mb in size, clocking in at a bit below 10k lines).

With that said, it took me about a month of playing and experimenting with NixOS in a VM casually, a couple of hours a week, to get comfortable and commit to switching. It's a lot easier once you switched, though.

How quick is it to make a derivation?

For most things, a couple of minutes tops. I found it easier to create derivations than creating Debian packages, and I was a Debian Developer for two decades, had a lot more and lot deeper understanding of Debian packaging practices. It's not trivial, but it's also not hard. The first derivation is maybe a bit intimidating, but the 10th is just routine.

Regarding make install & co, you can continue doing that. I use project-specific custom flakes and direnv to easily set up a development environment. That makes development very easy. For installing stuff... I'd still recommend derivations. A simple ./configure && make && make install is usually very easy to write a derivation for. And nixpkgs is huge, chances are, someone already wrote one.

How quick is it to install something new and random?

With a bit of self control and liberal use of direnv & flakes, near instant.

How long do you research a new package for?

https://search.nixos.org/packages, you can search for a package, and you can explore its derivation. The same page also provides search for NixOS options, so you can explore available NixOS modules to help you configure a package.

Can you set up dev environments quickly or do you need to write a ton of configs?

Very easy, with a tiny amount of practice. Liberal use of flakes & direnv, and you're good to go. I can't comment much on Python, because I don't do much Python nowadays, but JavaScript, Go, Rust, C, C++ have been very easy to build dev environments for.

What maintenance ouchies do you run into? How long to rectify?

None so far. If it builds, it usually works. I do need to read release notes for packages I upgrades, but that's also reasonably easy, because I can simply "diff" the package version between my running system, and the configuration I just built: I can see which packages were upgraded, and can look up their release notes if need be. In short, about the same effort as upgrading Debian was (where I also rarely ran into upgrade/maintenance gotchas).

Do I need to finagle on my own to have /boot encrypted?

If you use the NixOS installer, then yeah, you do have to fiddle with that a bit more than one would like. If you install via other means (eg, build your own flake and use something like nixos-anywhere to install it), then it's pretty easy and well supported and documented.

Feel free to ask further question, I'm happy to elaborate on my experience so far.

[–] greywolf0x1@lemmy.ml 1 points 7 hours ago

With that said, it took me about a month of playing and experimenting with NixOS in a VM casually, a couple of hours a week, to get comfortable and commit to switching. It's a lot easier once you switched, though.

yeah, OP should probably setup NixOS in a vm first and apply all their configs in there

[–] ikidd@lemmy.world 1 points 9 hours ago

You might want to look at BlendOS. It's not up to NixOS's level of complexity, but it gets you atomic rollbacks. It might meet your time constraints better than the learning curve on NixOS.

[–] dadarobot@lemmy.sdf.org 7 points 16 hours ago* (last edited 16 hours ago)

I just started using nix recently. I really like the concept, and how simple it is to "temporarily" install an app only needed briefly.

I was trying to install a python program i wrote, and packaged with poetry (on an arch system) to nix. Pip and pipx both threw errors, nothing seemed to work. Advice online seemed like i needed to basically create a nix flake for the app. I still havent gotten it installed because i have no idea what nix flakes are.

Its probably just a learning curve, and not using nix the "nix way" but im incredibly frustrated and it was a massive time sink for me. I figured pipx would basically work like flatpak does and just install the thing in my home, leaving the system immutable or whatever, and staying mostly in the spirit of nix.

So i'd say its weird enough of a distro to waste your time sometimes.

That said, it seems to have the cleanest updates ive ever seen on linux. So much so i could probably just run them via cron, and never think about it again.

So win some lose some...

[–] blackbrook@mander.xyz 1 points 13 hours ago

You might also consider openSUSE for btrfs snapshot rollbacks in case something breaks (though tumbleweed is quite stable anyway). They also have community packages.