Update to 41772:

Removing old files is not an optional step on updating and upgrading FreeBSD.
Reflect this by merging make delete-old section into the updating section.
This commit is contained in:
Bjoern Heidotting 2016-06-21 20:21:33 +00:00
parent f28ec6a08f
commit 2418dc4744
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=48974

View file

@ -5,7 +5,7 @@
$FreeBSD$
$FreeBSDde$
basiert auf: r41776
basiert auf: r41772
-->
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:id="updating-upgrading">
<info><title>&os; aktualisieren</title>
@ -2771,6 +2771,82 @@ Script done, &hellip;</screen>
</sect3>
</sect2>
<sect2 xml:id="make-delete-old">
<info>
<title>Veraltete Dateien, Verzeichnisse und Bibliotheken
löschen</title>
<authorgroup>
<author>
<personname>
<firstname>Anton</firstname>
<surname>Shterenlikht</surname>
</personname>
<contrib>Basiert auf Notizen von </contrib>
</author>
</authorgroup>
</info>
<indexterm>
<primary>Veraltete Dateien, Verzeichnisse und Bibliotheken
löschen</primary>
</indexterm>
<para>Aufgrund der ständigen Weiterentwicklung von &os; 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
<filename>/usr/src/ObsoleteFiles.inc</filename> aufgelistet.
Verwenden Sie die folgenden Anweisungen, um diese Dateien
während der Systemaktualisierung zu entfernen.</para>
<para>Folgen Sie den Anweisungen in <xref
linkend="canonical-build"/>. Nachdem Sie
<command>make installworld</command> sowie
<command>mergemaster</command> erfolgreich ausgeführt haben,
überprüfen Sie das System auf veraltete Dateien und
Bibliotheken:</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make check-old</userinput></screen>
<para>Werden dabei veraltete Dateien gefunden, können diese
mit dem folgenden Kommando entfernt werden:</para>
<screen>&prompt.root; <userinput>make delete-old</userinput></screen>
<tip>
<para>Weitere interessante
<foreignphrase>targets</foreignphrase> finden Sie in
<filename>/usr/src/Makefile</filename>.</para>
</tip>
<para>Bei jeder Datei wird nachgefragt, ob diese wirklich
gelöscht werden soll. Es ist aber auch möglich, alle
Dateien automatisch löschen zu lassen. Dies erreichen Sie,
indem Sie die Umgebungsvariable
<varname>BATCH_DELETE_OLD_FILES</varname> setzen:</para>
<screen>&prompt.root; <userinput>make -DBATCH_DELETE_OLD_FILES delete-old</userinput></screen>
<para>Alternativ können Sie auch <command>yes</command>
einsetzen und somit die Antwort <literal>yes</literal>
an die einzelnen Abfragen weiterreichen:</para>
<screen>&prompt.root; <userinput>yes | make delete-old</userinput></screen>
</sect2>
<sect2 xml:id="updating-upgrading-rebooting">
<title>Das System neu starten</title>
@ -2779,6 +2855,52 @@ Script done, &hellip;</screen>
&man.shutdown.8; neu:</para>
<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
</sect2>
<sect2>
<title>Löschen von veralteten Bibliotheken</title>
<warning>
<title>Warnung</title>
<para>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
<command>make delete-old-libs</command> ausführen.</para>
</warning>
<para>Die Ports-Sammlung enthält Werkzeuge, die
Bibliothek-Abhängigkeiten prüfen können:
<package>sysutils/libchk</package>
sowie <package>sysutils/bsdadminscripts</package>.</para>
<para>Veraltete Bibliotheken können zu Konflikten mit neueren
Bibliotheken führen und beispielsweise folgende
Meldungen verursachen:</para>
<screen>/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</screen>
<para>Um diese Probleme zu lösen, müssen Sie zuerst
herausfinden, welcher Port die Bibliothek installiert
hat:</para>
<screen>&prompt.root; <userinput>pkg which /usr/local/lib/libtiff.so</userinput>
/usr/local/lib/libtiff.so was installed by package tiff-3.9.4
&prompt.root; <userinput>pkg which /usr/local/lib/libXext.so</userinput>
/usr/local/lib/libXext.so was installed by package libXext-1.1.1,1</screen>
<para>Danach deinstallieren Sie den Port und bauen ihn neu, um
ihn danach erneut zu installieren. Dieser Vorgang kann durch
den Einsatz von <package>ports-mgmt/portmaster</package>
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:</para>
<screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen>
<para>Herzlichen Glückwunsch! Sie haben gerade erfolgreich ein
&os; System aktualisiert.</para>
@ -2791,7 +2913,7 @@ Script done, &hellip;</screen>
kann das Problem mit dem folgenden Kommando behoben
werden:</para>
<screen>&prompt.root; <userinput>cd /usr/src/usr.bin/file</userinput>
<screen>&prompt.root; <userinput>cd /usr/src/usr.bin/file</userinput>
&prompt.root; <userinput>make all install</userinput></screen>
</sect2>
@ -3076,117 +3198,6 @@ Building everything..
</sect2>
</sect1>
<sect1 xml:id="make-delete-old">
<info><title>Veraltete Dateien, Verzeichnisse und Bibliotheken
löschen</title>
<authorgroup>
<author><personname><firstname>Anton</firstname><surname>Shterenlikht</surname></personname><contrib>Basiert auf Notizen von </contrib></author>
</authorgroup>
</info>
<indexterm>
<primary>Veraltete Dateien, Verzeichnisse und Bibliotheken
löschen</primary>
</indexterm>
<para>Aufgrund der ständigen Weiterentwicklung von &os; 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
<filename>/usr/src/ObsoleteFiles.inc</filename> aufgelistet.
Verwenden Sie die folgenden Anweisungen, um diese Dateien
während der Systemaktualisierung zu entfernen.</para>
<para>Folgen Sie den Anweisungen von
<xref linkend="canonical-build"/>. Nachdem Sie
<command>make installworld</command>
sowie <command>mergemaster</command> erfolgreich ausgeführt
haben, überprüfen Sie das System auf veraltete Dateien und
Bibliotheken:</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make check-old</userinput></screen>
<para>Werden dabei veraltete Dateien gefunden, können diese
mit dem folgenden Kommando entfernt werden:</para>
<screen>&prompt.root; <userinput>make delete-old</userinput></screen>
<tip>
<para>Weitere interessante
<foreignphrase>targets</foreignphrase> finden Sie in
<filename>/usr/src/Makefile</filename>.</para>
</tip>
<para>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
<varname>BATCH_DELETE_OLD_FILES</varname> setzen:</para>
<screen>&prompt.root; <userinput>make -DBATCH_DELETE_OLD_FILES delete-old</userinput></screen>
<para>Alternativ können Sie auch <command>yes</command>
einsetzen und somit die Antwort <literal>yes</literal>
an die einzelnen Abfragen weiterreichen:</para>
<screen>&prompt.root; <userinput>yes | make delete-old</userinput></screen>
<warning>
<title>Warnung</title>
<para>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
<command>make
delete-old-libs</command>
ausführen.</para>
</warning>
<para>Die Ports-Sammlung enthält Werkzeuge, die Ihnen beim
Prüfen von Bibliothek-Abhängigkeiten helfen können:
<package>sysutils/libchk</package>
sowie <package>sysutils/bsdadminscripts</package>.</para>
<para>Veraltete Bibliotheken können zu Konflikten mit neueren
Bibliotheken führen und beispielsweise folgende
Meldungen verursachen:</para>
<screen>/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</screen>
<para>Um diese Probleme zu lösen, müssen Sie zuerst
herausfinden, welcher Port die Bibliothek installiert hat:</para>
<screen>&prompt.root; <userinput>pkg_info -W /usr/local/lib/libtiff.so</userinput>
/usr/local/lib/libtiff.so was installed by package tiff-3.9.4
&prompt.root; <userinput>pkg_info -W /usr/local/lib/libXext.so</userinput>
/usr/local/lib/libXext.so was installed by package libXext-1.1.1,1</screen>
<para>Danach deinstallieren Sie den Port und bauen ihn neu, um ihn
danach erneut zu installieren. Dieser Vorgang kann durch den
Einsatz von <package>ports-mgmt/portmaster</package> 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:</para>
<screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen>
</sect1>
<sect1 xml:id="small-lan">
<info><title>Installation mehrerer Maschinen</title>
<authorgroup>