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 is a movement-only change; the content change will follow

PR:		docs/162699
Approved by:	gjb (mentor)
This commit is contained in:
Chris Rees 2013-05-29 17:46:29 +00:00
parent 9a32027916
commit 43b1e97a57
Notes: svn2git 2020-12-08 03:00:23 +00:00
svn path=/head/; revision=41772

View file

@ -2630,6 +2630,72 @@ Script done, &hellip;</screen>
</sect3>
</sect2>
<sect2 id="make-delete-old">
<sect2info>
<authorgroup>
<author>
<firstname>Anton</firstname>
<surname>Shterenlikht</surname>
<contrib>Based on notes provided by </contrib>
</author>
</authorgroup>
</sect2info>
<title>Deleting Obsolete Files, Directories and Libraries</title>
<indexterm>
<primary>Deleting obsolete files, directories and
libraries</primary>
</indexterm>
<para>As a part of the &os; development lifecycle, files and their
contents occasionally become obsolete. This may be because
functionality is implemented elsewhere, the version number of
the library has changed, or it was removed from the system
entirely. This includes old files, libraries, and directories,
which should be removed when updating the system. The benefit
is that the system is not cluttered with old files which take up
unnecessary space on the storage and backup media.
Additionally, if the old library has a security or stability
issue, the system should be updated to the newer library to keep
it safe and to prevent crashes caused by the old library.
Files, directories, and libraries which are considered obsolete
are listed in <filename>/usr/src/ObsoleteFiles.inc</filename>.
The following instructions should be used to remove obsolete
files during the system upgrade process.</para>
<para>Follow the steps outlined in <xref
linkend="canonical-build"/>. After the
<command>make <maketarget>installworld</maketarget></command>
and the subsequent <command>mergemaster</command> have finished
successfully, check for obsolete files and libraries as
follows:</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make check-old</userinput></screen>
<para>If any obsolete files are found, they can be deleted using
the following command:</para>
<screen>&prompt.root; <userinput>make delete-old</userinput></screen>
<tip>
<para>Refer to <filename>/usr/src/Makefile</filename>
for more targets of interest.</para>
</tip>
<para>A prompt is displayed before deleting each obsolete file.
To skip the prompt and let the system remove these files
automatically, use
<makevar>BATCH_DELETE_OLD_FILES</makevar>:</para>
<screen>&prompt.root; <userinput>make -DBATCH_DELETE_OLD_FILES delete-old</userinput></screen>
<para>The same goal can be achieved by piping these commands
through <command>yes</command>:</para>
<screen>&prompt.root; <userinput>yes|make delete-old</userinput></screen>
</sect2>
<sect2 id="updating-upgrading-rebooting">
<title>Rebooting</title>
@ -2637,6 +2703,49 @@ Script done, &hellip;</screen>
then reboot the system using &man.shutdown.8;:</para>
<screen>&prompt.root; <userinput>shutdown -r now</userinput></screen>
</sect2>
<sect2>
<title>Deleting obsolete libraries</title>
<warning>
<title>Warning</title>
<para>Deleting obsolete files will break applications that
still depend on those obsolete files. This is especially true
for old libraries. In most cases, the programs, ports, or
libraries that used the old library need to be recompiled
before <command>make
<maketarget>delete-old-libs</maketarget></command> is
executed.</para>
</warning>
<para>Utilities for checking shared library dependencies are
available from the Ports Collection in
<filename role="package">sysutils/libchk</filename> or <filename
role="package">sysutils/bsdadminscripts</filename>.</para>
<para>Obsolete shared libraries can conflict with newer libraries,
causing messages like these:</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>To solve these problems, determine which port installed the
library:</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>Then deinstall, rebuild and reinstall the port. <filename
role="package">ports-mgmt/portmaster</filename> can be used to
automate this process. After all ports are rebuilt and no
longer use the old libraries, delete the old libraries using the
following command:</para>
<screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen>
<para>You should now have successfully upgraded the &os;
system. Congratulations.</para>
@ -2921,111 +3030,6 @@ Building everything..
</sect2>
</sect1>
<sect1 id="make-delete-old">
<sect1info>
<authorgroup>
<author>
<firstname>Anton</firstname>
<surname>Shterenlikht</surname>
<contrib>Based on notes provided by </contrib>
</author>
</authorgroup>
</sect1info>
<title>Deleting Obsolete Files, Directories and Libraries</title>
<indexterm>
<primary>Deleting obsolete files, directories and
libraries</primary>
</indexterm>
<para>As a part of the &os; development lifecycle, files and their
contents occasionally become obsolete. This may be because
functionality is implemented elsewhere, the version number of
the library has changed, or it was removed from the system
entirely. This includes old files, libraries, and directories,
which should be removed when updating the system. The benefit
is that the system is not cluttered with old files which take up
unnecessary space on the storage and backup media.
Additionally, if the old library has a security or stability
issue, the system should be updated to the newer library to keep
it safe and to prevent crashes caused by the old library.
Files, directories, and libraries which are considered obsolete
are listed in <filename>/usr/src/ObsoleteFiles.inc</filename>.
The following instructions should be used to remove obsolete
files during the system upgrade process.</para>
<para>Follow the steps outlined in <xref
linkend="canonical-build"/>. After the
<command>make <maketarget>installworld</maketarget></command>
and the subsequent <command>mergemaster</command> have finished
successfully, check for obsolete files and libraries as
follows:</para>
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
&prompt.root; <userinput>make check-old</userinput></screen>
<para>If any obsolete files are found, they can be deleted using
the following command:</para>
<screen>&prompt.root; <userinput>make delete-old</userinput></screen>
<tip>
<para>Refer to <filename>/usr/src/Makefile</filename>
for more targets of interest.</para>
</tip>
<para>A prompt is displayed before deleting each obsolete file.
To skip the prompt and let the system remove these files
automatically, use
<makevar>BATCH_DELETE_OLD_FILES</makevar>:</para>
<screen>&prompt.root; <userinput>make -DBATCH_DELETE_OLD_FILES delete-old</userinput></screen>
<para>The same goal can be achieved by piping these commands
through <command>yes</command>:</para>
<screen>&prompt.root; <userinput>yes|make delete-old</userinput></screen>
<warning>
<title>Warning</title>
<para>Deleting obsolete files will break applications that
still depend on those obsolete files. This is especially true
for old libraries. In most cases, the programs, ports, or
libraries that used the old library need to be recompiled
before <command>make
<maketarget>delete-old-libs</maketarget></command> is
executed.</para>
</warning>
<para>Utilities for checking shared library dependencies are
available from the Ports Collection in
<filename role="package">sysutils/libchk</filename> or <filename
role="package">sysutils/bsdadminscripts</filename>.</para>
<para>Obsolete shared libraries can conflict with newer libraries,
causing messages like these:</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>To solve these problems, determine which port installed the
library:</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>Then deinstall, rebuild and reinstall the port. <filename
role="package">ports-mgmt/portmaster</filename> can be used to
automate this process. After all ports are rebuilt and no
longer use the old libraries, delete the old libraries using the
following command:</para>
<screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen>
</sect1>
<sect1 id="small-lan">
<sect1info>
<authorgroup>