Flexibel pakketbeheer met GNU Stow
Gepubliceerd: Dinsdag 28 december 2010
Auteur: Koen Vervloesem
Iedere systeembeheerder moet wel eens een programma compileren, omdat het niet als pakket beschikbaar is in je Linux-distributie. Dankzij GNU Stow kun je dit in goede banen leiden.
GNU Stow behoudt alle bestanden afzonderlijk in één directory per programma. Zo krijg je bijvoorbeeld /usr/local/stow/icinga of /usr/local/stow/perl. In die laatste directory bevindt de binary zich dan in /usr/local/stow/perl/bin/perl en de man-pagina in /usr/local/stow/perl/man/man1.
Installeren met Stow
De eerste stap om een programma met Stow te installeren is de klassieke configure/make/make install procedure, maar bij de make install-stap mag je niet vergeten de parameter prefix=/usr/local/stow/foobar-0.1 aan te geven om te verwijzen naar de directory waarin het desbetreffende programma (of bibliotheek) geïnstalleerd wordt. Een voorbeeld:
$ ./configure
$ make
$ sudo make install prefix=/usr/local/stow/foobar-0.1
Na het installeren van het programma ga je naar de hoofddirectory van Stow en voer je Stow uit op de directory van het programma:
$ cd /usr/local/stow
$ sudo stow foobar-0.1
Stow maakt nu symbolische links aan, bijvoorbeeld van /usr/local/bin/foobin naar /usr/local/stow/foobar-0.1/bin/foobin en van /usr/local/man/man1/foobin.1 naar /usr/local/stow/foobar-0.1/man/man1/foobin.1. Gebruik je de optie -v of -vv bij het 'stowen' van de directory van een programma, dan krijg je te zien welke symlinks er aangemaakt worden.
Deinstalleren
Een door Stow beheerd programma uninstallen is even eenvoudig:
$ cd /usr/local/stow
$ sudo stow -D foobar-0.1
Dit verwijdert de symlinks, maar raakt niet aan de bestanden in /usr/local/stow/foobar-0.1. Ook hier krijg je met de optie -v of -vv meer informatie te zien.
Wanneer je nu meerdere versies van hetzelfde pakket wil testen, kun je deze elk installeren in bijvoorbeeld /usr/local/stow/foobar-0.1, /usr/local/stow/foobar-0.2 en /usr/local/stow/foobar-0.3, en activeer je een specifieke versie als volgt:
$ cd /usr/local/stow
$ sudo stow -D foobar-0.1
$ sudo stow foobar-0.2
De rubriek Tips & Tools biedt praktische informatie die IT-professionals in hun dagelijkse werk kunnen toepassen.
