Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F115833728
D27848.id86366.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
3 KB
Referenced Files
None
Subscribers
None
D27848.id86366.diff
View Options
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
Details
Attached
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)
Attached To
Mode
D27848: Try to favor etcupdate(8) over mergemaster(8) in the handbook
Attached
Detach File
Event Timeline
Log In to Comment