News for hackers. Stuff that matters.
Re:Linux from Scratch by imiric on Saturday October 05, 2024 @05:14PM (#41752959)
Nix purists would say that you should use flakes to declare all the dependencies for each project, and reference all Python dependencies as Nix packages there. Nix effectively tries to replace every package manager in existence, so all Python, Ruby, Emacs, etc. dependency trees are duplicated in Nix.

I think this is insane. Not only will many packages be missing from Nix, you will also have to wait for the upstream changes to actually propagate to Nix repositories. This all assumes, of course, that there are no packaging issues or incompatibilities in this repackaging.

This is one of the ways that Nix sometimes just gets in your way. I've been using Nix(OS) for several years now, and this still bothers me.

Instead of doing this, For Python specifically I would suggest installing pyenv, which Nix packages. Then enter a nix-shell with a derivation thingie[1,2], and install Python as usual with pyenv. Then you can use any Python version, and with pyenv-virtualenv (which Nix _doesn't_ package...), you can use venvs as you're used to. Sure, you don't get the benefits of the declarative approach and isolation as with "the Nix way", and you may run into other issues, but at least it's a workflow well known to Python devs. Hope it helps!

[1]: https://gist.github.com/imiric/3422258c4df9dacb4128ff94d31e9...

[2]: It took me way longer than I would like to admit to figure this out... This shouldn't be so difficult!

Re:Linux from Scratch by therein on Saturday October 05, 2024 @05:38PM (#41753139)
Ironically, that's when you create an Arch container in LXC.
Re:Linux from Scratch by hollerith on Saturday October 05, 2024 @08:17PM (#41753796)
I would try installing pacman in the same filesystem NixOS is in.
Re:Linux from Scratch by imiric on Saturday October 05, 2024 @05:43PM (#41753168)
Meh, maybe. Containers make everything more difficult for local development, though. That would be my last resort in this case.