I will be returning from a month-long vacation next week. Let’s see if my arch machine will break completely!

3 years ago by ouigol to c/linux

Last time I didn’t upgrade for a long while some drivers broke, maybe I’ll just switch to NixOS this time since it seems interesting. Does anyone here use NixOS? What do you think about it?

jaybob 18 points 3 years ago

I’ve had no problems, as long as I’ve updated the keyring first sudo pacman-key —refresh-keys. I’ve probably gone a few times not upgrading my system for a while and I had minimal problems.

path: 0 1029568, hotness: undefined, score: 18, children: 0
Fryboyter 15 points 3 years ago

I have several virtual machines here with Arch that I often don't use for months. And when I do use them, I proceed as I do with every update. So before an update, I check if something has been published at https://archlinux.org/news/ that affects the installation in question. This is done automatically with the help of the tool informant. If something has been published that affects my installations, I take that into account. Otherwise I run pacman -Syu as usual. And that's it.

path: 0 1014611, hotness: undefined, score: 15, children: 0
SolemnAttic 15 points 3 years ago

I am using NixOS and have used Arch before. Its great. No dependency hell, superb config management (with home manager) and builtin rollbacks. But the nix language is somewhat arcane. Error messages are only somewhat helpful and docs are really lacking. NixOS also uses quite the amount of disk space in its store. Would only recommend NixOS if youre a resourceful programmer (or not)

PS. Ive never had arch break any drivers on me, or any upgrade failing (unless a package itself is borked, but they usually put out posts for this). But my systems all amd, ymmv

path: 0 1014250, hotness: undefined, score: 15, children: 6
ouigol 2 points 3 years ago

Oh yeah I use nvidia so it’s pretty unsurprising. How much coding is required? I know how to code so it’s not a very big deal but I’d like to have an idea.

path: 0 1014250 1014411, hotness: undefined, score: 2, children: 5
corefoundation 4 points 3 years ago

I wouldn’t call it coding. It’s more about writing configurations. You have to provide a list of packages you need and some configuration for them like configuring default desktop environment. I recommend searching for dotfiles repos with configuration.nix on github to get an idea.

path: 0 1014250 1014411 1015487, hotness: undefined, score: 4, children: 0
theshatterstone54 4 points 3 years ago

As someone elase said, it's not really coding but more like writing a configuration. If you need an example (I'm using AMD so there will be some changes required) you can check out my own config at https://gitlab.com/theshatterstone/nix-conf

Edit: Also, the note on shebangs applies to all scripts within NixOS.

path: 0 1014250 1014411 1016337, hotness: undefined, score: 4, children: 1
SmallAlmond 1 point 3 years ago

Thank you so much for your example, I'm new to NixOS coming from arch and these are all very helpful.

path: 0 1014250 1014411 1016337 1046037, hotness: undefined, score: 1, children: 0
nitrolife 2 points 3 years ago

nvidia-open-dkms usually doesn't break when updating.

path: 0 1014250 1014411 1014882, hotness: undefined, score: 2, children: 1
ouigol 1 point 3 years ago

Well something broke ¯\(ツ)/¯

path: 0 1014250 1014411 1014882 1014925, hotness: undefined, score: 1, children: 0
Max_P 12 points 3 years ago

Most likely, nothing will happen. Arch breaking if you don't updating 5x a day is more of a meme than a reality.

I've updated a client's Arch server that hadn't been touched for years, and it went just fine.

You're the user, you're in control, you're empowered to make sure it won't break after the update, you're empowered to fix it if it does.

path: 0 1017641, hotness: undefined, score: 12, children: 1
llii 7 points 3 years ago

I update my arch computer maybe once a month for years and it works fine.

path: 0 1017641 1017700, hotness: undefined, score: 7, children: 0
borlax 12 points 3 years ago

I use Debian so that i can ignore it for a year and it still wont break.

path: 0 1013465, hotness: undefined, score: 12, children: 0
Ge6xd 10 points 3 years ago

After a long time I usually upgrade the keyring first with pacman -Sy archlinux-keyring For upgrading I like to use Topgrade which also upgrades other stuff (snaps, flatpacks, pip, ...)

path: 0 1016722, hotness: undefined, score: 10, children: 1
jayandp 1 point 3 years ago

For upgrading I like to use Topgrade which also upgrades other stuff (snaps, flatpacks, pip, ...)

Aaannnddd saved.

path: 0 1016722 1061993, hotness: undefined, score: 1, children: 0
Eufalconimorph 8 points 3 years ago

NixOS + Home Manager user here.

I run in an opt-in state config. / is tmpfs. /home is tmpfs. /boot and /nix are real filesystems. At boot, the EFI loader reads the configuration from /nix/persist/etc/nixos/flake.nix, symlinks all the programs and configs into / and /home, and startup proceeds as normal.

That means nothing persists across boots unless I add it to my config. Cruft doesn't accumulate in hidden areas, it's all in my config. That keeps things fast, makes management easier, and makes troubleshooting easier.

path: 0 1031986, hotness: undefined, score: 8, children: 2
cybersandwich 4 points 3 years ago
path: 0 1031986 1049559, hotness: undefined, score: 4, children: 1
Eufalconimorph 3 points 3 years ago

Daily use isn't difficult IME. NixOS is just so nice once it's working. It's ridiculously easy to understand your system & how it's set up (it's all in your config). Nothing changes between updates that you don't know about. You never have to merge configurations from upstream. It's trivial to try something new without changing your system overall. Rollbacks are amazing. It's easy to configure a new machine, to keep multiple machines synchronized (same packages & versions & even users & dotfiles). I have automatic updates enabled so I get a new system when I reboot, and if I don't like an update I can just revert seamlessly. It basically works like an appliance: I don't have to think about the way it's set up unless I disagree with the defaults, and in that case I can change them. You can always override things, even down to applying patches to source code (though obviously that then requires re-compiling). It's like if you took the stability of Debian, the up-to-date nature and huge repo of Arch & the AUR, and the configurability of Gentoo and mashed them all together.

The hard bits are packaging new programs and making "modules". You can pretty much always configure a program by just writing the config file options in a Nix string block, e.g. I've got the following in my home-manager config for my ~/.xkbrc:

  home.file.".config/kxkbrc" = {
    text = ''
      [$Version]
      update_info=kxkb_variants.upd:split-variants

      [Layout]
      DisplayNames=
      LayoutList=us
      LayoutLoopCount=-1
      Model=pc86
      Options=terminate:ctrl_alt_bksp,compose:rctrl
      ResetOldOptions=true
      SwitchMode=Global
      Use=true
      VariantList=colemak
    '';
  };

Modules would let that be a Nix expression, e.g. looking like

programs.xkeyboard = {
  layout = "us";
  variant = "colemak";
  model = "pc86";
  options = {
    terminate = "ctrl_alt_bksp";
    compose = "rctrl";
  };
  resetOldOptions = true;
};

but that requires writing an expression in Nix that converts the Nix syntax into whatever syntax the config file needs to be. That means learning a lot more Nix. Packaging programs also requires learning more Nix, and particularly how Nixpkgs builders work.

That said, the documentation is shitty, the error messages are shitty, Flakes are massively easier to work with but still "experimental" and lots of the docs & examples online are for pre-flakes, while nixpkgs is enormous it doesn't have everything, and IDE support for Nix shell environments is lacking (have to use VS Code or a terminal-based editor like nvim).

Nix is sort of like democracy. Democracy is the worst form of government, except for all the others. Nix is the worst way to manage an OS, except for all the others. It's shitty, but it's shitty in different ways and those mostly end up making day-to-day operations easier.

path: 0 1031986 1049559 1091396, hotness: undefined, score: 3, children: 0
jaykstah 7 points 3 years ago

I've gone like 5 moths without updating a laptop on Arch before and the only thing I had to deal with was updating keyring first

path: 0 1054030, hotness: undefined, score: 7, children: 4
bzxt 2 points 3 years ago

Same, maybe even longer in my case.

path: 0 1054030 1063027, hotness: undefined, score: 2, children: 0
flo 1 point 3 years ago

That's usually how it goes...sudo pacman -Sy archlinux-keyring and you're good. Until you notice that all your python packages are broken because of 3.11 ;)

path: 0 1054030 1094946, hotness: undefined, score: 1, children: 0
Vani 1 point 3 years ago
path: 0 1054030 1058903, hotness: undefined, score: 1, children: 0
Vani 1 point 3 years ago

For me it's always the Nvidia drivers that break

path: 0 1054030 1058905, hotness: undefined, score: 1, children: 0
Trainzkid 4 points 3 years ago

I've got an Arch server that I update monthly (and have been for 2+ years now), and a desktop that I update maybe 2-3 times a week. I've not had any issues, so long as I update the keyring first. Good luck!!

path: 0 1028698, hotness: undefined, score: 4, children: 1
ablackcatstail 2 points 3 years ago

I do a weekly patching on my Arch server. So far so good!

path: 0 1028698 1029257, hotness: undefined, score: 2, children: 0
Xylight 4 points 3 years ago

I use NixOS. Was a kinda rough start since it was annoying to install apps through a config, but after getting my config fully fledged out I love it. A declarative system is a dream for a dev, I can just copy my config to a new system, run one command, and I have my entire system back! Very stable as well

path: 0 1063212, hotness: undefined, score: 4, children: 0
mrh 4 points 3 years ago

I've never used Arch or Nix, but I switched from Void -> Guix and have been very happy with it. It's such a huge peace of mind to be able to have your whole system declaratively configured, package changes being atomic and generational (rollbacks so no worries about breakage), Guix shell for messing about, and being able to make your system do anything you can write in Scheme.

That's my daily driver. On servers so far I've gone with Debian Stable + Guix.

Also Void is still a fantastic distro, and is what I would use if not for Guix/Nix.

path: 0 1015904, hotness: undefined, score: 4, children: 5
ablackcatstail 1 point 3 years ago

What does Guix use for its init system?

path: 0 1015904 1029332, hotness: undefined, score: 1, children: 2
mrh 2 points 3 years ago path: 0 1015904 1029332 1050633, hotness: undefined, score: 2, children: 1
ablackcatstail 3 points 3 years ago

Interesting! Thank you for that. The only init systems I am really familiar with are the old system V, rc.d, OpenRC, and systemd. I actually don't mind systemd all that much now that I've gotten used to it. I still don't like the way Poettering basically forced it on us but it's tolerable.

path: 0 1015904 1029332 1050633 1053449, hotness: undefined, score: 3, children: 0
parsnip283874 1 point 3 years ago

Is guix pull still slow? That was a problem I and a few others had a while back.

path: 0 1015904 1334780, hotness: undefined, score: 1, children: 1
mrh 2 points 3 years ago

guix pull && guix upgrade is still a bit slow, but I never thought excessively slow (definitely slower than xbps, pacman, and probably apt too).

I guess I never thought much about it because of rollbacks, so it’s safe enough to just cron.

path: 0 1015904 1334780 1366006, hotness: undefined, score: 2, children: 0
steadfast 3 points 3 years ago

I know it’s not the same (some would argue worse), but I ran manjaro for a long time and just didn’t have these sorts of issues. Maybe I didn’t update enough, or I updated too frequently, or ?

path: 0 1021521, hotness: undefined, score: 3, children: 3
Reorder9543 3 points 3 years ago

You probably didn't have a lot of AUR packages installed. That seems to be a big issue for Manjaro. They hold packages back and the AUR just keeps going so things get out of sync and break.

path: 0 1021521 1021707, hotness: undefined, score: 3, children: 2
steadfast 2 points 3 years ago

Not sure what constitutes a lot, but definitely had AUR software. Generally only for things that were not otherwise available

path: 0 1021521 1021707 1023249, hotness: undefined, score: 2, children: 0
Fryboyter 2 points 3 years ago

As far as AUR is concerned, one should be fair. The things that are offered in AUR can be problematic in general. No matter if you use vanilla Arch or a distribution based on Arch. Because not everyone who offers something in the AUR cares about updates in a timely manner or at all.

There is definitely a reason why https://lists.archlinux.org/... exists. Just as there is a reason why there is a general warning about the AUR (https://wiki.archlinux.org/...).

With Manjaro, I rather see the problem that the team responsible for it apparently does not learn from its mistakes, so that, for example, the SSL certificate of the website has not been renewed several times (https://web.archive.org/...). That may not be a big problem in itself, but if even such little things go wrong, then I personally cannot trust an entire distribution.

path: 0 1021521 1021707 1023290, hotness: undefined, score: 2, children: 0
runawaycorvid 3 points 3 years ago

(Disclaimer that I’m still new-ish to Linux)

I just went about a year between EndeavorOS updates on a laptop and uhh… it wasn’t happy. I just installed Kubuntu which hopefully will be more forgiving haha.

path: 0 1026547, hotness: undefined, score: 3, children: 3
happyhippo 3 points 3 years ago

I don't get why so many folks try niche stuff when the tried and proven solution is out there.

Tumbleweed, excellent support for KDE, rolling, great defaults, snapshots out of the box, lots of support/documentation, OBS...

path: 0 1026547 1051167, hotness: undefined, score: 3, children: 2
walthervonstolzing 1 point 3 years ago

Snapshots require btrfs though, don't they?

path: 0 1026547 1051167 1058270, hotness: undefined, score: 1, children: 1
JRepin 2 points 3 years ago

Yes, you are correct

path: 0 1026547 1051167 1058270 1072259, hotness: undefined, score: 2, children: 0
mvee 3 points 3 years ago

I guarantee it

path: 0 1063414, hotness: undefined, score: 3, children: 1
mvirts 2 points 3 years ago

Hey look it's my alt account

path: 0 1063414 1095053, hotness: undefined, score: 2, children: 0
linux
linux

@lemmy.ml

login for more options
68094
9452
5309

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

  • Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
  • No misinformation
  • No NSFW content
  • No hate speech, bigotry, etc

Related Communities

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

go to feed...