Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F149835144
D27848.id81414.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
5 KB
Referenced Files
None
Subscribers
None
D27848.id81414.diff
View Options
diff --git a/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml b/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml
--- a/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml
+++ b/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.xml
@@ -1195,9 +1195,10 @@
&prompt.root; <userinput>make -j<replaceable>4</replaceable> buildworld</userinput> <co xml:id="updating-src-qs-buildworld"/>
&prompt.root; <userinput>make -j<replaceable>4</replaceable> kernel</userinput> <co xml:id="updating-src-qs-kernel"/>
&prompt.root; <userinput>shutdown -r now</userinput> <co xml:id="updating-src-qs-reboot"/>
+&prompt.root; <userinput>etcupdate -p</userinput> <co xml:id="updating-src-qs-etcupdate-preworld"/>
&prompt.root; <userinput>cd /usr/src</userinput> <co xml:id="updating-src-qs-cd2"/>
&prompt.root; <userinput>make installworld</userinput> <co xml:id="updating-src-qs-installworld"/>
-&prompt.root; <userinput>mergemaster -Ui</userinput> <co xml:id="updating-src-qs-mergemaster"/>
+&prompt.root; <userinput>etcupdate -B</userinput> <co xml:id="updating-src-qs-etcupdate"/>
&prompt.root; <userinput>shutdown -r now</userinput> <co xml:id="updating-src-qs-shutdown"/></screen>
<calloutlist>
@@ -1214,6 +1215,12 @@
from source.</para>
</callout>
+ <callout arearefs="updating-src-qs-etcupdate-preworld">
+ <para>Update and merge configuration files in
+ <filename>/etc/</filename> required before
+ installworld.</para>
+ </callout>
+
<callout arearefs="updating-src-qs-cd">
<para>Go to the source directory.</para>
</callout>
@@ -1241,7 +1248,7 @@
<para>Install the world.</para>
</callout>
- <callout arearefs="updating-src-qs-mergemaster">
+ <callout arearefs="updating-src-qs-etcupdate">
<para>Update and merge configuration files in
<filename>/etc/</filename>.</para>
</callout>
@@ -1536,13 +1543,84 @@
libraries are located and removed, then the system is
restarted.</para>
- <sect3 xml:id="updating-src-completing-merge-mergemaster">
+ <sect3 xml:id="updating-src-completing-merge-etcupdate">
+ <title>Merging Configuration Files with
+ &man.etcupdate.8;</title>
+
+ <para>&man.etcupdate.8; is a tool for managing updates to
+ files that are not updated as part of an installworld such
+ as files in <filename>/etc/</filename>. 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 which is the largest benefit
+ in comparison to &man.mergemaster.8;.</para>
+
+ <note>
+ <para>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:
+
+ <screen>&prompt.root; <userinput>etcupdate diff</userinput></screen>
+
+ By giving the output a quick look and making sure the diff
+ looks OK, the merge should work just fine.</para>
+ </note>
+
+ <para>If &man.etcupdate.8; is not able to merge a file
+ automatically, the merge conflicts can be resolved with
+ manual interaction by issuing:</para>
+
+ <screen>&prompt.root; <userinput>etcupdate resolve</userinput></screen>
+
+ <warning>
+ <para>When switching from &man.mergemaster.8; to
+ &man.etcupdate.8; the first run might print some bogus
+ conflicts due to already applied changes. In general, the
+ following command sequence should recover from this
+ behavior:</para>
+
+ <procedure>
+ <step>
+ <title>Bootstrapping &man.etcupdate.8;</title>
+
+ <screen>&prompt.root; <userinput>etcupdate diff</userinput> <co xml:id="updating-src-completing-merge-diff"/>
+&prompt.root; <userinput>etcupdate bootstrap</userinput> <co xml:id="updating-src-completing-merge-bootstrap"/>
+&prompt.root; <userinput>etcupdate diff</userinput> <co xml:id="updating-src-completing-merge-diff-after"/></screen>
+
+ <calloutlist>
+ <callout arearefs="updating-src-completing-merge-diff">
+ <para>Check the output before updating sources and
+ building the new world. If the output shows a lot
+ of diffs that are not expected, continue with the
+ bootstrap command.</para>
+ </callout>
+
+ <callout arearefs="updating-src-completing-merge-bootstrap">
+ <para>Bootstrap the program, for more information
+ see &man.etcupdate.8;.</para>
+ </callout>
+
+ <callout arearefs="updating-src-completing-merge-diff-after">
+ <para>Check the diff again after bootstrapping. The
+ unexpected diffs should be gone.</para>
+ </callout>
+ </calloutlist>
+ </step>
+ </procedure>
+ </warning>
+ </sect3>
+
+ <sect3 xml:id="updating-src-completing-merge-mergemsater">
<title>Merging Configuration Files with
&man.mergemaster.8;</title>
- <para>&man.mergemaster.8; provides an easy
- way to merge changes that have been made to system
- configuration files with new versions of those files.</para>
+ <para>&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; tool,
+ although &man.mergemaster.8; might still be needed on legacy
+ installs.</para>
<para>With <option>-Ui</option>, &man.mergemaster.8;
automatically updates files that have not been user-modified
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Mar 28, 11:28 AM (5 h, 14 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
30470235
Default Alt Text
D27848.id81414.diff (5 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