Whitespace only: Fix lots of whitespace issues in Handbook's 'cutting-edge' chapter
This commit is contained in:
parent
44ce836674
commit
9e7b67b769
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=33141
1 changed files with 548 additions and 528 deletions
|
@ -14,20 +14,24 @@
|
||||||
</author>
|
</author>
|
||||||
<!-- Mar 2000 -->
|
<!-- Mar 2000 -->
|
||||||
</authorgroup>
|
</authorgroup>
|
||||||
|
|
||||||
<authorgroup>
|
<authorgroup>
|
||||||
<author>
|
<author>
|
||||||
<firstname>Jordan</firstname>
|
<firstname>Jordan</firstname>
|
||||||
<surname>Hubbard</surname>
|
<surname>Hubbard</surname>
|
||||||
<contrib>Original work by </contrib>
|
<contrib>Original work by </contrib>
|
||||||
</author>
|
</author>
|
||||||
|
|
||||||
<author>
|
<author>
|
||||||
<firstname>Poul-Henning</firstname>
|
<firstname>Poul-Henning</firstname>
|
||||||
<surname>Kamp</surname>
|
<surname>Kamp</surname>
|
||||||
</author>
|
</author>
|
||||||
|
|
||||||
<author>
|
<author>
|
||||||
<firstname>John</firstname>
|
<firstname>John</firstname>
|
||||||
<surname>Polstra</surname>
|
<surname>Polstra</surname>
|
||||||
</author>
|
</author>
|
||||||
|
|
||||||
<author>
|
<author>
|
||||||
<firstname>Nik</firstname>
|
<firstname>Nik</firstname>
|
||||||
<surname>Clayton</surname>
|
<surname>Clayton</surname>
|
||||||
|
@ -52,28 +56,36 @@
|
||||||
<para>After reading this chapter, you will know:</para>
|
<para>After reading this chapter, you will know:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>The difference between the two development
|
<listitem>
|
||||||
|
<para>The difference between the two development
|
||||||
branches: &os.stable; and &os.current;.</para>
|
branches: &os.stable; and &os.current;.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem><para>How to keep your system up to date with
|
|
||||||
|
<listitem>
|
||||||
|
<para>How to keep your system up to date with
|
||||||
<application>CVSup</application>,
|
<application>CVSup</application>,
|
||||||
<application>CVS</application>, or
|
<application>CVS</application>, or
|
||||||
<application>CTM</application>.</para>
|
<application>CTM</application>.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem><para>How to rebuild and reinstall the entire base
|
|
||||||
|
<listitem>
|
||||||
|
<para>How to rebuild and reinstall the entire base
|
||||||
system with <command>make buildworld</command> (etc).</para>
|
system with <command>make buildworld</command> (etc).</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<para>Before reading this chapter, you should:</para>
|
<para>Before reading this chapter, you should:</para>
|
||||||
|
|
||||||
<itemizedlist>
|
<itemizedlist>
|
||||||
<listitem><para>Properly set up your network connection (<xref
|
<listitem>
|
||||||
|
<para>Properly set up your network connection (<xref
|
||||||
linkend="advanced-networking">).</para>
|
linkend="advanced-networking">).</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
<listitem><para>Know how to install additional third-party
|
|
||||||
software (<xref linkend="ports">).</para></listitem>
|
<listitem>
|
||||||
|
<para>Know how to install additional third-party
|
||||||
|
software (<xref linkend="ports">).</para>
|
||||||
|
</listitem>
|
||||||
</itemizedlist>
|
</itemizedlist>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
|
@ -104,7 +116,7 @@
|
||||||
&os.current; users are expected to have a high degree of
|
&os.current; users are expected to have a high degree of
|
||||||
technical skill, and should be capable of solving difficult
|
technical skill, and should be capable of solving difficult
|
||||||
system problems on their own. If you are new to &os;, think
|
system problems on their own. If you are new to &os;, think
|
||||||
twice before installing it. </para>
|
twice before installing it.</para>
|
||||||
|
|
||||||
<sect3>
|
<sect3>
|
||||||
<title>What Is &os.current;?</title>
|
<title>What Is &os.current;?</title>
|
||||||
|
@ -200,15 +212,15 @@
|
||||||
</indexterm>
|
</indexterm>
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Join the &a.current.name; and the &a.svn-src-head.name; lists. This is not
|
<para>Join the &a.current.name; and the &a.svn-src-head.name;
|
||||||
just a good idea, it is <emphasis>essential</emphasis>. If
|
lists. This is not just a good idea, it is
|
||||||
you are not on the <emphasis>&a.current.name;</emphasis> list,
|
<emphasis>essential</emphasis>. If you are not on the
|
||||||
you will not see the comments that people are
|
<emphasis>&a.current.name;</emphasis> list, you will not see
|
||||||
making about the current state of the system and thus will
|
the comments that people are making about the current state of
|
||||||
probably end up stumbling over a lot of problems that others
|
the system and thus will probably end up stumbling over a lot
|
||||||
have already found and solved. Even more importantly, you
|
of problems that others have already found and solved. Even
|
||||||
will miss out on important bulletins which may be critical
|
more importantly, you will miss out on important bulletins
|
||||||
to your system's continued health.</para>
|
which may be critical to your system's continued health.</para>
|
||||||
|
|
||||||
<para>The &a.svn-src-head.name; list will allow you to see the
|
<para>The &a.svn-src-head.name; list will allow you to see the
|
||||||
commit log entry for each change as it is made, along with
|
commit log entry for each change as it is made, along with
|
||||||
|
@ -240,16 +252,19 @@
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Use the <link linkend="cvsup">cvsup</link> program
|
<para>Use the <link linkend="cvsup">cvsup</link> program
|
||||||
with the <filename>supfile</filename> named <filename>standard-supfile</filename>
|
with the <filename>supfile</filename> named
|
||||||
available from <filename>/usr/share/examples/cvsup</filename>.
|
<filename>standard-supfile</filename>
|
||||||
This is the most recommended
|
available from
|
||||||
method, since it allows you to grab the entire
|
<filename>/usr/share/examples/cvsup</filename>.
|
||||||
collection once and then only what has changed from then
|
This is the most recommended method, since it allows you to
|
||||||
on. Many people run <command>cvsup</command> from
|
grab the entire collection once and then only what has
|
||||||
<command>cron</command> and keep their
|
changed from then on. Many people run
|
||||||
sources up-to-date automatically. You have to
|
<command>cvsup</command> from <command>cron</command> and
|
||||||
customize the sample <filename>supfile</filename> above, and configure
|
keep their sources up-to-date automatically. You have to
|
||||||
<link linkend="cvsup">cvsup</link> for your environment.</para>
|
customize the sample <filename>supfile</filename> above,
|
||||||
|
and configure <link
|
||||||
|
linkend="cvsup">cvsup</link> for your environment.</para>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>The sample <filename>standard-supfile</filename> is
|
<para>The sample <filename>standard-supfile</filename> is
|
||||||
intended for tracking a specific security branch of
|
intended for tracking a specific security branch of
|
||||||
|
@ -276,14 +291,14 @@
|
||||||
<para>Use the <application><link
|
<para>Use the <application><link
|
||||||
linkend="ctm">CTM</link></application> facility. If you
|
linkend="ctm">CTM</link></application> facility. If you
|
||||||
have very bad connectivity (high price connections or
|
have very bad connectivity (high price connections or
|
||||||
only email access) <application>CTM</application> is an option.
|
only email access) <application>CTM</application> is an
|
||||||
However, it is a lot of hassle and can give you broken files.
|
option. However, it is a lot of hassle and can give you
|
||||||
This leads to it being rarely used, which again increases
|
broken files. This leads to it being rarely used, which
|
||||||
the chance of it not working for fairly long periods of
|
again increases the chance of it not working for fairly
|
||||||
time. We recommend using
|
long periods of time. We recommend using
|
||||||
<application><link linkend="cvsup">CVSup</link></application>
|
<application><link linkend="cvsup">CVSup</link></application>
|
||||||
for anybody with a 9600 bps modem or faster connection.
|
for anybody with a 9600 bps modem or faster
|
||||||
</para>
|
connection.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -303,11 +318,12 @@
|
||||||
<para>Before compiling &os.current;, read the
|
<para>Before compiling &os.current;, read the
|
||||||
<filename>Makefile</filename> in <filename>/usr/src</filename>
|
<filename>Makefile</filename> in <filename>/usr/src</filename>
|
||||||
carefully. You should at least <link
|
carefully. You should at least <link
|
||||||
linkend="makeworld">install a new kernel and rebuild the world</link> the first time through
|
linkend="makeworld">install a new kernel and rebuild the
|
||||||
|
world</link> the first time through
|
||||||
as part of the upgrading process. Reading the &a.current;
|
as part of the upgrading process. Reading the &a.current;
|
||||||
and <filename>/usr/src/UPDATING</filename> will keep you up-to-date on other bootstrapping procedures
|
and <filename>/usr/src/UPDATING</filename> will keep you
|
||||||
that sometimes become necessary as we move toward the next
|
up-to-date on other bootstrapping procedures that sometimes
|
||||||
release.</para>
|
become necessary as we move toward the next release.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
|
@ -332,8 +348,8 @@
|
||||||
are made. Changes go into this branch at a different pace, and
|
are made. Changes go into this branch at a different pace, and
|
||||||
with the general assumption that they have first gone into
|
with the general assumption that they have first gone into
|
||||||
&os.current; for testing. This is <emphasis>still</emphasis>
|
&os.current; for testing. This is <emphasis>still</emphasis>
|
||||||
a development branch, however, and this means that at any given time,
|
a development branch, however, and this means that at any given
|
||||||
the sources for &os.stable; may or may not be suitable for any
|
time, the sources for &os.stable; may or may not be suitable for any
|
||||||
particular purpose. It is simply another engineering development
|
particular purpose. It is simply another engineering development
|
||||||
track, not a resource for end-users.</para>
|
track, not a resource for end-users.</para>
|
||||||
</sect3>
|
</sect3>
|
||||||
|
@ -357,8 +373,8 @@
|
||||||
of the current security policy for old releases of
|
of the current security policy for old releases of
|
||||||
FreeBSD, please see <ulink
|
FreeBSD, please see <ulink
|
||||||
url="&url.base;/security/">http://www.FreeBSD.org/security/</ulink>.</para>
|
url="&url.base;/security/">http://www.FreeBSD.org/security/</ulink>.</para>
|
||||||
</footnote>
|
</footnote>,
|
||||||
, and tracking an entire development branch just
|
and tracking an entire development branch just
|
||||||
for security reasons is likely to bring in a lot of unwanted
|
for security reasons is likely to bring in a lot of unwanted
|
||||||
changes as well.</para>
|
changes as well.</para>
|
||||||
|
|
||||||
|
@ -389,21 +405,20 @@
|
||||||
</indexterm>
|
</indexterm>
|
||||||
<orderedlist>
|
<orderedlist>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Join the &a.stable.name; list. This will keep you informed of
|
<para>Join the &a.stable.name; list. This will keep you informed
|
||||||
build-dependencies that may appear in &os.stable;
|
of build-dependencies that may appear in &os.stable;
|
||||||
or any other issues requiring
|
or any other issues requiring special attention. Developers
|
||||||
special attention. Developers will also make announcements
|
will also make announcements in this mailing list when they are
|
||||||
in this mailing list when they are contemplating some
|
contemplating some controversial fix or update, giving the
|
||||||
controversial fix or update, giving the users a chance to
|
users a chance to respond if they have any issues to raise
|
||||||
respond if they have any issues to raise concerning the
|
concerning the proposed change.</para>
|
||||||
proposed change.</para>
|
|
||||||
|
|
||||||
<para>Join the relevant <application>SVN</application> list for
|
<para>Join the relevant <application>SVN</application> list for
|
||||||
the branch you are tracking. For example, if you are tracking
|
the branch you are tracking. For example, if you are tracking
|
||||||
the 7-STABLE branch, join the &a.svn-src-stable-7.name; list.
|
the 7-STABLE branch, join the &a.svn-src-stable-7.name; list.
|
||||||
This will allow you to view the
|
This will allow you to view the commit log entry for each
|
||||||
commit log entry for each change as it is made, along with
|
change as it is made, along with any pertinent information on
|
||||||
any pertinent information on possible side-effects.</para>
|
possible side-effects.</para>
|
||||||
|
|
||||||
<para>To join these lists, or one of the others available
|
<para>To join these lists, or one of the others available
|
||||||
go to &a.mailman.lists.link; and click on the list that
|
go to &a.mailman.lists.link; and click on the list that
|
||||||
|
@ -416,9 +431,9 @@
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>If you are going to install a new system and want it
|
<para>If you are going to install a new system and want it
|
||||||
to run monthly snapshot built from &os.stable;, please
|
to run monthly snapshot built from &os.stable;, please
|
||||||
check the <ulink url="&url.base;/snapshots/">
|
check the <ulink
|
||||||
Snapshots</ulink> web page for more information.
|
url="&url.base;/snapshots/">Snapshots</ulink> web page for
|
||||||
Alternatively, it is possible to
|
more information. Alternatively, it is possible to
|
||||||
install the most recent &os.stable; release from the
|
install the most recent &os.stable; release from the
|
||||||
<link linkend="mirrors">mirror sites</link> and follow
|
<link linkend="mirrors">mirror sites</link> and follow
|
||||||
the instructions below to upgrade your system to the
|
the instructions below to upgrade your system to the
|
||||||
|
@ -442,15 +457,14 @@
|
||||||
</indexterm>
|
</indexterm>
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Use the <link linkend="cvsup">cvsup</link> program
|
<para>Use the <link linkend="cvsup">cvsup</link> program
|
||||||
with the <filename>supfile</filename> named <filename>stable-supfile</filename>
|
with the <filename>supfile</filename> named
|
||||||
from the directory
|
<filename>stable-supfile</filename> from the directory
|
||||||
<filename>/usr/share/examples/cvsup</filename>.
|
<filename>/usr/share/examples/cvsup</filename>.
|
||||||
This is the most recommended
|
This is the most recommended method, since it allows you to
|
||||||
method, since it allows you to grab the entire
|
grab the entire collection once and then only what has
|
||||||
collection once and then only what has changed from then
|
changed from then on. Many people run
|
||||||
on. Many people run <command>cvsup</command> from
|
<command>cvsup</command> from <command>cron</command> to
|
||||||
<command>cron</command> to keep their
|
keep their sources up-to-date automatically. You have to
|
||||||
sources up-to-date automatically. You have to
|
|
||||||
customize the sample <filename>supfile</filename> above,
|
customize the sample <filename>supfile</filename> above,
|
||||||
and configure <link linkend="cvsup">cvsup</link> for your
|
and configure <link linkend="cvsup">cvsup</link> for your
|
||||||
environment.</para>
|
environment.</para>
|
||||||
|
@ -465,8 +479,7 @@
|
||||||
linkend="ctm">CTM</link></application> facility. If
|
linkend="ctm">CTM</link></application> facility. If
|
||||||
you do not have a fast and inexpensive connection to
|
you do not have a fast and inexpensive connection to
|
||||||
the Internet, this is the method you should consider
|
the Internet, this is the method you should consider
|
||||||
using.
|
using.</para>
|
||||||
</para>
|
|
||||||
</listitem>
|
</listitem>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
@ -486,11 +499,12 @@
|
||||||
<para>Before compiling &os.stable;, read the
|
<para>Before compiling &os.stable;, read the
|
||||||
<filename>Makefile</filename> in <filename>/usr/src</filename>
|
<filename>Makefile</filename> in <filename>/usr/src</filename>
|
||||||
carefully. You should at least <link
|
carefully. You should at least <link
|
||||||
linkend="makeworld">install a new kernel and rebuild the world</link> the first time through
|
linkend="makeworld">install a new kernel and rebuild the
|
||||||
as part of the upgrading process. Reading the &a.stable; and <filename>/usr/src/UPDATING</filename> will
|
world</link> the first time through
|
||||||
keep you up-to-date on other bootstrapping procedures that
|
as part of the upgrading process. Reading the &a.stable; and
|
||||||
sometimes become necessary as we move toward the next
|
<filename>/usr/src/UPDATING</filename> will keep you up-to-date
|
||||||
release.</para>
|
on other bootstrapping procedures that sometimes become
|
||||||
|
necessary as we move toward the next release.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
</orderedlist>
|
</orderedlist>
|
||||||
</sect3>
|
</sect3>
|
||||||
|
@ -536,12 +550,11 @@
|
||||||
of interest to you. Updates are generated on the fly by the server,
|
of interest to you. Updates are generated on the fly by the server,
|
||||||
according to what you have and what you want to have.
|
according to what you have and what you want to have.
|
||||||
<application>Anonymous CVS</application> is quite a bit more
|
<application>Anonymous CVS</application> is quite a bit more
|
||||||
simplistic than <application>CVSup</application> in that it is just an extension to
|
simplistic than <application>CVSup</application> in that it is just an
|
||||||
<application>CVS</application> which allows it to pull changes
|
extension to <application>CVS</application> which allows it to pull
|
||||||
directly from a remote CVS repository.
|
changes directly from a remote CVS repository.
|
||||||
<application>CVSup</application> can do this far more efficiently,
|
<application>CVSup</application> can do this far more efficiently,
|
||||||
but <application>Anonymous CVS</application> is easier to
|
but <application>Anonymous CVS</application> is easier to use.</para>
|
||||||
use.</para>
|
|
||||||
|
|
||||||
<indexterm>
|
<indexterm>
|
||||||
<primary><application>CTM</application></primary>
|
<primary><application>CTM</application></primary>
|
||||||
|
@ -567,8 +580,10 @@
|
||||||
<application>CTM</application> will not do this, and if you wipe some
|
<application>CTM</application> will not do this, and if you wipe some
|
||||||
portion of your source tree out (and do not have it backed up) then
|
portion of your source tree out (and do not have it backed up) then
|
||||||
you will have to start from scratch (from the most recent CVS
|
you will have to start from scratch (from the most recent CVS
|
||||||
<quote>base delta</quote>) and rebuild it all with <application>CTM</application> or, with
|
<quote>base delta</quote>) and rebuild it all with
|
||||||
<application>Anonymous CVS</application>, simply delete the bad bits and resync.</para>
|
<application>CTM</application> or, with
|
||||||
|
<application>Anonymous CVS</application>, simply delete the bad bits
|
||||||
|
and resync.</para>
|
||||||
</sect1>
|
</sect1>
|
||||||
|
|
||||||
<sect1 id="makeworld">
|
<sect1 id="makeworld">
|
||||||
|
@ -579,8 +594,7 @@
|
||||||
</indexterm>
|
</indexterm>
|
||||||
<para>Once you have synchronized your local source tree against a
|
<para>Once you have synchronized your local source tree against a
|
||||||
particular version of &os; (&os.stable;, &os.current;, and so on)
|
particular version of &os; (&os.stable;, &os.current;, and so on)
|
||||||
you can then use the source
|
you can then use the source tree to rebuild the system.</para>
|
||||||
tree to rebuild the system.</para>
|
|
||||||
|
|
||||||
<warning>
|
<warning>
|
||||||
<title>Make a Backup</title>
|
<title>Make a Backup</title>
|
||||||
|
@ -593,9 +607,8 @@
|
||||||
source tree render your system unbootable.</para>
|
source tree render your system unbootable.</para>
|
||||||
|
|
||||||
<para>Make sure you have taken a backup. And have a fixit floppy or
|
<para>Make sure you have taken a backup. And have a fixit floppy or
|
||||||
bootable CD at
|
bootable CD at hand. You will probably never have to use it, but it
|
||||||
hand. You will probably never have to use it, but it is better to be
|
is better to be safe than sorry!</para>
|
||||||
safe than sorry!</para>
|
|
||||||
</warning>
|
</warning>
|
||||||
|
|
||||||
<warning>
|
<warning>
|
||||||
|
@ -619,9 +632,8 @@
|
||||||
solved.</para>
|
solved.</para>
|
||||||
|
|
||||||
<para>If you try to track &os.stable; or &os.current; and do
|
<para>If you try to track &os.stable; or &os.current; and do
|
||||||
not read the &a.stable; or the
|
not read the &a.stable; or the &a.current; respectively, then you
|
||||||
&a.current; respectively, then you are
|
are asking for trouble.</para>
|
||||||
asking for trouble.</para>
|
|
||||||
</warning>
|
</warning>
|
||||||
|
|
||||||
<warning>
|
<warning>
|
||||||
|
@ -693,8 +705,8 @@
|
||||||
|
|
||||||
<important>
|
<important>
|
||||||
<para>Reading <filename>UPDATING</filename> is not an acceptable
|
<para>Reading <filename>UPDATING</filename> is not an acceptable
|
||||||
substitute for subscribing to the correct mailing list, as described
|
substitute for subscribing to the correct mailing list, as
|
||||||
previously. The two requirements are complementary, not
|
described previously. The two requirements are complementary, not
|
||||||
exclusive.</para>
|
exclusive.</para>
|
||||||
</important>
|
</important>
|
||||||
</sect2>
|
</sect2>
|
||||||
|
@ -706,8 +718,7 @@
|
||||||
</indexterm>
|
</indexterm>
|
||||||
|
|
||||||
<para>Examine the files
|
<para>Examine the files
|
||||||
<filename>/usr/share/examples/etc/make.conf</filename>
|
<filename>/usr/share/examples/etc/make.conf</filename> and
|
||||||
and
|
|
||||||
<filename>/etc/make.conf</filename>. The first contains some
|
<filename>/etc/make.conf</filename>. The first contains some
|
||||||
default defines – most of which are commented out. To
|
default defines – most of which are commented out. To
|
||||||
make use of them when you rebuild your system from source, add
|
make use of them when you rebuild your system from source, add
|
||||||
|
@ -720,8 +731,7 @@
|
||||||
<makevar>CFLAGS</makevar> and
|
<makevar>CFLAGS</makevar> and
|
||||||
<makevar>NO_PROFILE</makevar> lines found in
|
<makevar>NO_PROFILE</makevar> lines found in
|
||||||
<filename>/usr/share/examples/etc/make.conf</filename>
|
<filename>/usr/share/examples/etc/make.conf</filename>
|
||||||
to
|
to <filename>/etc/make.conf</filename> and uncomment them.</para>
|
||||||
<filename>/etc/make.conf</filename> and uncomment them.</para>
|
|
||||||
|
|
||||||
<para>Examine the other definitions (<makevar>COPTFLAGS</makevar>,
|
<para>Examine the other definitions (<makevar>COPTFLAGS</makevar>,
|
||||||
<makevar>NOPORTDOCS</makevar> and so
|
<makevar>NOPORTDOCS</makevar> and so
|
||||||
|
@ -741,15 +751,14 @@
|
||||||
<filename>/etc/group</filename>.</para>
|
<filename>/etc/group</filename>.</para>
|
||||||
|
|
||||||
<para>There have been occasions when the installation part of
|
<para>There have been occasions when the installation part of
|
||||||
<command>make installworld</command> has expected certain usernames or groups
|
<command>make installworld</command> has expected certain usernames
|
||||||
to exist. When performing an upgrade it is likely that these
|
or groups to exist. When performing an upgrade it is likely that
|
||||||
users or groups did not exist. This caused problems when upgrading.
|
these users or groups did not exist. This caused problems when
|
||||||
In some cases <command>make buildworld</command> will check to see if
|
upgrading. In some cases <command>make buildworld</command> will
|
||||||
these users or groups exist.</para>
|
check to see if these users or groups exist.</para>
|
||||||
|
|
||||||
<para>An example of this is when the
|
<para>An example of this is when the <username>smmsp</username> user
|
||||||
<username>smmsp</username> user was added. Users had the
|
was added. Users had the installation process fail for them when
|
||||||
installation process fail for them when
|
|
||||||
&man.mtree.8; was trying to create
|
&man.mtree.8; was trying to create
|
||||||
<filename>/var/spool/clientmqueue</filename>.</para>
|
<filename>/var/spool/clientmqueue</filename>.</para>
|
||||||
|
|
||||||
|
@ -806,8 +815,8 @@
|
||||||
mode.</para>
|
mode.</para>
|
||||||
|
|
||||||
<para>Alternatively, reboot the system, and at the boot prompt,
|
<para>Alternatively, reboot the system, and at the boot prompt,
|
||||||
select the <quote>single user</quote> option. The system will then boot
|
select the <quote>single user</quote> option. The system will then
|
||||||
single user. At the shell prompt you should then run:</para>
|
boot single user. At the shell prompt you should then run:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>fsck -p</userinput>
|
<screen>&prompt.root; <userinput>fsck -p</userinput>
|
||||||
&prompt.root; <userinput>mount -u /</userinput>
|
&prompt.root; <userinput>mount -u /</userinput>
|
||||||
|
@ -818,20 +827,18 @@
|
||||||
read/write, mounts all the other UFS file systems referenced in
|
read/write, mounts all the other UFS file systems referenced in
|
||||||
<filename>/etc/fstab</filename> and then turns swapping on.</para>
|
<filename>/etc/fstab</filename> and then turns swapping on.</para>
|
||||||
|
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>If your CMOS clock is set to local time and not to GMT
|
<para>If your CMOS clock is set to local time and not to GMT
|
||||||
(this is true if the output of the &man.date.1; command
|
(this is true if the output of the &man.date.1; command
|
||||||
does not show the correct time and zone),
|
does not show the correct time and zone),
|
||||||
you may also need to run the following command:</para>
|
you may also need to run the following command:</para>
|
||||||
<screen>&prompt.root; <userinput>adjkerntz -i</userinput></screen>
|
|
||||||
|
<screen>&prompt.root; <userinput>adjkerntz -i</userinput></screen>
|
||||||
|
|
||||||
<para>This will make sure that your local time-zone settings
|
<para>This will make sure that your local time-zone settings
|
||||||
get set up correctly — without this, you may later run into some
|
get set up correctly — without this, you may later run
|
||||||
problems.
|
into some problems.</para>
|
||||||
</para>
|
|
||||||
</note>
|
</note>
|
||||||
|
|
||||||
</sect2>
|
</sect2>
|
||||||
|
|
||||||
<sect2>
|
<sect2>
|
||||||
|
@ -842,8 +849,8 @@
|
||||||
<filename>/usr/obj</filename>. The directories shadow those under
|
<filename>/usr/obj</filename>. The directories shadow those under
|
||||||
<filename>/usr/src</filename>.</para>
|
<filename>/usr/src</filename>.</para>
|
||||||
|
|
||||||
<para>You can speed up the <command>make buildworld</command> process, and
|
<para>You can speed up the <command>make buildworld</command> process,
|
||||||
possibly save yourself some dependency headaches by removing this
|
and possibly save yourself some dependency headaches by removing this
|
||||||
directory as well.</para>
|
directory as well.</para>
|
||||||
|
|
||||||
<para>Some files below <filename>/usr/obj</filename> may have the
|
<para>Some files below <filename>/usr/obj</filename> may have the
|
||||||
|
@ -953,25 +960,26 @@ Script done, …</screen>
|
||||||
|
|
||||||
<para>As the names imply, <maketarget>buildworld</maketarget>
|
<para>As the names imply, <maketarget>buildworld</maketarget>
|
||||||
builds a complete new tree under <filename>/usr/obj</filename>,
|
builds a complete new tree under <filename>/usr/obj</filename>,
|
||||||
and <maketarget>installworld</maketarget>, another target, installs this tree on
|
and <maketarget>installworld</maketarget>, another target,
|
||||||
the current machine.</para>
|
installs this tree on the current machine.</para>
|
||||||
|
|
||||||
<para>Having separate options is very useful for two reasons. First, it allows you
|
<para>Having separate options is very useful for two reasons. First,
|
||||||
to do the build safe in the knowledge that no components of
|
it allows you to do the build safe in the knowledge that no
|
||||||
your running system will be affected. The build is
|
components of your running system will be affected. The build is
|
||||||
<quote>self hosted</quote>. Because of this, you can safely
|
<quote>self hosted</quote>. Because of this, you can safely
|
||||||
run <maketarget>buildworld</maketarget> on a machine running
|
run <maketarget>buildworld</maketarget> on a machine running
|
||||||
in multi-user mode with no fear of ill-effects. It is still
|
in multi-user mode with no fear of ill-effects. It is still
|
||||||
recommended that you run the
|
recommended that you run the <maketarget>installworld</maketarget>
|
||||||
<maketarget>installworld</maketarget> part in single user
|
part in single user mode, though.</para>
|
||||||
mode, though.</para>
|
|
||||||
|
|
||||||
<para>Secondly, it allows you to use NFS mounts to upgrade
|
<para>Secondly, it allows you to use NFS mounts to upgrade
|
||||||
multiple machines on your network. If you have three machines,
|
multiple machines on your network. If you have three machines,
|
||||||
<hostid>A</hostid>, <hostid>B</hostid> and <hostid>C</hostid> that you want to upgrade, run <command>make
|
<hostid>A</hostid>, <hostid>B</hostid> and <hostid>C</hostid> that
|
||||||
buildworld</command> and <command>make installworld</command> on
|
you want to upgrade, run <command>make buildworld</command> and
|
||||||
<hostid>A</hostid>. <hostid>B</hostid> and <hostid>C</hostid> should then NFS mount <filename>/usr/src</filename>
|
<command>make installworld</command> on <hostid>A</hostid>.
|
||||||
and <filename>/usr/obj</filename> from <hostid>A</hostid>, and you can then run
|
<hostid>B</hostid> and <hostid>C</hostid> should then NFS mount
|
||||||
|
<filename>/usr/src</filename> and <filename>/usr/obj</filename>
|
||||||
|
from <hostid>A</hostid>, and you can then run
|
||||||
<command>make installworld</command> to install the results of
|
<command>make installworld</command> to install the results of
|
||||||
the build on <hostid>B</hostid> and <hostid>C</hostid>.</para>
|
the build on <hostid>B</hostid> and <hostid>C</hostid>.</para>
|
||||||
|
|
||||||
|
@ -1042,8 +1050,10 @@ Script done, …</screen>
|
||||||
linkend="make-buildworld">build world</link> before building a
|
linkend="make-buildworld">build world</link> before building a
|
||||||
new kernel.</para>
|
new kernel.</para>
|
||||||
|
|
||||||
<note><para>If you want to build a custom kernel, and already have a configuration
|
<note>
|
||||||
file, just use <literal>KERNCONF=<replaceable>MYKERNEL</replaceable></literal>
|
<para>If you want to build a custom kernel, and already have a
|
||||||
|
configuration file, just use
|
||||||
|
<literal>KERNCONF=<replaceable>MYKERNEL</replaceable></literal>
|
||||||
like this:</para>
|
like this:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
|
<screen>&prompt.root; <userinput>cd /usr/src</userinput>
|
||||||
|
@ -1085,11 +1095,11 @@ Script done, …</screen>
|
||||||
&prompt.root; <userinput>make installworld</userinput></screen>
|
&prompt.root; <userinput>make installworld</userinput></screen>
|
||||||
|
|
||||||
<note>
|
<note>
|
||||||
<para>If you specified variables on the <command>make
|
<para>If you specified variables on the
|
||||||
buildworld</command> command line, you must specify the same
|
<command>make buildworld</command> command line, you must specify
|
||||||
variables in the <command>make installworld</command> command
|
the same variables in the <command>make installworld</command>
|
||||||
line. This does not necessarily hold true for other options;
|
command line. This does not necessarily hold true for other
|
||||||
for example, <option>-j</option> must never be used with
|
options; for example, <option>-j</option> must never be used with
|
||||||
<maketarget>installworld</maketarget>.</para>
|
<maketarget>installworld</maketarget>.</para>
|
||||||
|
|
||||||
<para>For example, if you ran:</para>
|
<para>For example, if you ran:</para>
|
||||||
|
@ -1111,7 +1121,8 @@ Script done, …</screen>
|
||||||
|
|
||||||
<para>Remaking the world will not update certain directories (in
|
<para>Remaking the world will not update certain directories (in
|
||||||
particular, <filename>/etc</filename>, <filename>/var</filename> and
|
particular, <filename>/etc</filename>, <filename>/var</filename> and
|
||||||
<filename>/usr</filename>) with new or changed configuration files.</para>
|
<filename>/usr</filename>) with new or changed configuration
|
||||||
|
files.</para>
|
||||||
|
|
||||||
<para>The simplest way to update these files is to use
|
<para>The simplest way to update these files is to use
|
||||||
&man.mergemaster.8;, though it is possible to do it manually
|
&man.mergemaster.8;, though it is possible to do it manually
|
||||||
|
@ -1133,58 +1144,64 @@ Script done, …</screen>
|
||||||
<indexterm><primary><command>mergemaster</command></primary></indexterm>
|
<indexterm><primary><command>mergemaster</command></primary></indexterm>
|
||||||
|
|
||||||
<para>The &man.mergemaster.8; utility is a Bourne script that will
|
<para>The &man.mergemaster.8; utility is a Bourne script that will
|
||||||
aid you in determining the differences between your configuration files
|
aid you in determining the differences between your configuration
|
||||||
in <filename>/etc</filename>, and the configuration files in
|
files in <filename>/etc</filename>, and the configuration files in
|
||||||
the source tree <filename>/usr/src/etc</filename>. This is
|
the source tree <filename>/usr/src/etc</filename>. This is
|
||||||
the recommended solution for keeping the system configuration files up to date
|
the recommended solution for keeping the system configuration files
|
||||||
with those located in the source tree.</para>
|
up to date with those located in the source tree.</para>
|
||||||
|
|
||||||
<para>To begin simply type <command>mergemaster</command> at your prompt, and
|
<para>To begin simply type <command>mergemaster</command> at your
|
||||||
watch it start going. <command>mergemaster</command> will then build a
|
prompt, and watch it start going. <command>mergemaster</command>
|
||||||
temporary root environment, from <filename>/</filename> down, and populate
|
will then build a temporary root environment, from
|
||||||
it with various system configuration files. Those files are then compared
|
<filename>/</filename> down, and populate it with various system
|
||||||
to the ones currently installed in your system. At this point, files that
|
configuration files. Those files are then compared to the ones
|
||||||
differ will be shown in &man.diff.1; format, with the <option>+</option> sign
|
currently installed in your system. At this point, files that
|
||||||
representing added or modified lines, and <option>-</option> representing
|
differ will be shown in &man.diff.1; format, with the
|
||||||
lines that will be either removed completely, or replaced with a new line.
|
<option>+</option> sign representing added or modified lines, and
|
||||||
See the &man.diff.1; manual page for more information about the &man.diff.1;
|
<option>-</option> representing lines that will be either removed
|
||||||
syntax and how file differences are shown.</para>
|
completely, or replaced with a new line. See the &man.diff.1;
|
||||||
|
manual page for more information about the &man.diff.1; syntax and
|
||||||
|
how file differences are shown.</para>
|
||||||
|
|
||||||
<para>&man.mergemaster.8; will then show you each file that displays variances,
|
<para>&man.mergemaster.8; will then show you each file that displays
|
||||||
and at this point you will have the option of either deleting the new file (referred
|
variances, and at this point you will have the option of either
|
||||||
to as the temporary file), installing the temporary file in its unmodified state,
|
deleting the new file (referred to as the temporary file),
|
||||||
merging the temporary file with the currently installed file, or viewing the
|
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.</para>
|
&man.diff.1; results again.</para>
|
||||||
|
|
||||||
<para>Choosing to delete the temporary file will tell &man.mergemaster.8; that we
|
<para>Choosing to delete the temporary file will tell
|
||||||
wish to keep our current file unchanged, and to delete the new version.
|
&man.mergemaster.8; that we wish to keep our current file
|
||||||
This option is not recommended, unless you see no
|
unchanged, and to delete the new version. This option is not
|
||||||
reason to change the current file. You can get help at any time by
|
recommended, unless you see no reason to change the current file.
|
||||||
typing <keycap>?</keycap> at the &man.mergemaster.8; prompt. If the user
|
You can get help at any time by typing <keycap>?</keycap> at the
|
||||||
chooses to skip a file, it will be presented again after all other files
|
&man.mergemaster.8; prompt. If the user chooses to skip a file,
|
||||||
have been dealt with.</para>
|
it will be presented again after all other files have been dealt
|
||||||
|
with.</para>
|
||||||
|
|
||||||
<para>Choosing to install the unmodified temporary file will replace the
|
<para>Choosing to install the unmodified temporary file will replace
|
||||||
current file with the new one. For most unmodified files, this is the best
|
the current file with the new one. For most unmodified files,
|
||||||
option.</para>
|
this is the best option.</para>
|
||||||
|
|
||||||
<para>Choosing to merge the file will present you with a text editor,
|
<para>Choosing to merge the file will present you with a text editor,
|
||||||
and the contents of both files. You can now merge them by
|
and the contents of both files. You can now merge them by
|
||||||
reviewing both files side by side on the screen, and choosing parts from
|
reviewing both files side by side on the screen, and choosing parts
|
||||||
both to create a finished product. When the files are compared side by side,
|
from both to create a finished product. When the files are
|
||||||
the <keycap>l</keycap> key will select the left contents and the
|
compared side by side, the <keycap>l</keycap> key will select the
|
||||||
<keycap>r</keycap> key will select contents from your right.
|
left contents and the <keycap>r</keycap> key will select contents
|
||||||
The final output will be a file consisting of both parts, which can then be
|
from your right. The final output will be a file consisting of
|
||||||
installed. This option is customarily used for files where settings have been
|
both parts, which can then be installed. This option is
|
||||||
modified by the user.</para>
|
customarily used for files where settings have been modified by
|
||||||
|
the user.</para>
|
||||||
|
|
||||||
<para>Choosing to view the &man.diff.1; results again will show you the file differences
|
<para>Choosing to view the &man.diff.1; results again will show you
|
||||||
just like &man.mergemaster.8; did before prompting you for an option.</para>
|
the file differences just like &man.mergemaster.8; did before
|
||||||
|
prompting you for an option.</para>
|
||||||
|
|
||||||
<para>After &man.mergemaster.8; is done with the system files you will be
|
<para>After &man.mergemaster.8; is done with the system files you
|
||||||
prompted for other options. &man.mergemaster.8; may ask if you want to rebuild
|
will be prompted for other options. &man.mergemaster.8; may ask
|
||||||
the password file and will finish up with an option to
|
if you want to rebuild the password file and will finish up with
|
||||||
remove left-over temporary files.</para>
|
an option to remove left-over temporary files.</para>
|
||||||
</sect3>
|
</sect3>
|
||||||
|
|
||||||
<sect3>
|
<sect3>
|
||||||
|
@ -1201,8 +1218,8 @@ Script done, …</screen>
|
||||||
not in <filename>/usr/src/etc</filename>.</para>
|
not in <filename>/usr/src/etc</filename>.</para>
|
||||||
|
|
||||||
<para>If you are using &man.mergemaster.8; (as recommended),
|
<para>If you are using &man.mergemaster.8; (as recommended),
|
||||||
you can skip forward to the <link linkend="cutting-edge-rebooting">next
|
you can skip forward to the <link
|
||||||
section</link>.</para>
|
linkend="cutting-edge-rebooting">next section</link>.</para>
|
||||||
|
|
||||||
<para>The simplest way to do this by hand is to install the
|
<para>The simplest way to do this by hand is to install the
|
||||||
files into a new directory, and then work through them looking
|
files into a new directory, and then work through them looking
|
||||||
|
@ -1232,8 +1249,8 @@ Script done, …</screen>
|
||||||
&prompt.root; <userinput>cd /usr/src/etc</userinput>
|
&prompt.root; <userinput>cd /usr/src/etc</userinput>
|
||||||
&prompt.root; <userinput>make DESTDIR=/var/tmp/root distrib-dirs distribution</userinput></screen>
|
&prompt.root; <userinput>make DESTDIR=/var/tmp/root distrib-dirs distribution</userinput></screen>
|
||||||
|
|
||||||
<para>This will build the necessary directory structure and install the
|
<para>This will build the necessary directory structure and install
|
||||||
files. A lot of the subdirectories that have been created under
|
the files. A lot of the subdirectories that have been created under
|
||||||
<filename>/var/tmp/root</filename> are empty and should be deleted.
|
<filename>/var/tmp/root</filename> are empty and should be deleted.
|
||||||
The simplest way to do this is to:</para>
|
The simplest way to do this is to:</para>
|
||||||
|
|
||||||
|
@ -1244,29 +1261,29 @@ Script done, …</screen>
|
||||||
redirected to <filename>/dev/null</filename> to prevent the warnings
|
redirected to <filename>/dev/null</filename> to prevent the warnings
|
||||||
about the directories that are not empty.)</para>
|
about the directories that are not empty.)</para>
|
||||||
|
|
||||||
<para><filename>/var/tmp/root</filename> now contains all the files that
|
<para><filename>/var/tmp/root</filename> now contains all the files
|
||||||
should be placed in appropriate locations below
|
that should be placed in appropriate locations below
|
||||||
<filename>/</filename>. You now have to go through each of these
|
<filename>/</filename>. You now have to go through each of these
|
||||||
files, determining how they differ with your existing files.</para>
|
files, determining how they differ with your existing files.</para>
|
||||||
|
|
||||||
<para>Note that some of the files that will have been installed in
|
<para>Note that some of the files that will have been installed in
|
||||||
<filename>/var/tmp/root</filename> have a leading <quote>.</quote>. At the
|
<filename>/var/tmp/root</filename> have a leading <quote>.</quote>.
|
||||||
time of writing the only files like this are shell startup files in
|
At the time of writing the only files like this are shell startup
|
||||||
<filename>/var/tmp/root/</filename> and
|
files in <filename>/var/tmp/root/</filename> and
|
||||||
<filename>/var/tmp/root/root/</filename>, although there may be others
|
<filename>/var/tmp/root/root/</filename>, although there may be
|
||||||
(depending on when you are reading this). Make sure you use
|
others (depending on when you are reading this). Make sure you use
|
||||||
<command>ls -a</command> to catch them.</para>
|
<command>ls -a</command> to catch them.</para>
|
||||||
|
|
||||||
<para>The simplest way to do this is to use &man.diff.1; to compare the
|
<para>The simplest way to do this is to use &man.diff.1; to compare
|
||||||
two files:</para>
|
the two files:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>diff /etc/shells /var/tmp/root/etc/shells</userinput></screen>
|
<screen>&prompt.root; <userinput>diff /etc/shells /var/tmp/root/etc/shells</userinput></screen>
|
||||||
|
|
||||||
<para>This will show you the differences between your
|
<para>This will show you the differences between your
|
||||||
<filename>/etc/shells</filename> file and the new
|
<filename>/etc/shells</filename> file and the new
|
||||||
<filename>/var/tmp/root/etc/shells</filename> file. Use these to decide whether to
|
<filename>/var/tmp/root/etc/shells</filename> file. Use these to
|
||||||
merge in changes that you have made or whether to copy over your old
|
decide whether to merge in changes that you have made or whether to
|
||||||
file.</para>
|
copy over your old file.</para>
|
||||||
|
|
||||||
<tip>
|
<tip>
|
||||||
<title>Name the New Root Directory
|
<title>Name the New Root Directory
|
||||||
|
@ -1274,19 +1291,20 @@ Script done, …</screen>
|
||||||
Easily Compare Differences Between Versions</title>
|
Easily Compare Differences Between Versions</title>
|
||||||
|
|
||||||
<para>Frequently rebuilding the world means that you have to update
|
<para>Frequently rebuilding the world means that you have to update
|
||||||
<filename>/etc</filename> frequently as well, which can be a bit of
|
<filename>/etc</filename> frequently as well, which can be a bit
|
||||||
a chore.</para>
|
of a chore.</para>
|
||||||
|
|
||||||
<para>You can speed this process up by keeping a copy of the last set
|
<para>You can speed this process up by keeping a copy of the last
|
||||||
of changed files that you merged into <filename>/etc</filename>.
|
set of changed files that you merged into
|
||||||
The following procedure gives one idea of how to do this.</para>
|
<filename>/etc</filename>. The following procedure gives one
|
||||||
|
idea of how to do this.</para>
|
||||||
|
|
||||||
<procedure>
|
<procedure>
|
||||||
<step>
|
<step>
|
||||||
<para>Make the world as normal. When you want to update
|
<para>Make the world as normal. When you want to update
|
||||||
<filename>/etc</filename> and the other directories, give the
|
<filename>/etc</filename> and the other directories, give the
|
||||||
target directory a name based on the current date. If you were
|
target directory a name based on the current date. If you
|
||||||
doing this on the 14th of February 1998 you could do the
|
were doing this on the 14th of February 1998 you could do the
|
||||||
following:</para>
|
following:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>mkdir /var/tmp/root-19980214</userinput>
|
<screen>&prompt.root; <userinput>mkdir /var/tmp/root-19980214</userinput>
|
||||||
|
@ -1308,14 +1326,14 @@ Script done, …</screen>
|
||||||
<para>When you have downloaded the latest version of the source
|
<para>When you have downloaded the latest version of the source
|
||||||
and remade it, follow step 1. This will give you a new
|
and remade it, follow step 1. This will give you a new
|
||||||
directory, which might be called
|
directory, which might be called
|
||||||
<filename>/var/tmp/root-19980221</filename> (if you wait a week
|
<filename>/var/tmp/root-19980221</filename> (if you wait a
|
||||||
between doing updates).</para>
|
week between doing updates).</para>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step>
|
<step>
|
||||||
<para>You can now see the differences that have been made in the
|
<para>You can now see the differences that have been made in the
|
||||||
intervening week using &man.diff.1; to create a recursive diff
|
intervening week using &man.diff.1; to create a recursive
|
||||||
between the two directories:</para>
|
diff between the two directories:</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>cd /var/tmp</userinput>
|
<screen>&prompt.root; <userinput>cd /var/tmp</userinput>
|
||||||
&prompt.root; <userinput>diff -r root-19980214 root-19980221</userinput></screen>
|
&prompt.root; <userinput>diff -r root-19980214 root-19980221</userinput></screen>
|
||||||
|
@ -1324,8 +1342,8 @@ Script done, …</screen>
|
||||||
than those between
|
than those between
|
||||||
<filename>/var/tmp/root-19980221/etc</filename> and
|
<filename>/var/tmp/root-19980221/etc</filename> and
|
||||||
<filename>/etc</filename>. Because the set of differences is
|
<filename>/etc</filename>. Because the set of differences is
|
||||||
smaller, it is easier to migrate those changes across into your
|
smaller, it is easier to migrate those changes across into
|
||||||
<filename>/etc</filename> directory.</para>
|
your <filename>/etc</filename> directory.</para>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step>
|
<step>
|
||||||
|
@ -1336,8 +1354,8 @@ Script done, …</screen>
|
||||||
</step>
|
</step>
|
||||||
|
|
||||||
<step>
|
<step>
|
||||||
<para>Repeat this process every time you need to merge in changes
|
<para>Repeat this process every time you need to merge in
|
||||||
to <filename>/etc</filename>.</para>
|
changes to <filename>/etc</filename>.</para>
|
||||||
</step>
|
</step>
|
||||||
</procedure>
|
</procedure>
|
||||||
|
|
||||||
|
@ -1386,8 +1404,9 @@ Script done, …</screen>
|
||||||
|
|
||||||
<answer>
|
<answer>
|
||||||
<para>There is no easy answer to this one, as it depends on the
|
<para>There is no easy answer to this one, as it depends on the
|
||||||
nature of the change. For example, if you just ran <application>CVSup</application>, and
|
nature of the change. For example, if you just ran
|
||||||
it has shown the following files as being updated:</para>
|
<application>CVSup</application>, and it has shown the
|
||||||
|
following files as being updated:</para>
|
||||||
|
|
||||||
<screen><filename>src/games/cribbage/instr.c</filename>
|
<screen><filename>src/games/cribbage/instr.c</filename>
|
||||||
<filename>src/games/sail/pl_main.c</filename>
|
<filename>src/games/sail/pl_main.c</filename>
|
||||||
|
@ -1424,7 +1443,6 @@ Script done, …</screen>
|
||||||
<indexterm><primary>signal 11</primary></indexterm>
|
<indexterm><primary>signal 11</primary></indexterm>
|
||||||
|
|
||||||
<answer>
|
<answer>
|
||||||
|
|
||||||
<para>This is normally indicative of hardware problems.
|
<para>This is normally indicative of hardware problems.
|
||||||
(Re)making the world is an effective way to stress test your
|
(Re)making the world is an effective way to stress test your
|
||||||
hardware, and will frequently throw up memory problems. These
|
hardware, and will frequently throw up memory problems. These
|
||||||
|
@ -1451,20 +1469,20 @@ Script done, …</screen>
|
||||||
|
|
||||||
<para><filename>/usr/obj</filename> contains all the object files
|
<para><filename>/usr/obj</filename> contains all the object files
|
||||||
that were produced during the compilation phase. Normally, one
|
that were produced during the compilation phase. Normally, one
|
||||||
of the first steps in the <command>make buildworld</command> process is to
|
of the first steps in the <command>make buildworld</command>
|
||||||
remove this directory and start afresh. In this case, keeping
|
process is to remove this directory and start afresh. In this
|
||||||
<filename>/usr/obj</filename> around after you have finished
|
case, keeping <filename>/usr/obj</filename> around after you
|
||||||
makes little sense, and will free up a large chunk of disk space
|
have finished makes little sense, and will free up a large
|
||||||
(currently about 340 MB).</para>
|
chunk of disk space (currently about 340 MB).</para>
|
||||||
|
|
||||||
<para>However, if you know what you are doing you can have
|
<para>However, if you know what you are doing you can have
|
||||||
<command>make buildworld</command> skip this step. This will make subsequent
|
<command>make buildworld</command> skip this step. This will
|
||||||
builds run much faster, since most of sources will not need to
|
make subsequent builds run much faster, since most of sources
|
||||||
be recompiled. The flip side of this is that subtle dependency
|
will not need to be recompiled. The flip side of this is that
|
||||||
problems can creep in, causing your build to fail in odd ways.
|
subtle dependency problems can creep in, causing your build to
|
||||||
This frequently generates noise on the &os; mailing lists,
|
fail in odd ways. This frequently generates noise on the &os;
|
||||||
when one person complains that their build has failed, not
|
mailing lists, when one person complains that their build has
|
||||||
realizing that it is because they have tried to cut
|
failed, not realizing that it is because they have tried to cut
|
||||||
corners.</para>
|
corners.</para>
|
||||||
</answer>
|
</answer>
|
||||||
</qandaentry>
|
</qandaentry>
|
||||||
|
@ -1479,8 +1497,8 @@ Script done, …</screen>
|
||||||
you found a problem.</para>
|
you found a problem.</para>
|
||||||
|
|
||||||
<para><emphasis>In general</emphasis> (and this is not a hard and
|
<para><emphasis>In general</emphasis> (and this is not a hard and
|
||||||
fast rule) the <command>make buildworld</command> process builds new
|
fast rule) the <command>make buildworld</command> process
|
||||||
copies of essential tools (such as &man.gcc.1;, and
|
builds new copies of essential tools (such as &man.gcc.1;, and
|
||||||
&man.make.1;) and the system libraries. These tools and
|
&man.make.1;) and the system libraries. These tools and
|
||||||
libraries are then installed. The new tools and libraries are
|
libraries are then installed. The new tools and libraries are
|
||||||
then used to rebuild themselves, and are installed again. The
|
then used to rebuild themselves, and are installed again. The
|
||||||
|
@ -1539,16 +1557,16 @@ Building everything..
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Turn off profiling (set <quote>NO_PROFILE=true</quote> in
|
<para>Turn off profiling (set <quote>NO_PROFILE=true</quote>
|
||||||
<filename>/etc/make.conf</filename>). You almost certainly
|
in <filename>/etc/make.conf</filename>). You almost
|
||||||
do not need it.</para>
|
certainly do not need it.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Also in <filename>/etc/make.conf</filename>, set
|
<para>Also in <filename>/etc/make.conf</filename>, set
|
||||||
<makevar>CFLAGS</makevar> to something like <option>-O
|
<makevar>CFLAGS</makevar> to something like <option>-O
|
||||||
-pipe</option>. The optimization <option>-O2</option> is much
|
-pipe</option>. The optimization <option>-O2</option>
|
||||||
slower, and the optimization difference between
|
is much slower, and the optimization difference between
|
||||||
<option>-O</option> and <option>-O2</option> is normally
|
<option>-O</option> and <option>-O2</option> is normally
|
||||||
negligible. <option>-pipe</option> lets the compiler use
|
negligible. <option>-pipe</option> lets the compiler use
|
||||||
pipes rather than temporary files for communication, which
|
pipes rather than temporary files for communication, which
|
||||||
|
@ -1556,17 +1574,19 @@ Building everything..
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>Pass the <option>-j<replaceable>n</replaceable></option> option to &man.make.1; to
|
<para>Pass the
|
||||||
run multiple processes in parallel. This usually helps
|
<option>-j<replaceable>n</replaceable></option> option to
|
||||||
regardless of whether you have a single or a multi processor
|
&man.make.1; to run multiple processes in parallel. This
|
||||||
machine.</para>
|
usually helps regardless of whether you have a single or
|
||||||
|
a multi processor machine.</para>
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem><para>The file system holding
|
<listitem>
|
||||||
<filename>/usr/src</filename> can be mounted (or remounted)
|
<para>The file system holding <filename>/usr/src</filename>
|
||||||
with the <option>noatime</option> option. This prevents the
|
can be mounted (or remounted) with the
|
||||||
file system from recording the file access time. You probably
|
<option>noatime</option> option. This prevents the
|
||||||
do not need this information anyway.</para>
|
file system from recording the file access time.
|
||||||
|
You probably do not need this information anyway.</para>
|
||||||
|
|
||||||
<screen>&prompt.root; <userinput>mount -u -o noatime /usr/src</userinput></screen>
|
<screen>&prompt.root; <userinput>mount -u -o noatime /usr/src</userinput></screen>
|
||||||
|
|
||||||
|
@ -1580,13 +1600,13 @@ Building everything..
|
||||||
</listitem>
|
</listitem>
|
||||||
|
|
||||||
<listitem>
|
<listitem>
|
||||||
<para>The file system holding <filename>/usr/obj</filename> can
|
<para>The file system holding <filename>/usr/obj</filename>
|
||||||
be mounted (or remounted) with the <option>async</option>
|
can be mounted (or remounted) with the
|
||||||
option. This causes disk writes to happen asynchronously.
|
<option>async</option> option. This causes disk writes to
|
||||||
In other words, the write completes immediately, and the
|
happen asynchronously. In other words, the write completes
|
||||||
data is written to the disk a few seconds later. This
|
immediately, and the data is written to the disk a few
|
||||||
allows writes to be clustered together, and can be a
|
seconds later. This allows writes to be clustered
|
||||||
dramatic performance boost.</para>
|
together, and can be a dramatic performance boost.</para>
|
||||||
|
|
||||||
<warning>
|
<warning>
|
||||||
<para>Keep in mind that this option makes your file system
|
<para>Keep in mind that this option makes your file system
|
||||||
|
@ -1655,6 +1675,7 @@ Building everything..
|
||||||
</author>
|
</author>
|
||||||
</authorgroup>
|
</authorgroup>
|
||||||
</sect1info>
|
</sect1info>
|
||||||
|
|
||||||
<title>Tracking for Multiple Machines</title>
|
<title>Tracking for Multiple Machines</title>
|
||||||
<indexterm>
|
<indexterm>
|
||||||
<primary>NFS</primary>
|
<primary>NFS</primary>
|
||||||
|
@ -1765,4 +1786,3 @@ Building everything..
|
||||||
sgml-parent-document: ("../book.sgml" "part" "chapter")
|
sgml-parent-document: ("../book.sgml" "part" "chapter")
|
||||||
End:
|
End:
|
||||||
-->
|
-->
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue