this post was submitted on 18 Oct 2023
63 points (95.7% liked)

Linux

48144 readers
765 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
 

I am playing around with Fedora Silverblue and openSUSE Aeon and I really like the painless updates.

Still, my daily driver for some years now is Debian, and I have a decent setup via Ansible - everything just works for me.

My question is mostly to long term Linux users, which use Linux in a professional context and jumped from a distribution like Fedora, Ubuntu, openSUSE or Debian to NixOS, Silverblue, Aeon etc.

What is your experience? How did your workflows change on your immutable Linux distribution? Did you try immutable and went back to a more traditional distribution - why? How long are you running the immutable distribution and what issues and perks did you run into?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 4 points 1 year ago (3 children)

yep...same here.

Also, I use VSCode which incorporates all the toolings that I have installed and also frequently use in a terminal. For an immutable system, I'd have to use the Flatpak version of VScode, which cannot access these toolings from the host.

So, no immutability for me now.

[–] [email protected] 7 points 1 year ago* (last edited 1 year ago) (2 children)

This isnt’t the case for NixOS. I use VsCode and all I need to do is open it by typing “codium .” after direnv loads the flake file which points to all of my dependencies. I don’t use flatpak and I’m able to provision ALL of the tooling in a way that lives with the project rather than on my machine, needing to be manually updated.

[–] [email protected] 3 points 1 year ago

Also, on nixos you don't have to do that if you are lazy and can just install dependencies in your global config. Yeah its less optimal, but I'm too lazy to make flake files for each project.

[–] [email protected] 1 points 1 year ago (1 children)

When you say "with the project"... you mean, you load up a typescript project, so you can use npm, etc. but you cannot use golang toolings within that same VScode window, and vice versa?

[–] [email protected] 2 points 1 year ago (1 children)

His config loads npm and stuff when he is in the project directory. So anywhere outside of that directory, its like its not installed.

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago) (1 children)

This. It allows me to be incredibly flexible and granular about exactly which software is installed in which environment. I could dream up the most obsolete (or vaporware or anything in between) tech stack imaginable and bind that to a flake and lock it then not have to worry about the rest of my system being contaminated with those unusual dependencies. It’s like what Docker dev environments and devcontainers are attempting to do but 1000x more elegant and reproducible.

[–] [email protected] 2 points 1 year ago (1 children)

Lol... as someone who jumps around between toolings all the time, this is anything but "flexible" for me.

I might write an app that uses web tech for the frontend and golang for the backend, and suddenly decide to throw in a flutter version for mobile.

But if it works for you, great.

[–] [email protected] 5 points 1 year ago* (last edited 1 year ago) (1 children)

Lol!

Maybe I’m reading that wrong…if not, I’m kind of dumbfounded how you can somehow take away from what I said that this technology doesn’t make that 1000% easier than your current method.

Say I wanted to suddenly throw in a flutter version for mobile, I could just add a flutter input and output into the flake and suddenly I’d have that tooling.

I suspect you misunderstand how it works.

How does your old school manual install method make that easier?

Full disclosure: I honestly don’t care if you use it one way or another. I’m just hoping to educate you (or anyone reading along) about the true nature of the widely misunderstood tech we’re talking about.

[–] [email protected] 2 points 1 year ago (1 children)

It's all good, man. I'm not saying that my way is the right way, and your's is wrong, and I love being educated.

What I mean, is, I have all the toolings already there without having to set them up, once I feel I need them.

So the discussion is more about having things set up globally vs. scoped.

[–] [email protected] 2 points 1 year ago* (last edited 1 year ago) (1 children)

NixOS is hard to explain.
I also did not get it at first, but got into a 101 session at cfgmgmtcamp last year and then it clicked.

I would suggest looking at YouTube videos like this one and try to understand what NixOS really is.

It is a pity really that it is not more approachable, the project would have more success if it is somehow easier to explain to others that are new to it :).

[–] [email protected] 1 points 1 year ago

3 hrs? thank god I don't use the official YT app 😂.

But you're right. One should at least watch a real-world practical example of its usage.

[–] [email protected] 2 points 1 year ago (1 children)

You can actually use distrobox to set up a regular version of Fedora, set up VSCode there using the official Microsoft RPM and keep all your code in there.

[–] [email protected] 1 points 1 year ago

I know, but then again... it's just another layer of maintenance.

Don't get me wrong. Distrobox is a wonderful piece of software. I use Arch inside DB to run some non-crucial stuff that's not available in the fedora repos/copr, like lycheeslicer.

But having a working and reliable code environment is something I'd really not want to babysit.

[–] [email protected] 1 points 1 year ago

Yeah I’ve run into the same problems, really annoying when I can’t find a workaround but it’s getting easier as time goes on