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
back-up) 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 24.7.1, “De universele wijze om een systeem bij te werken”. Na het make
commando en het daarop
volgende installworld
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
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
Het 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
wordt uitgevoerd.delete-old-libs
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:
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,1Deï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