Stow ist ein kleines Programm (eigentlich nur ein Perl-Script), welches die Installationen in /usr/local verwalten soll.

Homepage: http://www.gnu.org/software/stow/

Lizenz: GPL

Wer braucht Stow

Wenn du nur paketierte Software installierst oder Software (wie z.B. bei kommerzieller Software üblich), die sich vollautomatisch ins System integriert, wirst Du stow nicht brauchen. Wer allerdings selbst Software kompilieren und diese ins System integrieren will, für den ist Stow gedacht. (Siehe auch: SourceCodeKompilieren)

Warum überhaupt Stow

Der normale Kompilier- und Installationsvorgang läuft meist wie folgt ab:

./configure
make
make install

Hierbei landet die Software meistens direkt unter /usr/local. Das ist zwar alles richtig und funktioniert auch prächtig, allerdings wird man unter Umständen Probleme bekommen, wenn man die Software wieder loswerden oder updaten möchte. Einige Makefiles bieten zwar ein "make uninstall" an, aber wer will schon seine Source-Verzeichnisse nur für die De-Installation behalten?

Was macht Stow?

Bei Stow installiert man die Programme nicht direkt dorthin, wo sie eigentlich hingehören, sondern ins Unterverzeichnis "stow". Wenn man z.B. nmap mit stow nach /usr/local installieren möchte, installiert man es nach /usr/local/stow/nmap-x.xx. Dann führt man stow aus, welches die Symlinks nach /usr/local anlegt.

Wenn man nmap jetzt wieder loswerden möchte, geht das ganz einfach: Man löscht zuerst die Symlinks mit Hilfe von Stow und dann das nmap-verzeichniss in /usr/local/stow

Praxis

Wenn die Theorie soweit klar ist, ein kleines Praxisbeispiel:

  1. Sources laden und entpacken

    wget http://download.insecure.org/nmap/dist/nmap-3.28.tar.bz2
    tar xvfj nmap-3.28.tar.bz2
  2. Sources kompilieren und nach /usr/local/stow installieren (make install als root!)

    cd nmap-3.28
    ./configure --prefix=/usr/local/stow/nmap-3.28
    make
    make install

    Der Parameter --prefix bewirkt, dass später im Makefile dies als Installationwurzelspfad drinnen steht. Wurzel deshalb, weil unterhalb lib/ bin/ usw. Verzeichnisse entstehen.

  3. Mit Stow die Symlinks erstellen

    cd /usr/local/stow
    stow nmap-3.28
    ldconfig # Notwendig, um neue Librarys im System zu registrieren

    Der Aufruf von stow muss in dem Verzeichnis /usr/local/stow erfolgen.

  4. Und wieder loswerden

    cd /usr/local/stow
    stow -D nmap-3.28
    rm -rf nmap-3.28

    Wieder das stow-VZ.

Optionen von Stow

-n, --no

-c, --conflicts

-d DIR, --dir=DIR

-t DIR, --target=DIR

-v, --verbose[=N]

-D, --delete

-R, --restow

-V, --version

-h, --help

Erweiterungen zu dieser Anleitung

...sind erwünscht!

Tipps & Tricks

Man kann (X)Stow auch mit sich selbst in /usr/local installieren. Eine Anleitung hierzu findet in der Manpage von XStow.

Ähnliche Projekte

XStow ist ein in C++ geschriebenes Stow, welches auch einige zusätzliche Features mitbringt, die allerdings allesamt die Kompatibilität mit GNU Stow brechen, wenn man sie benutzt. Trotz des X hat XStow nichts mit einer grafischen Oberfläche zu tun.

Stow (zuletzt geändert am 2014-08-29 07:46:13 durch mgw)