One of the best productivity tools I had when I used Microsoft Windows was a collection of portable applications. I missed those tools when I migrated to Linux. Now several open source projects could make portable apps available to mainstream Linux users.
Three websites are trying to create that functionality. But the efforts might need more work before they all perform well out of the box. I found that being able to get these portable apps to run is largely hit and miss. Sadly, my testing showed that it is mostly miss.
I was initially very excited over the prospect of having a toolkit of already-configured software programs at my fingertips. I would not have to worry about maintaining separate installations of the same software on any Linux-based computer I used.
In practice, however, my enthusiasm for portable Linux apps is waning. I’m fairly experienced at setting up and configuring Linux installations. My efforts with portable apps has not been very successful
Why Go Portable?
It is the convenience that makes portable apps so compelling. Portable apps are stand-alone versions of Linux software packages that run from a USB drive.
In theory, with the right amount of reprogramming and tweaking, fully-functional versions of popular Linux programs run without being installed on the computer. Right now, the process takes too much fiddling and is prone to too many variables.
USB-anchored apps do work, one of the software developers assured me. Lots of Linux users are interested in the project.
No doubt that is true. But I had very little success in getting any of the available portable apps to run on the two Linux distros that I use — Ubuntu (Lucid Lynx) and Puppy Linux (version 5.1.1). This latest Puppy Linux version is based on debian Ubuntu and used a compatible software packaging system.
The Concept Unfolds
The pafl site states that its apps let you carry your Linux programs, settings and documents with you wherever you go. It emphasizes that no installation is required.
“… just download and run. It’s that simple,” the website beckons. Put pafl apps on your USB drive and all your settings will still be there if you plug the drive into a different Linux computer, according to Partools.com.
Not so, I found out. The site launched on May 7 with no software available. Since then, five portable apps are available.
You can download GIMP Portable — see my review of the installed version here.
Pafl also developed portable versions for KeePassX Portable (beta), a password safe, and the audio editing app Audacity Portable. See my review of the installed version of Audacity here.
The PortableLinuxApps.org site is better stocked with portable software offerings. Its landing page displays 110 portable Linux apps.
Ease-of-use is also touted. The very bottom of the software catalog says to just download, make executable and run.
These apps were tested on Ubuntu 10.04 (Lucid Lynx) 32-bit, OpenSUSE 11.3 (GNOME) 32-bit and Fedora 12 (GNOME) 32-bit, according to the website.
No luck for me with these portable apps, either. Try as I did, they would not run reliably. If they ran at all, it was just for seconds. I tried on several computers running the designated Ubuntu version.
Hack Some More
My last hope for success was dashed when the offerings on Hacktolive.org suffered a failure to launch. This site offers 10 portable versions of popular cross-platform Linux programs.
From the website you can download Google Chrome Linux Portable, Google Earth 5 Linux Portable, Firefox 3.0.10 Linux Portable and Firefox 3.5.1 Linux Portable. You can also get Skype 188.8.131.52 Linux Portable, Furius ISO Mount 0.11.1.1 Linux Portable, RealPlayer 11 Linux Portable, XnView MP 0.12 (ALPHA) Linux Portable, FileZilla 184.108.40.206 Linux Portable and Foxit Reader 1.0 Linux Portable.
These portable apps are a bit more restrictive than the other websites’ offerings. You need the RUNZ framework and at least GNOME and GTK+ libraries AND KDE and QT libraries on your system.
Trial and Error
None of these websites offers much in the way of discussion board help to new users. Frankly, the sites leave much to be desired. This alone could impede the growth of portable apps use.
Linux has too many variables for me to make any universal conclusions about portables apps. Unlike using portable apps for the Windows OS, Linux distributions are not a one-size-fits-all encounter.
For example, I run several must-have Windows apps on my Linux computers under Wine. As good as the Wine Windows emulation can be, the same programs will run on some of my Linux configurations but not on others. And some newer versions of Wine no longer run Windows apps that still work fine with older Wine versions.
So the same Linux gremlins no doubt were at work in preventing the portable apps to work as advertised for me. The point is, other Linux users have had success with running portable apps. So maybe I have to take a break and try it again later.
A Developer Says
LinuxInsider discussed the concept of portable apps for Linux with one of the movers and shakers of the pafl project. Daniil Kulchenko is not yet out of high school but has a good six years’ worth of Linux programming work on his resume.
Kulchenko plans to release in a few months the first beta of a universal portable app that can run either on Windows or on Linux and still have the same settings, profiles and extensions on both platforms.
LinuxInsider: Since computers in schools and the workplace do not usually run the Linux OS, isn’t the concept of portable Linux apps a bit self-defeating?
I thought so at first; however, with the feedback I got from the users over the first few years, I found that a surprising amount of people travel between many different Linux machines a day and would like to have a set of apps ready to go and configured as they wish, on hand for any purpose. Even for apps such as Firefox that come preinstalled on almost every single distribution out there today, people still find it convenient to have their add-ons, history, bookmarks and settings available wherever they need them.
LIN: Is the concept behind portable Linux apps restricted to running the app from a USB drive in other Linux distros so users don’t have to install a distro-specific app?
We try to be as distro-agnostic as possible and be available on as many versions of all the distros as is practical.
LIN: How much interest is there so far within the Linux community and among Linux end-users about the idea of using Linux-based portable apps?
The interest is surprisingly high. Since the project was started, I’ve had almost 100,000 people visit the project, and a large portion of those visits come from a Google search for “portable apps for Linux,” which leads me to believe that people are specifically looking for this type of apps on Linux.
LIN: Are the apps written/compiled differently by different developers? Or do all of these apps function the same way?
While Windows is very limited in which ways the apps could be made portable, Linux is much more free to a developer independently figuring out their own way to accomplish portable applications. However, as a side effect of Linux’s security, it’s much harder to package the applications in a portable way.
Here’s why. Almost no Linux applications are relocatable, meaning that they can be moved from the place they were installed originally to another directory. As a result, the safest way to create a portable application is to fool the application into thinking that it is actually installed where it should be, and capture the attempted writes to the system — the . directories in /home/user — into a contained area.
LIN: Is there universal agreement among developers on how to do this?
The developers of portable apps are split on their ideas on how to accomplish the “fooling” and “capturing.” With pafl, I thought of a fairly simple system with the help of some very good open source projects — FUSE, unionfs-fuse, and fakechroot, where we, in a temporary directory, overlay the application on top of the system and capture any attempted writes to the overlayed system.
LIN: What is the main challenge in developing portable apps for Linux?
The main challenge is that everything must happen in userspace, since most Linux users won’t be running the apps as root, so we must use a lot of workarounds and deal with a lot of limitations to accomplish portability.