Traditionally, UNIX programs are installed in standard locations (
/usr/local/, ...). While this works perfectly, problems arise when different releases of the same package must be deployed on a system, or when a binary (or a shared library, a manual page, ...) of a package interferes with other packages. Moreover, this method does not offer a proper way to remove a package from the system, and heavily relies on user environment setup ($PATH, $LD_LIBRARY_PATH).
toolwrap is a wrapper tool (a program which starts other program), which may be used to start applications according to defined preferences (or policies). Thanks to toolwrap, many releases of a given application can coexist, and may be deployed on a single workstation or made available on a files server. Policy files allow different users to use different versions transparently. Environment files control which binaries to use and prepare the environment before starting the application.
toolwrap enables system administrators to keep applications (or packages) in meaningful locations.
/opt/pkgs/myapplication-0.1 /opt/pkgs/myapplication-0.2 /opt/pkgs/make-3.79 /opt/pkgs/openoffice.org-1.1.0 ...
This methodology offers a clean way to install a package in its own directory hierarchy, thus enabling to remove it without disturbing the others installed applications.
toolwrap also enables users to select which revision of an application to run. Policies files control this. For example, when
"make" is invoked from the command line, toolwrap may start
/opt/pkgs/make-3.79/bin/make if a policy says to do so. Two users may have different preferences on which version of
make to run. Thanks to their personal policies, the right binary will be started when they will invoke