Aufgrund der ständigen Weiterentwicklung von FreeBSD kann es
dazu kommen, dass Dateien und deren Inhalte obsolet werden, weil
deren Funktionalität entweder in anderen Dateien implementiert
wurde, sich die Versionsnummer der Bibliothek geändert hat
oder deren Funktion nicht mehr benötigt wird. Dies kann
sowohl Dateien und Verzeichnisse, aber auch Bibliotheken
betreffen. Diese veralteten Dateien sollten daher entfernt
werden, wenn das System aktualisiert wird. Der Vorteil besteht
darin, dass das System von nicht mehr benötigten Dateien
befreit wird. Falls die obsolete Bibliothek Sicherheits- oder
Stabilitätsprobleme aufweist, sollte das System ebenfalls
aktualisiert werden, um das System sicher zu halten und/oder
durch die fehlerhafte Bibliothek verursachte Systemabstürze zu
vermeiden. Veraltete Dateien, Verzeichnisse und Bibliotheken
sind in der Datei
/usr/src/ObsoleteFiles.inc
aufgelistet.
Verwenden Sie die folgenden Anweisungen, um diese Dateien
während der Systemaktualisierung zu entfernen.
Folgen Sie den Anweisungen von
Abschnitt 24.7.1, „Richtig aktualisieren“. Nachdem Sie
make installworld
sowie mergemaster
erfolgreich ausgeführt
haben, überprüfen Sie das System auf veraltete Dateien und
Bibliotheken:
#
cd /usr/src
#
make check-old
Werden dabei veraltete Dateien gefunden, können diese mit dem folgenden Kommando entfernt werden:
#
make delete-old
Weitere interessante
targets finden Sie in
/usr/src/Makefile
.
Bei jeder Datei wird nachgefragt, ob Sie diese wirklich
löschen wollen. Es ist aber auch möglich, alle
Dateien automatisch löschen zu lassen. Dies erreichen Sie,
indem Sie die Umgebungsvariable
BATCH_DELETE_OLD_FILES
setzen:
#
make -DBATCH_DELETE_OLD_FILES delete-old
Alternativ können Sie auch yes
einsetzen und somit die Antwort yes
an die einzelnen Abfragen weiterreichen:
#
yes | make delete-old
Das Löschen veralteter Dateien kann dazu führen,
dass Programme, die auf diese Dateien angewiesen sind, nicht mehr
funktionieren. Dies gilt insbesondere für veraltete
Bibliotheken. In den meisten Fällen ist es dann notwendig,
Programme, Ports und Bibliotheken, welche die veraltete
Bibliothek verwenden, neu zu bauen, bevor Sie den Befehl
make
delete-old-libs
ausführen.
Die Ports-Sammlung enthält Werkzeuge, die Ihnen beim Prüfen von Bibliothek-Abhängigkeiten helfen können: sysutils/libchk sowie sysutils/bsdadminscripts.
Veraltete Bibliotheken können zu Konflikten mit neueren Bibliotheken führen und beispielsweise folgende Meldungen verursachen:
/usr/bin/ld: warning: libz.so.4, needed by /usr/local/lib/libtiff.so, may conflict with libz.so.5 /usr/bin/ld: warning: librpcsvc.so.4, needed by /usr/local/lib/libXext.so, may conflict with librpcsvc.so.5
Um diese Probleme zu lösen, müssen Sie zuerst herausfinden, welcher Port die Bibliothek installiert hat:
#
pkg_info -W /usr/local/lib/libtiff.so
/usr/local/lib/libtiff.so was installed by package tiff-3.9.4#
pkg_info -W /usr/local/lib/libXext.so
/usr/local/lib/libXext.so was installed by package libXext-1.1.1,1
Danach deinstallieren Sie den Port und bauen ihn neu, um ihn danach erneut zu installieren. Dieser Vorgang kann durch den Einsatz von ports-mgmt/portmaster automatisiert werden. Nachdem alle Ports neu gebaut wurden und keine alten alten Bibliotheken mehr verwenden werden, können Sie die alten Bibliotheken endgültig entfernen:
#
make delete-old-libs
Wenn Sie Fragen zu FreeBSD haben, schicken Sie eine E-Mail an
<de-bsd-questions@de.FreeBSD.org>.
Wenn Sie Fragen zu dieser Dokumentation haben, schicken Sie eine E-Mail an
<de-bsd-translators@de.FreeBSD.org>.