findbrokenpkgs
Vorgestellt von Stefan Husmann
Genervt von vielerlei Anfragen im englischsprachigen Archlinux-Forum,
in denen es um Shared Libraries ging, die nicht zu den Programmen
passten, zu denen sie hätten passen sollen, oder um die unzuverlässige
Methode, einfach einen Symlink a la
ln -s libdoof.so.3 libdoof.so.4
zu setzen, vermeiden zu helfen, hat ein engagierter ArchLinux User,
der einen sehr intelligent dreinblickenden Schimpansen in seinem
Avatar hat, ein Skript aus der Gentoo-Welt auf ArchLinux und pacman
abgestimmt und ins AUR gestellt. Es heißt findbrokenpkgs. Dieses
möchte ich hier anhand eines Realbeispiels, das auf meinem Rechner so
abgelaufen ist, (nicht ganz so) kurz vorstellen.
In einem interessanten Thread
http://bbs.archlinux.org/viewtopic.php?id=13882
sind ein paar Developer auf das Skript aufmerksam geworden und haben
es mit lddd, einem Skript aus den devtools, verglichen. Der Vergleich
fiel durchaus positiv für findbrokenpkgs aus.
Aber nun zu meienm Realbeispiel.
Ein findbrokenpkgs-Lauf erzeugt typischerweise eine Terminalausgabe
der folgenden Art:
Checking reverse dependencies...
Collecting system binaries and libraries... done.
(/home/haawda/.findbrokenpkgs.1_files)
Collecting complete LD_LIBRARY_PATH... done.
(/home/haawda/.findbrokenpkgs.2_ldpath)
Checking dynamic linking consistency...
/usr/lib/perl5/site_perl/current/i686-linux-thread-multi/auto/Audio/XMMSClient/XMMSClient.so needs missing libxmmsclient.so.3
/usr/lib/python2.5/site-packages/qtext.so needs missing libqscintilla.so.7
/usr/lib/wine/gphoto2.ds.so needs missing libgphoto2.so.2 libgphoto2_port.so.0
done.
(/home/haawda/.findbrokenpkgs.3_rebuild)
Assigning files to packages...error: No package owns /usr/lib/perl5/site_perl/current/i686-linux-thread-multi/auto/Audio/XMMSClient/XMMSClient.so
*** /usr/lib/perl5/site_perl/current/i686-linux-thread-multi/auto/Audio/XMMSClient/XMMSClient.so is orphan & broken! ***
/usr/lib/perl5/site_perl/current/i686-linux-thread-multi/auto/Audio/XMMSClient/XMMSClient.so -> (none)
/usr/lib/python2.5/site-packages/qtext.so -> pyqt3
/usr/lib/wine/gphoto2.ds.so -> wine
done.
(/home/haawda/.findbrokenpkgs.4_*)
Cleaning list of packages to rebuild... done.
(/home/haawda/.findbrokenpkgs.5_packages)
Orphaned broken files:
/usr/lib/perl5/site_perl/current/i686-linux-thread-multi/auto/Audio/XMMSClient/XMMSClient.so
This list of orphaned broken files is in /home/haawda/.findbrokenpkgs.4_orphans
Recompile these packages:
pyqt3 wine
Some/all breakages may be OK - this program cannot distinguish between required
and optional dependencies. See http://bbs.archlinux.org/viewtopic.php?id=13882
In diesem Fall war bei mir tatsächlich die Datei
/usr/lib/perl5/site_perl/current/i686-linux-thread-multi/auto/Audio/XMMSClient/XMMSClient.so
vorhanden und keinem Paket zuzuordnen. Sie konnte also guten Gewissens
gelöscht werden.
Die fehlende Datei
/usr/lib/python2.5/site-packages/qtext.so needs missing libqscintilla.so.7
fehlte bei mir tatsächlich. war aber durch bloße Deinstallation und
Reinstallation eines Paketes nebst Abhängigkeiten wieder da.
Wine hat offenbar eine zumindest optionale Abhängigkeit zu libgphoto2,
die bei dieser Aktion aufgefallen ist. findbrokenpkgs kann nicht
erkennen, ob eine Abhängigkeit optional ist oder tatsächlich benötigt
ist. Eine Installation von libgphoto2 brachte jedenfalls die fehlenden
Shared Libraries zutage (und eine Menge anderer Fehler, aber das liegt
daran, dass libgphoto kaputt ist, dazu gibt es aber zwei Bugreports).
Über die Bildschirmausgabe hinaus legt findbrokenpkgs übrigens auch
noch im Homeverzeichnis des Benutzers, der es aufruft, Dateien an, die
alle Einzelschritte nochmals nachvollziebar machen.
Diese Beispiele sind sicherlich nicht eins zu eins auf jedermanns System
übertragbar, zeigen aber hoffentlich auf, dass findbrokenpkgs beim
Aufräumen des Systems unschätzbare Dienste leisten kann. Und da es ein
kleines Skript ist, sollte man es m.E. immer installieren.
----
In der Rubrik "Programm des Monats" wird einmal pro Monat ein Programm oder Tool
vorgestellt, welches der Masse der Anwender wahrscheinlich nicht bekannt ist. Das
können zum einen einfach nur die "kleinen Helferlein" sein, aber auch Alternativen
zu den "bekannten" Programmen wie sie z.B. KDE oder Gnome mitbringen.
Diese Rubrik lebt von Euren Beiträgen. Wer also etwas schreiben möchte, dann
bitte
diesen Thread beachten.