Historic software — can your package manager handle this?

Are you sure that you will still be able to run your applications from today in 10 years time, when all the app stores and distribution repositories will long have forgotten about them and their dependencies? Are you sure you will still be able to access your work from today?

AppImages of various LibreOffice versions running side-by-side

Sometimes just having one version of an application doesn’t really cut it. For example when testing, you’d want historic, current, beta, alpha, and nightly builds. With AppImage, that’s easy.

There are LibreOffice AppImages for recent, historic, and future releases:

Plus they release a script that lets you roll your own AppImages of your favorite combination of language, help files, and version.

Testing software

Turns out this can be tremendously useful for casual regression testing.

Consider a user who has identified an issue in the PDF handling in LibreOffice and who would like to find out how this issue has developed over time. This is a real-world example:

1. Version 3.3.0 completed the PDF output with exit code 127.
It did not produce any PDF output.

2. Version 3.5.7rc2 completed the PDF output with exit code 139.
It did not produce any PDF output.

3. Version 3.4.6rc2 produced no PDF output, but created the output
directory with a file inside named ".~lock.lh-dummy-a4.pdf#".

@pdfkungfoo writes:

An old #Lenovo notebook with #Debian #Stretch: 7 open #Linux #LibreOffice #AppImage versions running concurrently it handled quite well. But boy, was it #confusing for me to cope with so many windows!

Now try this with the package manger of your choice. Clearly, AppImages can add a lot of value to the application software testing and feedback cycle, since it makes it so easy to run multiple versions, ranging from historic ones to the latest continuous builds, seamlessly on the same system, and (if the application allows it) even simultaneously.

Archiving historic software

Want to be sure that you will be able to run a certain application 10 or 20 years from now, so that you can continue to open today’s documents? Well, your best choice is to archive not only the documents and the application, but also the operating system to run it on (if only in an emulator).

Look at the Internet Archive, who have been making available historic software en masse:

But will they still be able to do the same in 30 years for today’s software?

What sounds easy in theory is not that easy in practice. Since traditional packages have many dependencies, you would have to not only store the package of the application, but also the packages of all of its dependencies. Who does that? Even experts in the field conclude that it is not easy, talking about the “fragility of digital objects”. So there is a whole field dedicated to it.

According to Wikipedia,

In library and archival science, digital preservation is a formal endeavor to ensure that digital information of continuing value remains accessible and usable.

This is another use case in which AppImage excels.

With AppImage, all you have to do is archive two files: The operating system Live ISO and the AppImage, and you’ll have high chances of being able to run this combination in the future — long after all the distribution repositories for this version of the operating system and application will have vanished.

Example: NSCA Mosaic

Still remember the early days of the World Wide Web? NCSA Mosaic was the browser of choice.

Want to get a glimpse of what it felt like? Get the AppImage (this one is recompiled for modern 64-bit systems).


So yes, consider that riddle solved.

What are your favorite applications of which you would like to be able to run historic versions on your Linux machine, today?

Screenshots and LibreOffice regression example by @pdfkungfoo, NCSA screenshots by probono. LibreOffice AppImage conversion script by probono and @Faccioli74. probono is the founder and lead developer of the AppImage project.

Author of #AppImage and contributor to hundreds of open source projects. #LinuxUsability, digital privacy, typography, computer history, software conservation