FreeBSD Bugzilla – Attachment 119982 Details for
Bug 162699
Handbook/Upgrading instructions: should mention delete-old in order
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
makeworld.diff
makeworld.diff (text/plain), 12.16 KB, created by
Chris Rees
on 2011-11-20 19:40:09 UTC
(
hide
)
Description:
makeworld.diff
Filename:
MIME Type:
Creator:
Chris Rees
Created:
2011-11-20 19:40:09 UTC
Size:
12.16 KB
patch
obsolete
>Index: cutting-edge/chapter.sgml >=================================================================== >RCS file: /home/dcvs/doc/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml,v >retrieving revision 1.255 >diff -u -r1.255 chapter.sgml >--- cutting-edge/chapter.sgml 23 Aug 2011 18:40:43 -0000 1.255 >+++ cutting-edge/chapter.sgml 20 Nov 2011 19:29:07 -0000 >@@ -1967,6 +1967,16 @@ > </listitem> > > <listitem> >+ <para><command>make <maketarget>delete-old</maketarget></command></para> >+ >+ <para>This target deletes old (obsolete) files. This is important >+ because sometimes they cause problems if left on the disk, for >+ example the presence of the old <filename>utmp.h</filename> causes >+ problems in some ports when the new >+ <filename>utmpx.h</filename> is installed.</para> >+ </listitem> >+ >+ <listitem> > <para><command>mergemaster</command></para> > > <para>Now you can update the remaining configuration files, since >@@ -1979,6 +1989,14 @@ > <para>A full machine reboot is needed now to load the new kernel > and new world with new configuration files.</para> > </listitem> >+ >+ <listitem> >+ <para><command>make <maketarget>delete-old-libs</maketarget></command></para> >+ >+ <para>Remove any obsolete libraries to avoid conflicts with newer >+ ones. Make sure that all ports have been rebuilt to use the new >+ libraries before you delete the old ones.</para> >+ </listitem> > </orderedlist> > > <para>Note that if you're upgrading from one release of the same &os; >@@ -2034,8 +2052,10 @@ > &prompt.root; <userinput>mergemaster -p</userinput> > &prompt.root; <userinput>cd /usr/src</userinput> > &prompt.root; <userinput>make installworld</userinput> >+&prompt.root; <userinput>make delete-old</userinput> > &prompt.root; <userinput>mergemaster</userinput> >-&prompt.root; <userinput>reboot</userinput></screen> >+&prompt.root; <userinput>reboot</userinput> >+&prompt.root; <userinput>make delete-old-libs</userinput></screen> > > <warning> > <title>Read Further Explanations</title> >@@ -2471,6 +2491,70 @@ > </note> > </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 and directories</title> >+ >+ <indexterm> >+ <primary>Deleting obsolete files and directories</primary> >+ </indexterm> >+ >+ <para>As a part of the &os; development lifecycle, it happens from time >+ to time that files and their contents become obsolete. This may be >+ because their 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 for the user is that >+ the system is not cluttered with old files which take up unnecessary >+ space on the storage (and backup) medium. Additionally, if the old >+ library had a security or stability issue, you should update to the >+ newer library to keep your system safe and prevent crashes caused by >+ the old library implementation. The files, directories, and libraries >+ that are considered obsolete are listed in >+ <filename>/usr/src/ObsoleteFiles.inc</filename>. The following >+ instructions will help you removing these obsolete files during the >+ system upgrade process.</para> >+ >+ <para>After the <command>make >+ <maketarget>installworld</maketarget></command> and the subsequent >+ <command>mergemaster</command> commands have finished successfully, you >+ should 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 commands:</para> >+ >+ <screen>&prompt.root; <userinput>make delete-old</userinput></screen> >+ >+ <tip> >+ <para>See <filename>/usr/src/Makefile</filename> >+ for more targets of interest.</para> >+ </tip> >+ >+ <para>A prompt is displayed before deleting each obsolete file. You can >+ skip the prompt and let the system remove these files automatically by >+ using the <makevar>BATCH_DELETE_OLD_FILES</makevar> make-variable as >+ follows:</para> >+ >+ <screen>&prompt.root; <userinput>make -DBATCH_DELETE_OLD_FILES delete-old</userinput></screen> >+ >+ <para>You can also achieve the same goal by piping these commands through >+ <command>yes</command> like this:</para> >+ >+ <screen>&prompt.root; <userinput>yes|make delete-old</userinput></screen> >+ </sect2> >+ > <sect2 id="post-installworld-updates"> > <title>Update Files Not Updated by <command>make installworld</command></title> > >@@ -2725,13 +2809,56 @@ > <sect2 id="updating-upgrading-rebooting"> > <title>Rebooting</title> > >- <para>You are now done. After you have verified that everything appears >- to be in the right place you can reboot the system. A simple >+ <para>You are now almost done. After you have verified that everything >+ appears to be in the right place you can reboot the system. A simple > &man.shutdown.8; should do it:</para> > > <screen>&prompt.root; <userinput>shutdown -r now</userinput></screen> > </sect2> > >+ <sect2 id="updating-upgrading-make-delete-old-libs"> >+ <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, you need to recompile the programs, ports, >+ or libraries that used the old library 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. The <filename >+ role="package">ports-mgmt/portmaster</filename> and <filename >+ role="package">ports-mgmt/portupgrade</filename> utilities can be used >+ to automate this process. After you've made sure that all ports are >+ rebuilt and do not use the old libraries anymore, you can delete them >+ using the >+ following command:</para> >+ >+ <screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen> >+ </sect2> >+ > <sect2> > <title>Finished</title> > >@@ -3020,106 +3147,6 @@ > </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, it happens from time >- to time that files and their contents become obsolete. This may be >- because their 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 for the user is that >- the system is not cluttered with old files which take up unnecessary >- space on the storage (and backup) medium. Additionally, if the old >- library had a security or stability issue, you should update to the >- newer library to keep your system safe and prevent crashes caused by >- the old library implementation. The files, directories, and libraries >- that are considered obsolete are listed in >- <filename>/usr/src/ObsoleteFiles.inc</filename>. The following >- instructions will help you removing these obsolete files during the >- system upgrade process.</para> >- >- <para>We assume you are following the steps outlined in <xref >- linkend="canonical-build">. After the <command>make >- <maketarget>installworld</maketarget></command> and the subsequent >- <command>mergemaster</command> commands have finished successfully, you >- should 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 commands:</para> >- >- <screen>&prompt.root; <userinput>make delete-old</userinput></screen> >- >- <tip> >- <para>See <filename>/usr/src/Makefile</filename> >- for more targets of interest.</para> >- </tip> >- >- <para>A prompt is displayed before deleting each obsolete file. You can >- skip the prompt and let the system remove these files automatically by >- using the <makevar>BATCH_DELETE_OLD_FILES</makevar> make-variable as >- follows:</para> >- >- <screen>&prompt.root; <userinput>make -DBATCH_DELETE_OLD_FILES delete-old</userinput></screen> >- >- <para>You can also achieve the same goal by piping these commands through >- <command>yes</command> like this:</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, you need to recompile the programs, ports, >- or libraries that used the old library 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. The <filename >- role="package">ports-mgmt/portmaster</filename> and <filename >- role="package">ports-mgmt/portupgrade</filename> utilities can be used to >- automate this process. After you've made sure that all ports are rebuilt >- and do not use the old libraries anymore, you can delete them using the >- following command:</para> >- >- <screen>&prompt.root; <userinput>make delete-old-libs</userinput></screen> >- </sect1> >- > <sect1 id="small-lan"> > <sect1info> > <authorgroup>
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 162699
: 119982