How in Linux is it possible to install a program from 2007 with libraries from 2007 in debian/ubuntu/pureos where the current OS with respective 2023 installed dependency libraries are of a higher version and the .deb install will therefore always fail. This i find quite annoying and results in fragmentation in the Linux appverse. This is fragmentation by time and I find it is quiet unnecessary to have this limitation. Debian also doesn’t allow me to install older version of the package, but why not?
This is as bad as iOS, MacOS where old apps after a while can’t be installed due to failing version/ dependency checks.
Wouldn’t a good OS (ideally Linux) allow install of any application (akin to appimage, flatpak) regardless of already installed libraries especially if there is a version mismatch? Why doesn’t the packaging manager just install multiple versions of the same library and use whatever version it neeeeeds???
Maybe another way to phrase this, is there a smart packaging manager that can actually do that already in Linux using .deb install files?
download .deb program
download the libraries with older versions required to install the .deb program
execute install command dpkg -i .deb program with all the other necessary files in the same folder
instead of checking what is installed in the current OS it uses the libraries provided manually and needed in that same folder.
My Daily rant regarding current state of, not so smart, software OS development approaches.
That could have disturbing security implications i.e. missing out on 16 years of bugfixes.
Virtual Machine?
Flatpak?
That won’t always work. (That is, no matter what trickery you use in order to have two different versions of a package running concurrently, they may not work correctly together i.e. if they can interact in any way. As a trivial example, if the package depends on the content of a file, the format of the file may not be compatible. So at a minimum, the file would then need to disappear into the “folder”.)
But those are still rather niche, modern operating systems did not historically develop with that mindset, and trying to do that means changing many entrenched aspects of packaging.
To answer your question, I would suggest exploring containers. I start a Docker container with the old operating system, give it access to X11 and some directory to share data with the host, and install the application inside. It’s finicky, but can work.
Ok i will give that a spin, it appears Nix, or Guix can be run as package managers independently on your Ubuntu or other Linux system as well. Somewhere it said its a pretty steep learning curve though to use it.