13

Asking this question got me thinking - are there portable apps available for Linux? I know a lot of simple tools can be run in a standalone fashion, but will I run into security limitations with common Linux distributions?

Considering the availability of tools etc. on most default Linux systems anyhow, is there even a need for this?

EDIT: To clarify, I'm looking for apps I can run on an existing Linux system - I don't want to carry around the whole OS, if I don't have to.

Andy Mikula
  • 1,437

9 Answers9

7

Most of applications that use GNU tool-chain can be built from source like this:

./configure --prefix=[directory which will contain your 'portable' application]
make
make install

and then moved to different computer with compatible libraries.

Linux doesn't have registry many applications usually do not really need to be 'installed' they can be built from the source instead so making "My Specialy Portable © applications for Linux" is apsolutely pointless so I think nobody even cares about this.

Just look at the topmost answer for this question and you'll understand that stupid concept of making applicatins 'portable' 'usefull' just in the world of registry and proprietary applications with license management.

Alex Bolotov
  • 1,422
5

The ./configure trick will work for some applications. Many applications, however, encode the prefix into themselves and then use it at run time to find supporting files. They also need the ability to load their shared library files (although the LD_LIBRARY_PATH environment variable can be set to help with that). The result of this, however, is that the portable applications will likely not be very portable -- they will depend upon being at the specified prefix. This will probably work in many places (most modern distros mount media at /media/DISKNAME), but it does prevent the application from being truly portable and location-independent.

The net answer, therefore, is that making portable Linux applications, while not impossible, is rife with subtleties. I suspect that this is a major contributing factor to why it isn't done near as much as it is on Windows. Additionally, public computing facilities (where the bulk of the portable application benefit arises) typically do not run Linux. A notable exception is university labs, but you can usually install some extra software in your home directory there.

2

The problem with running apps on existing Linux systems is that often apps are compiled to use shared libraries. There are many Linux distributions and many versions of base libraries. If you are lucky, the existing Linux system will have the same versions of them and your app will be linked against the correct version of libraries. If not, it won't work. A workaround would be to compile the apps you need with statically linked libraries, but this leads to much bigger program sizes.

vtest
  • 5,358
1

Another take on your question is the notion of startups today who often write client side code once then leverage frameworks to do the heavy lifting of synthesizing clients for iOS, Android and the web. Here the business logic is portable yet its automatically ported by that tooling. There are many such frameworks, Meteor is one.

Taken this way, a significant proportion of any app found in app stores has this portable heritage.

To further blur this idea we now have WebAssembly which allows you to write your browser code ( which by definition is javascript ) in a growing number of statically compiled traditionally server side languages which gets parsed to synthesize javascript to target the client.

You are asking about linux apps however with tooling like Electron which effectively is a GUI or command line wrapped around nodejs the idea of portable linux apps is experiencing an explosion of choices

1

HackToLive.org (maintainer of Super OS version of Ubuntu) maintains some portable apps for Linux:

http://hacktolive.org/wiki/Portable_Applications_(Linux)

codeLes
  • 1,852
1

You can check Portable Linux Apps. Just download portable binaries and make them executable. all the needed dependencies are included in the binary.

user
  • 2,017
1

To make any app portable, you might be able to make symlinks that you put in the home folder when you log in; the app will save preferences through the symlink to wherever it leads, say the flash drive. I've used this for portable Minecraft saves.

1

Linux for Travelers tracks this topic and has several tricks to get around the fact that there aren't (yet?) portable apps installs aimed at Linux - likely for the reason you mentioned: if you have install privileges already adding new applications is easy enough to not need using your portable ones.

  • Install WINE and run the apps from PortableApps.com or elsewhere. This seems like overkill, but it does let you use a portable apps install you already have.
  • Run Damn Small Linux inside your existing Linux install (e.g. on Ubuntu). This one is useful if you don't already have install privileges on a given Linux system.
quark
  • 888
0

There's a new player on the field, AppImage. Applications are packaged as a single file, with all dependencies included, so they may be run regardless of the underlying distribution.

There is a repository of app images at AppImageHub.

DevSolar
  • 4,560