Episode 1x64
Hi guys, I’ve been listening to the show for about a month now, but I’m just now creating an account on the forum. I wanted to post in response to your discussion on distribution package management versus app image installers.
So clearly there is a tradeoff between each method. Debian’s package management makes the best use of resources, since it only installs one version of each library, and ensures the installation of any package that requires said library. The downside is that if an update to a library breaks compatibility, older software can become unusable.
On the other hand, app image installers package all required libraries, meaning that you would have huge duplication of libraries between applications, taking up more space. (ex: Bundling Gtk with every single Gtk application).
I’ve been a Linux user since Ubuntu 7.04, and am currently an Xfce user who likes applications to work out of the box, and wants a simple and reliable desktop solution. Suffice to say, I’m not quite happy with the current status of application installation on any modern Linux distribution. (Though I am not unhappy enough with it to dare switching back to Windows).
– On to the meat of the post –
When downloading an application, it should come as a single file that, when opened will give me an option to run or install. This file should be a tar.gz (with a different file extension of course) containing all necessary libraries, binaries, as well as dependency information in a text file.
If I choose to run the application, it should simply execute the binary using the enclosed libraries.
If I choose to install the application, it should do the following:
For each dependency, check first the user directory and then the root directory for that dependency. If the same version exists, perform an md5sum check on the bundled and installed library to ensure there are no differences. If they are the same, use the one that is already installed. Otherwise install the bundled library.
If they are a different version, install the bundled version alongside the installed version. For example:
/usr/lib/gtk3.10
/usr/lib/gtk3.12
If they are the same version, but the md5sum finds a difference between the two, there may be some modifications, install the bundled version alongside the already existing version with a ‘-n’ at the end like so:
/usr/lib/gtk3.10
/usr/lib/gtk3.10-1
Of course the package manager should make a note of which version the installed application is to use.
And of course, if the application is installed as a user, install the binaries and libraries to the home directory. If it is installed as root, then install to the root directories.
Perhaps this is how some of the app image package managers are already doing things. I have very little knowledge in the matter. But based on your talk on the show, it sounds as though each application will install its own libraries regardless of whether the exact same library already exists on the computer. Which I feel is completely inefficient. This method merges the efficiency of the Debian methodology with the reliability of the app image methodology.
I am writing this after work, going on 30 hours without sleep. So if clarification is necessary, please let me know, as I may not be in a state of mind to coherently write my thoughts at the moment.
Great show so far, looking forward to being a long-time listener. For the record, I found out about the show because I used to watch Bryan on the Linux Action Show, and occasionally check in to see what he’s up to these days. Still as sarcastic as ever of course.