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

  • Führe keine Aktionen aus, die das Dateisystem beeinflussen, zeigt nur an, was passieren würde. Da keine tatsächliche Installation durchgeführt wird, könnte stow -n Konflikte anzeigen, die bei einer richtigen Installation nicht auftreten würden (Siehe "Conflicts" im Info-Manual) aber es kann über Konflikte informieren, die auftreten könnten.

-c, --conflicts

  • Nicht sofort abbrechen, wenn ein Konflikt auftritt. Diese Option ähnelt -n und wird genutzt, um nach allen Konflikten zu suchen, die bei einer Stow-Operation auftreten könnten. Wie bei -n können hier falsche Konflikte angezeigt werden. (Siehe "Conflicts" im Info-Manual)

-d DIR, --dir=DIR

  • Setzt das Stow-Verzeichnis auf DIR statt auf das aktuelle Verzeichnis. Dies hat auch den Effekt, dass das Standard-Zielverzeichnis zum Unterverzeichnis von DIR wird.

-t DIR, --target=DIR

  • Setzt das Zielverzeichnis auf DIR statt des Unterverzeichnisses von Stow.

-v, --verbose[=N]

  • Gibt detaillierte Informationen, die den Vorgang von Stow protokollieren, auf dem Standard-Fehlerkanal aus. Die Detail-Stufen sind 0, 1, 2 und 3; 0 ist der Standardwert. Benutzen Sie -v oder --verbose, um die Detail-Stufe um eins zu erhöhen, --verbose=N setzt es auf N.

-D, --delete

  • Löscht ein Paket, das zuvor installiert wurde, aus dem Zielverzeichnis.

-R, --restow

  • Überholt Pakete (restow) (zuerst unstow, dann wieder stow). Diese Option ist nützlich, um symlinks nach einem Paket-Update zu aktualisieren.

-V, --version

  • Zeigt die Versionsnummer. (Diese Aktion führt keine weitere Aktion durch)

-h, --help

  • Zeigt die stow-Befehls-Syntax an. (Diese Aktion führt keine weitere Aktion durch)

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)

AltStyle によって変換されたページ (->オリジナル) /