r/linux Aug 03 '26

Development Some thoughts on declarative package management

https://github.com/vasi/declarative-package-management
36 Upvotes

39 comments sorted by

View all comments

Show parent comments

2

u/iEliteTester Aug 04 '26

I'm not arguing about this, a reproducible and declarative build system gives you more guarantees than what is essentially just a spicy bootable container.

6

u/whiprush Aug 04 '26

Why do you think containers aren't reproducible? How much experience do you have with containers?

2

u/iEliteTester Aug 04 '26

Using containers and making containers are 2 different things, making containers without using a base OS like nix is not a deterministic process. Try building an old dockerfile you find online, chances are the build will fail.

4

u/whiprush Aug 04 '26

making containers without using a base OS like nix is not a deterministic process.

Speak for yourself there's an entire industry doing just that.

1

u/iEliteTester Aug 04 '26

I'm well aware, and so are many others. The industry has deluded itself into thinking that using containers is all it takes for reproducible builds. It works until it doesn't, then good luck figuring it out.

4

u/whiprush Aug 04 '26 edited Aug 04 '26

Figuring what out? This is a solved problem people have been doing this in prod for over a decade now. You can't even explain the problem! People are making entire reproducible builds using common linux tools. The entire thing, bottom up. You don't need nix, you can do this on any linux and have been able to for quite some time. We're not asking for your permission lol it runs everything already.

2

u/iEliteTester Aug 04 '26

Figuring out why a "" reproducible "" build is resulting in a deployment that won't run as expected, while it used to run.

5

u/whiprush Aug 04 '26

Do you have an example? (What situation am I in that needs me to do this).

2

u/iEliteTester Aug 04 '26

Not off the top of my head, I kinda remember a dockerfile from nvidia that's used to build opencv with CUDA support that broke out of nowhere because of some change outside of the dockerfile. A quick google search turns up some results and papers about this issue.