Page MenuHomeFreeBSD

D27848.id86366.diff
No OneTemporary

D27848.id86366.diff

diff --git a/documentation/content/en/books/handbook/cutting-edge/_index.adoc b/documentation/content/en/books/handbook/cutting-edge/_index.adoc
--- a/documentation/content/en/books/handbook/cutting-edge/_index.adoc
+++ b/documentation/content/en/books/handbook/cutting-edge/_index.adoc
@@ -617,9 +617,10 @@
# make -j4 buildworld <.>
# make -j4 kernel <.>
# shutdown -r now <.>
+# etcupdate -p <.>
# cd /usr/src <.>
# make installworld <.>
-# mergemaster -Ui <.>
+# etcupdate -B <.>
# shutdown -r now <.>
....
@@ -635,6 +636,8 @@
<.> Reboot the system to the new kernel.
+<.> Update and merge configuraton files in [.filename]#/etc/# required before installworld.
+
<.> Go to the source directory.
<.> Install the world.
@@ -863,11 +866,54 @@
A few final tasks complete the update.
Any modified configuration files are merged with the new versions, outdated libraries are located and removed, then the system is restarted.
+[[updating-src-completing-merge-etcupdate]]
+==== Merging Configuration Files with man:etcupdate[8]
+
+man:etcupdate[8] is a tool for managing updates to files that are not updated as part of an installworld such as files located in [.filename]#/etc/#.
+It manages updates by doing a three-way merge of changes made to these files against the local versions.
+It is also designed to minimize the amount of user intervention, in contrast to man:mergemaster[8]'s interactive prompts.
+
+[NOTE]
+====
+In general, man:etcupdate[8] does not need any specific arguments for its job.
+There is however a handy in between command for sanity checking what will be done the first time man:etcupdate[8] is used:
+
+[source,shell]
+....
+# etcupdate diff
+....
+
+This command allows the user to audit configuration changes.
+====
+
+If man:etcupdate[8] is not able to merge a file automatically, the merge conflicts can be resolved with manual interaction by issuing:
+
+[source,shell]
+....
+# etcupdate resolve
+....
+
+[WARNING]
+====
+When switching from man:mergemaster[8] to man:etcupdate[8], the first run might merge changes incorrectly generating spurious conflicts.
+To prevent this, perform the following steps *before* updating sources and building the new world:
+
+[source,shell]
+....
+# etcupdate bootstrap <.>
+# etcupdate diff <.>
+....
+
+<.> Bootstrap the database of stock [.filename]#/etc# files, for more information see man:etcupdate[8].
+
+<.> Check the diff after bootstrapping. Trim any local changes that are no longer needed to reduce the chance of conflicts in future updates.
+====
+
[[updating-src-completing-merge-mergemaster]]
==== Merging Configuration Files with man:mergemaster[8]
-man:mergemaster[8] provides an easy way to merge changes that have been made to system configuration files with new versions of those files.
-
+man:mergemaster[8] provides a way to merge changes that have been made to system configuration files with new versions of those files.
+man:mergemaster[8] is an alternative to the preferred man:etcupdate[8]
With `-Ui`, man:mergemaster[8] automatically updates files that have not been user-modified and installs new files that are not already present:
[source,shell]

File Metadata

Mime Type
text/plain
Expires
Wed, Apr 30, 8:05 AM (15 h, 38 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
17853842
Default Alt Text
D27848.id86366.diff (3 KB)

Event Timeline