Did you know that if you put your ear to someone

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 ./install.sh
 
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]
/usr/local/stow/mizar/bin
Unpacking to /usr/local/stow/mizar/bin
 
Enter the path for installing Mizar shared files
[default is /usr/local/share/mizar]
/usr/local/stow/mizar/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]
/usr/local/stow/mizar/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
/usr/local/bin/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.