Installieren ohne Reue
The Answer Girl
Verstauen
Der Vorteil des neuen Stow-Directories: Wir müssen das Target-Verzeichnis /usr/local nicht mehr mit angeben:
/usr/local/stow # ./stow/bin/stow -v stow Stowing package stow… LINK /usr/local/bin/stow to ../stow/stow/bin/stow LINK /usr/local/info to stow/stow/info
verlinkt ordentlich, und auch die Deinstallation sieht vernünftig aus:
/usr/local/stow # stow -v -D stow UNLINK /usr/local/bin/stow UNLINK /usr/local/info UNLINK /usr/local/bin/stow RMDIR /usr/local/bin
Links werden entfernt und nunmehr leere Verzeichnisse wie /usr/local/bin gelöscht. Nach der Wiederverlinkung von stow zeigt /usr/local/bin als neuangelegter Link auf /usr/local/stow/stow/bin.
Um nun auch sylpheed sauber zu installieren, müssen wir das Mailprogramm allerdings mit neuem Präfix /usr/local/stow/sylpheed neu konfigurieren und kompilieren, ehe stow nach einem make install seinem Verlinkungswerk nachgehen kann:
/usr/local/stow # stow -v sylpheed Stowing package sylpheed… UNLINK /usr/local/bin MKDIR /usr/local/bin LINK /usr/local/bin/stow to ../stow/stow/bin/stow LINK /usr/local/bin/sylpheed to ../stow/sylpheed/bin/sylpheed LINK /usr/local/share to stow/sylpheed/share
… und für eine angenehme Überraschung sorgt:
/usr/local/stow # ls -al /usr/local/bin insgesamt 0 lrwxrwxrwx 1 root root 21 Nov 26 20:13 stow -> ../stow/stow/bin/stow lrwxrwxrwx 1 root root 29 Nov 26 20:13 sylpheed -> ../stow/sylpheed/bin/sylpheed
Plötzlich ist /usr/local/bin kein Symlink auf das bin-Verzeichnis des stow-Pakets mehr, sondern ein ordentliches Directory, in dem zwei neue Symlinks zu finden sind: Das stow-Programm wurde nach der Auflösung des alten Links auf /usr/local/stow/stow/bin einfach eigenständig verlinkt. Sollte es uns nun danach gelüsten, sylpheed wieder loszuwerden, rollt sich alles wieder sauber zurück:
/usr/local/stow # stow -v -D sylpheed UNLINK /usr/local/bin/sylpheed UNLINK /usr/local/share UNLINK /usr/local/bin/stow RMDIR /usr/local/bin LINK /usr/local/bin to stow/stow/bin /usr/local/stow # ls -al /usr/local/bin lrwxrwxrwx 1 root root 13 Nov 26 20:14 /usr/local/bin -> stow/stow/bin
Ein rm -rf /usr/local/stow/sylpheed sorgt dann dafür, dass (außer persönlichen Mail- und Konfigurationsdateien) wirklich keine Rückstände mehr auf dem System verbleiben.
Glossar
Makefile
Datei, die die Anweisungen enthält, die make ausführen soll. Bekommt die GNU-Version von make nicht mit der Option -f gesagt, welches File das sein soll, sucht es der Reihe nach nach einer Datei namens GNUmakefile, makefile oder Makefile im Arbeitsverzeichnis.
mirror
Ein Tool [1], das Verzeichnishierarchien einer Maschine auf einer anderen "spiegelt", sodass identische Kopien vorliegen.
rwxr-xr-x
Die ls-Option -l zeigt an, welche Nutzer was mit einer Datei oder einem Verzeichnis tun dürfen – Lesen (r, "read"), Schreiben (w, "write"), Ausführen (bei Verzeichnissen: Hineinwechseln, x, "execute") – oder nicht (-). Das erste Buchstabentripel rwx besagt, dass die Dateibesitzerin alles darf. Der Gruppe, der die Datei zugeordnet ist, stehen hingegen nur Lese- und Ausführbarkeitsrechte zu, sie darf das File wegen des - im mittleren Tripel nicht verändern (schreiben). Alle übrigen Nutzer dürfen ebenfalls nur lesen und ausführen bzw. hineinwechseln. Eine andere Schreibweise für rwxr-xr-x ist 755. Sie ergibt sich, wenn man r mit 4, w mit 2, x mit 1 und - mit 0 kodiert und die Werte eines Tripels addiert: 4+2+1=7, 4+0+1=5.
/usr/local
Dieses Verzeichnis, das idealerweise auf einer eigenen Partition liegt, ist dazu gedacht, lokal installierte Software vorrätig zu halten. "Lokal" heißt hierbei sowohl "nicht zur Distribution gehörend", als auch (in Netzwerken) "tatsächlich auf der Festplatte dieses Rechners installiert und nur für diesen Rechner gedacht" (im Gegensatz zu zentral vorgehaltenen und etwa über das "Network Filesystem" NFS den einzelnen Arbeitsstationen zur Verfügung gestellten Ressourcen).
Header-Files
Will man Software kompilieren, die Funktionalität aus Bibliotheken dynamisch nutzt, muss man die Schnittstellen dieser Library, das API ("Application Programmer Interface"), zur Compile-Zeit parat haben. Diese stehen bei C- und C++-Programmen in sogenannten Header-Dateien mit der Endung .h.
Mirror
Ein Server, der den Datenbestand eines anderen "spiegelt", also als möglichst aktuelle Kopie vorhält. Zu diesem Zweck wird gern das Tool mirror [1] eingesetzt.
.
Kurzschreibweise der Shell für das Verzeichnis, in dem man sich gerade befindet. Zwei Punkte (..) bezeichnen hingegen das genau über dem Arbeitsverzeichnis liegende "Elternverzeichnis".
ls -A
Die Option -A sorgt dafür, dass ls auch "versteckte Dateien" auflistet, deren Namen mit einem Punkt beginnen. Anders als bei -a bekommt die Nutzerin das aktuelle (.) und das übergeordnete (..) Verzeichnis nicht mit aufgelistet.
Infos
[1] mirror: http://sunsite.org.uk/packages/mirror/
[2] sylpheed: http://sylpheed.good-day.net/
[3] symlinks: http://packages.debian.org/unstable/utils/symlinks.html
[4] stow: http://www.gnu.org/software/stow/
[5] stow: http://packages.debian.org/stable/admin/stow.html
[6] Heike Jurzik, Patricia Jung: "diff!", LinuxUser 10/2001, S. 91, https://www.linux-user.de/ausgabe/2001/11/091-zubefehl/diff-1.html



