Das FreeBSD-Handbuch
Zurück | Kapitel 25. FreeBSD aktualisieren | Weiter

# 25.8. Veraltete Dateien, Verzeichnisse und Bibliotheken löschen

Basiert auf Notizen von Anton Shterenlikht.

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 Verzeichnis, aber auch Bibliotheken betreffen. Diese veralteten Dateien sollten daher entfernt werden, bevor Sie Ihr System aktualisieren. Der Vorteil für den Benutzer ist darin zu sehen, dass dessen System (sowie dessen Backup) von nicht mehr benötigten Dateien gereinigt wird. Falls die obsolete Bibliothek Sicherheits- oder Stabilitätsprobleme aufweist, sollte das System ebenfalls aktualisiert werden, um Ihr 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. Die folgenden Anweisungen sollen Ihnen dabei helfen, diese Dateien während der Systemaktualisierung zu entfernen.

Im Folgenden wird angenommen, dass Sie den Anweisungen von Abschnitt 25.7.1 folgen. Nachdem Sie `make `installworld`` sowie `mergemaster` erfolgreich ausgeführt haben, sollten Sie Ihr System auf veraltete Dateien und Bibliotheken hin überprüfen:

    # cd /usr/src
    # make check-old

Werden dabei veraltete Dateien gefunden, können diese im nächsten Schritt entfernt werden:

    # make delete-old

> Tipp: Weitere interessante Targets finden sich in der Datei `/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` entsprechend setzen:

    # make -DBATCH_DELETE_OLD_FILES delete-old

Alternativ können Sie auch den folgenden Befehl einsetzen (und jeweils die Antwort `yes` an die einzelnen Abfragen weiterreichen):

    # yes | make delete-old

> Warnung: 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 der Werkzeuge `ports-mgmt/portmaster` oder `ports-mgmt/portupgrade` automatisiert werden. Nachdem Sie alle Ports erfolgreich neu gebaut haben (und Sie daher keine veralteten Bibliotheken mehr verwenden) können Sie die veralteten Bibliotheken endgültig entfernen:

    # make delete-old-libs

Zurück | Zum Anfang | Weiter
Das komplette Basissystem neu bauen | Nach oben | Installation mehrerer Maschinen

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>.