Compared to Unix/Linux where the package itself contains nothing but the package itself. You are left to find/install/link the dependencies yourself. Especially in the Linux world were those dependencies are "free[tm]". Take a package like Libre Office and look at it's dep's tree is fairly terrifying if you are the one compiling it from source. I remember doing "Star Office" and the other monster was "Mozilla", aka pre-Firefox. They required everything under the sun and wanted 2Gb of diskspace to build in. Star Office took 28 hours to compile on a 600Mhz Celeron. Firefox ran out of diskspace after 8 hours the first time. After this.... I moved to binary distros.
Huh? I install stuff all the time on Linux distros, and it will install/link dependencies as needed. In deb world, "apt install", that's it.
Compiling from source "issue", can also be applied to windows too. Some things are built so it can be used on many platforms.
Just as Windows has it's Windows Update repo ecosystem, Linux has it's distro repo ecosystem. No difference, except what's there to get.
They are not the same thing. Not by along shot. The windows update eco-system would be more like a single vendors package archive on FTP in comparison. The kernel, GLibc, some runtimes a few demo apps like those that come with X11 or KDE. Thats windows right there.
"apt install" is doing the bit I spoke of. Apt is not part of your release package. So "you" in this case is just your distro maintainer. They are doing it for you. Just to break the rules to give you an easy time. Unix is not binary compatible. Never was. Never itntended to be and almost unachievable. The distro's "cheat" by, as I said using a "mother system", which they then slice up once it's in one peice.
EDIT: Note. The release packages DO NOT" contain ANY reference information or meta data about their dependencies.. Not unless you call reading the configure script and AUTOCONF et. al. to find out. Creation of those meta data links between packages is done by the distro and is distro specific. Non transferable.
Yes. 99% of the time its just "apt install" or "apt update -y && apt -y upgrade" if you are that way inclined.
However. Just try and leave a system without updates for longer than say 6 months and go try again. You wil[l start to see it come apart. The maintenance costs of such a system are staggering. When it's voluntary and highly available due to "excitement" from the community, it's fine. When it starts to move into "chore" land, or the distro starts to get "commercially serious", then the true costs of maintaining that tree appear.
The result is most of the cases I have watched, "retention period" drops...
So, I wanted to upgrade a docker host last week. It's a tiny simple little server and so I did a flat "upgrade" on it.
FAILED! Nasty, nasty very unfriendly error. But I have been doing this a while, so it "smelt" like a package in the upgrade chain had been removed. Apt then conflicts with it's own missing version causing a circular dependency lock. The solution is the "T-Cell" approach. If it complains, delete it. Keep going. Then add things you removed back once it is upgrading.
To explain....
You have version 1.2.3
You have had that version for a year.
Since you installed it, 1.2.4, 1.2.5, 1.3.0, 1.3.1, 1.4.1 have all been released.
Last month, all the 1.2 apt stubs got culled.
So previously the system knew how to get from 1.2.3 to 1.4.1 via the intermediates, if needed. However, when you run update and try and pull in 1.4.1 it does not have a lineage of upgrade anymore. It has no "1.2.3 -> 1.4.1" process or proceedure. It doesn't even have metadata for your 1.2.3 version AT ALL!
This often results in conflicts. The inabiity to potentially uninstall that package. Cyclic dependency locks. Etc. etc.
That retention period is getting shorter and shorter and Ubuntu at least are starting to make noises like "UPDATES WILL BE FORCED AND AUTOMATIC!" ... "It's for your security". is BS. It's because they don't want to maintain long retention policies on versions anymore.