Portability On Linux and UNIX-like Systems
See also: Autopackage, RUNZ, and Zero InstallPrograms written with a Unix-like base in mind often do not make any assumptions. Whereas many Windows programs assume the user is an administrator—something very prevalent in the days of Windows 95/98/ME (and to some degree in Windows XP/2000, though not in Windows Vista or Windows 7)—such would quickly result in "Permission denied" errors in Unix-like environments since users will be in an unprivileged state much more often. Programs are therefore generally designed around using the HOME
environment variable to store settings (e.g. $HOME/.w3m
for the w3m browser). The dynamic linker provides an environment variable LD_LIBRARY_PATH
that programs can use to load libraries from non-standard directories. Assuming /mnt
contains the portable programs and configuration, a command line may look like:
A Linux application without need for a user-interaction (e.g. adapting a script or environment variable) on varying directory paths can be achieved with the GCC Linker option $ORIGIN which allows a relative library search path.
Not all programs honor this – some completely ignore $HOME and instead do a user look-up in /etc/passwd
to find the home directory, therefore thwarting portability.
Some Linux distributions already have native support for portable apps (Super OS, with RUNZ files).
There are also cross-distro package formats that don't require admin rights to run, like Autopackage or CDE, but with only limited acceptance and support in the Linux community.
Read more about this topic: Portable Application
Famous quotes containing the word systems:
“The skylines lit up at dead of night, the air- conditioning systems cooling empty hotels in the desert and artificial light in the middle of the day all have something both demented and admirable about them. The mindless luxury of a rich civilization, and yet of a civilization perhaps as scared to see the lights go out as was the hunter in his primitive night.”
—Jean Baudrillard (b. 1929)