Let's not forget about a C++ committee member tweeting that Fortran does a better job at package management:

https://twitter.com/blelbach/status/1387618008185524225

I wanna begin my journey with learnin C (again). Why isn't there a normal package management system? I mean there was a lot of time to solve this issue, is it a technical issue or just lack of innovation in C?

There is, Nix :)

How does this work in practice with it's "rolling release" nature? Can you designate specific package versions for all your dependencies? Like having a very new openssl and an older zlib version?

With complex software, just grabbing the latest version of every dependency will lead to broken builds (or ones that only work on x64 but are broken on other platforms)

Last I looked at GUIX (which I guess is similar) you are tied to a release "version" of the package-manager with whatever package version it comes with. But maybe I misunderstood

You may be interested by Spack [1] if you're fine with linux / macos, it gives you all the versions, and you can specify lower and upper bounds for dependencies. Not only that, it also gives you conditional dependencies through variants, compilers, architectures, etc. Also it allows you to compile everything from sources for your micro architecture.

[1] https://github.com/spack/spack