Der Ente ist ein Fluss.

Sometimes, I want to install and test bleeding-edge-software, like snapshots of ECL in the days when it didnt support gray-streams in the stable version. Always creating a new Package and installing it is a lot of work, especially when having to compile multiple times. Maintaining several paths of different versions of software can also be a pain, but installing them on a central place can cause problems, for example it can be non-trivial to remove them again.

A very good solution for that problem seems to be stow and xstow. It can be used to create symlinks from a directory to /usr/local, and remove them again afterwards.

Lets say you want to install Mizar. Well, this project is not open source, nor does it come in a really useful format. So firstly, after downloading and expanding, I am creating a directory /usr/local/stow/mizar. Then I run the installer to install it into this directory

$ sudo ./
Installation of Mizar System Version 7.9.03 (Linux/FPC) (MML 4.110.1033)
Enter the path for installing Mizar executables
[default is /usr/local/bin]
Unpacking to /usr/local/stow/mizar/bin
Enter the path for installing Mizar shared files
[default is /usr/local/share/mizar]
Unpacking to /usr/local/stow/mizar/share/mizar
It may take some time...
Enter the path for installing Mizar documentation
[default is /usr/local/doc/mizar]
Unpacking to /usr/local/stow/mizar/doc/mizar
The installation process of the Mizar system is completed.

That being done, lets go to xstow:

$ cd /usr/local/stow
$ sudo xstow mizar
$ which mizf

That worked well so far. Of course, we have to change the MIZFILES environment variable properly, but anyway, now mizar is sort of installed.

To uninstall it again:

$ cd /usr/local/stow
$ sudo xstow -D mizar
$ which mizf

It is not installed anymore (well, the files are still in /usr/local/stow/mizar, but not in any default directory). This is very helpful, especially for software like mizar, which is not really cooperative with the system.