diff --git a/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml b/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml index 5e2f1d607f..a36a3a85f7 100644 --- a/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml +++ b/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml @@ -1559,7 +1559,8 @@ Script started, output file is /var/tmp/mw.out rebuilt before old libraries are removed using the instructions in . When finished, remove any obsolete libraries to avoid conflicts - with newer ones. + with newer ones. For a more detailed description of this + step, refer to . &prompt.root; make delete-old-libs @@ -1733,40 +1734,48 @@ Script started, output file is /var/tmp/mw.out - &man.mergemaster.8; is a Bourne script to aid in + &os; provides the &man.mergemaster.8; Bourne script to aid in determining the differences between the configuration files in /etc, and the configuration files in - the source tree /usr/src/etc. This is + /usr/src/etc. This is the recommended solution for keeping the system configuration files up to date with those located in the source tree. + + Before using mergemaster, it is recommended to first copy the existing + /etc somewhere + safe. Include which does a recursive copy and + which preserves times and the ownerships on + files: - To begin, type mergemaster and it - will build a temporary root environment, from - / down, and populate it with various + &prompt.root; cp -Rp /etc /etc.old + + When run, mergemaster + builds a temporary root environment, from + / down, and populates it with various system configuration files. Those files are then compared to the ones currently installed in the system. Files that differ will be shown in &man.diff.1; format, with the sign representing added or modified lines, and representing lines that will - be either removed completely, or replaced with a new file. - Refer to &man.diff.1; for more information about the - &man.diff.1; syntax and how file differences are + be either removed completely or replaced with a new file. + Refer to &man.diff.1; for more information about + how file differences are shown. - &man.mergemaster.8; will then display each file that - differs, and present the options of either deleting the new - file, referred to as the temporary file, installing the - temporary file in its unmodified state, merging the - temporary file with the currently installed file, or viewing - the &man.diff.1; results again. + Next, mergemaster will display each file that + differs, and present options to: delete the new + file, referred to as the temporary file, install the + temporary file in its unmodified state, merge the + temporary file with the currently installed file, or view + the results again. Choosing to delete the temporary file will tell - &man.mergemaster.8; to keep the current file unchanged and - to delete the new version. This option is not recommended, - unless there is no reason to change the current file. To + mergemaster to keep the current file unchanged and + to delete the new version. This option is not recommended. + To get help at any time, type ? at the - &man.mergemaster.8; prompt. If the user chooses to skip a + mergemaster prompt. If the user chooses to skip a file, it will be presented again after all other files have been dealt with. @@ -1785,90 +1794,16 @@ Script started, output file is /var/tmp/mw.out option is customarily used for files where settings have been modified by the user. - Choosing to view the &man.diff.1; results again will - display the file differences just like &man.mergemaster.8; - did before prompting an option. + Choosing to view the results again will + redisplay the file differences. - After &man.mergemaster.8; is done with the system files, - it will prompt for other options. &man.mergemaster.8; may + After mergemaster is done with the system files, + it will prompt for other options. It may prompt to rebuild the password file and will finish up with an option to remove left-over temporary files. - - To perform the update manually instead, do not just copy - over the files from - /usr/src/etc to - /etc and expect it to - work. Some files must be installed first as - /usr/src/etc - is not a copy of what - /etc should look - like. In addition, some files that should be in - /etc are not in - /usr/src/etc. - - The simplest way to merge files by hand is to install - the files into a new directory, and then work through them - looking for differences. - - - Backup Your Existing - <filename>/etc</filename> - - It is recommended to first copy the existing - /etc somewhere - safe, like so: - - &prompt.root; cp -Rp /etc /etc.old - - where does a recursive copy and - preserves times and the ownerships on - files. - - - Build a temporary set of directories into which the new - /etc and other files - can be installed: - - &prompt.root; mkdir /var/tmp/root -&prompt.root; cd /usr/src/etc -&prompt.root; make DESTDIR=/var/tmp/root distrib-dirs distribution - - This will build the necessary directory structure and - install the files. A lot of the subdirectories that have - been created under /var/tmp/root are - empty and should be deleted. The simplest way to do this is - to: - - &prompt.root; cd /var/tmp/root -&prompt.root; find -d . -type d | xargs rmdir 2>/dev/null - - This will remove all empty directories while redirecting - standard error to /dev/null to prevent - the warnings about the directories that are not - empty. - - /var/tmp/root now - contains all the files that should be placed in appropriate - locations below /. - Go through each of these files, determining how they differ - from the system's existing files. - - Some of the files installed into - /var/tmp/root have a leading - .. Make sure to use - ls -a in order to catch them. - - The simplest way to compare files is to use - &man.diff.1;: - - &prompt.root; diff /etc/shells /var/tmp/root/etc/shells - - This command will show the differences between the - existing /etc/shells and the new - /var/tmp/root/etc/shells. Review the - differences to decide whether to merge in custom changes - or to replace the existing file with the new one. - + - Deleting Obsolete Files and Directories + Deleting Obsolete Files and Libraries @@ -1971,9 +1907,9 @@ Script started, output file is /var/tmp/mw.out 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 + system entirely. These obsoleted files, libraries, and + directories should be removed when updating the system. + This ensures 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 @@ -1987,8 +1923,7 @@ Script started, output file is /var/tmp/mw.out After the make installworld and the subsequent mergemaster have - finished successfully, check for obsolete files and libraries - as follows: + finished successfully, check for obsolete files and libraries: &prompt.root; cd /usr/src &prompt.root; make check-old @@ -1998,11 +1933,6 @@ Script started, output file is /var/tmp/mw.out &prompt.root; make delete-old - - Refer to /usr/src/Makefile - for more targets of interest. - - A prompt is displayed before deleting each obsolete file. To skip the prompt and let the system remove these files automatically, use @@ -2014,10 +1944,6 @@ Script started, output file is /var/tmp/mw.out through yes: &prompt.root; yes|make delete-old - - - - Deleting obsolete libraries Warning @@ -2031,9 +1957,8 @@ Script started, output file is /var/tmp/mw.out executed. - Utilities for checking shared library dependencies are - available from the Ports Collection in - sysutils/libchk or + Utilities for checking shared library dependencies include + sysutils/libchk and sysutils/bsdadminscripts. Obsolete shared libraries can conflict with newer @@ -2050,22 +1975,19 @@ Script started, output file is /var/tmp/mw.out &prompt.root; pkg which /usr/local/lib/libXext.so /usr/local/lib/libXext.so was installed by package libXext-1.1.1,1 - Then deinstall, rebuild, and reinstall the port. + Then deinstall, rebuild, and reinstall the port. To automate this process, ports-mgmt/portmaster can - be used to automate this process. After all ports are rebuilt + be used. After all ports are rebuilt and no longer use the old libraries, delete the old libraries using the following command: &prompt.root; make delete-old-libs - You should now have successfully upgraded the &os; - system. Congratulations. - - If things went slightly wrong, it is easy to rebuild a + If something goes wrong, it is easy to rebuild a particular piece of the system. For example, if /etc/magic was accidentally deleted as part of the upgrade or merge of /etc, - &man.file.1; will stop working. To fix this, run: + file will stop working. To fix this, run: &prompt.root; cd /usr/src/usr.bin/file &prompt.root; make all install