this post was submitted on 14 Jun 2023
20 points (100.0% liked)

Linux

5492 readers
652 users here now

A community for everything relating to the linux operating system

Also check out [email protected]

Original icon base courtesy of [email protected] and The GIMP

founded 2 years ago
MODERATORS
20
submitted 2 years ago* (last edited 2 years ago) by howarddo to c/linux
 

I think the main pain point of distro hopping is learning a new package manager, I discovered Nix a while ago, it works on every single OS, has the biggest package repo out there. I replaced Homebrew on my mac with it. If this piques your interest, give it a go. Later, you can integrate with Home-manager to manage all of your program config to have a reproducible dev environment on any machine, as described in the tutorial here.

The catch is it's really advanced and got steep learning curve. You can adopt gradually tho. Just get started with nix-shell and nix-env

you are viewing a single comment's thread
view the rest of the comments
[โ€“] JackbyDev 3 points 2 years ago (1 children)

Can you give an example of what installing a tool and using it looks like? Nix is very different from other tools I understand.

[โ€“] howarddo 5 points 2 years ago

oh yeah, Nix is powerful and also has quite a steep learning curve compared to other tools, but you can adopt gradually, some utility of Nix I can list out here:

  • experimenting with packages with nix-shell when you are not sure if u want to install
  • use it just like other package managers like homebrew, yay, etc with nix-env (imperative way, not really recommended by the community)
  • manage the entire dev environment with home-manager and nix flake. If you use macOS or nixOS, you can even manage your OS settings (on macOS uses nix-darwin)
  • manage dev dependency on project level with direnv + nix. for example, you don't want to install python on your machine, but only want it active in the repo you're working on, u can declare it inside the repo

here is my tutorial a while ago, I still don't write the next part but this might be a good start for u. And here is my personal setup using nix and home-manager