FreeBSD handboek
Terug | Hoofdstuk 25. FreeBSD updaten en upgraden | Volgende

# 25.8. Het verwijderen van overbodige bestanden, directories en bibliotheken

Gebaseerd op notities van Antn Shterenlikht.

Als onderdeel van de FreeBSD ontwikkel levenscyclus kan het van tijd tot tijd gebeuren dat bestanden en de inhoud ervan overbodig worden. Dit kan komen doordat de functionaliteit ergens anders geïmplementeerd is, het versienummer van de bibliotheek veranderd is of hij is totaal van het systeem verdwenen. Dit is inclusief oude bestanden, bibliotheken en directories welke verwijderd moeten worden bij het updaten van het systeem. Het voordeel voor de gebruiker is dat het systeem niet vervuild wordt met oude bestanden die onnodig ruimte innemen op het opslag (en backup) systeem. Ook is het zo dat als de oude bibliotheek een beveiligings of stabiliteits probleem had, er moet worden geupdate naar de nieuwere bibliotheek om het systeem veilig te houden en te voorkomen dat er crashes komen door de oude implementatie van de bibliotheek. De bestanden, directories en bibliotheken welke als overbodig worden gezien zijn beschreven in `/usr/src/ObsoleteFiles.inc`. De volgende instructies zullen helpen om deze verouderde bestanden te verwijderen tijdens het systeem upgrade proces.

Er wordt aangenomen dat de stappen gevolgd worden zoals uitgelegd in Paragraaf 25.7.1. Na het `make `installworld`` commando en het daarop volgende `mergemaster` commando succesvol uitgevoerd zijn kan er op de volgende manier gecontroleerd worden voor verouderde bestanden en bibliotheken:

    # cd /usr/src
    # make check-old

Als er verouderde bestanden gevonden worden kunnen deze verwijderd worden door het volgende commando:

    # make delete-old

> Tip: Zie het `/usr/src/Makefile` bestand voor meer interessante targets.

Er wordt een prompt getoond voordat elk verouderd bestand wordt verwijderd. Deze prompt kan worden overgeslagen en het systeem deze bestanden automatisch laten verwijderen door gebruik te maken van de `BATCH_DELETE_OLD_FILES` make variabele als volgt:

    # make -DBATCH_DELETE_OLD_FILES delete-old

Dit kan ook worden gedaan door deze commando's door `yes` te pipen als volgt:

    # yes|make delete-old

> WaarschuwingHet verwijderen van verouderde bestanden zal applicaties stuk maken die nog gebruik maken van de overbodige bestanden. Dit is zeker waar voor oude bibliotheken. In de meeste gevallen moeten de programma's, ports of bibliotheken opnieuw gecompileerd worden voordat `make `delete-old-libs`` wordt uitgevoerd.

Gereedschappen om gedeelde bibliotheek afhankelijkheden te controleren zijn beschikbaar in de Ports Collectie in `sysutils/libchk` of `sysutils/bsdadminscripts`.

Overbodige gedeelde bibliotheken kunnen conflicteren met nieuwere bibliotheken welke berichten zoals deze kunnen veroorzaken:

    /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

Om deze problemen op te lossen moet bepaald worden welke port deze bibliotheek heeft geïnstalleerd:

    # 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

Deïnstalleer, herbouw en herinstalleer de port. De `ports-mgmt/portmaster` en `ports-mgmt/portupgrade` gereedschappen kunnen gebruikt worden om deze processen te automatiseren. Nadat zeker is dat alle ports opnieuw gebouwd zijn, en de oude bibliotheken niet meer gebruikt worden, kunnen deze verwijderd worden met het volgende commando:

    # make delete-old-libs

Terug | Begin | Volgende
De wereld opnieuw bouwen | Omhoog | Meerdere machines bijwerken