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:
“People stress the violence. Thats the smallest part of it. Football is brutal only from a distance. In the middle of it theres a calm, a tranquility. The players accept pain. Theres a sense of order even at the end of a running play with bodies stewn everywhere. When the systems interlock, theres a satisfaction to the game that cant be duplicated. Theres a harmony.”
—Don Delillo (b. 1926)