"Take Ubuntu as an example. Each release comes with its own archives, providing specific versions of tools and their library dependencies. Usually, you cannot freely mix packages across multiple archives. For instance, packages provided in Ubuntu 16.04 may not necessarily be compatible with those in Ubuntu 19.10, and vice versa.

Often, applications are compiled against specific versions of libraries. If those libraries become unavailable, applications that depend on them will no longer run.

Snaps to the rescue."