Date: Wed, 21 Jul 2004 12:56:42 -0400 From: Ken Smith <kensmith@cse.Buffalo.EDU> To: doc@freebsd.org Subject: Handbook update for 'make world' Message-ID: <20040721165642.GA19955@electra.cse.Buffalo.EDU>
next in thread | raw e-mail | index | archive | help
Thoughts? I *think* the flamewar over this change is finished but it might be premature. But most of this probably should be done regardless IHMO. Most of this de-emphasises "make world" in favor of the broken-down "make buildworld; make buildkernel; etc" procedure we've been recommending for a while now. There is one significant-ish procedural change, I moved the "mergemaster -p" step to be first because there are cases that the "make buildworld" step now checks to see if users/groups exist before it will even begin compiling stuff... Index: chapter.sgml =================================================================== RCS file: /home/dcvs/doc/en_US.ISO8859-1/books/handbook/cutting-edge/chapter.sgml,v retrieving revision 1.203 diff -u -r1.203 chapter.sgml --- chapter.sgml 6 Jul 2004 15:09:54 -0000 1.203 +++ chapter.sgml 21 Jul 2004 16:49:13 -0000 @@ -61,7 +61,7 @@ <application>CTM</application>.</para> </listitem> <listitem><para>How to rebuild and reinstall the entire base - system with <command>make world</command>.</para> + system with <command>make buildworld (etc)</command>.</para> </listitem> </itemizedlist> @@ -536,10 +536,10 @@ </sect1> <sect1 id="makeworld"> - <title>Using <command>make world</command></title> + <title>Using <command>make buildworld (etc)</command></title> <indexterm> - <primary><command>make world</command></primary> + <primary><command>make buildworld (etc)</command></primary> </indexterm> <para>Once you have synchronized your local source tree against a particular version of &os; (&os.stable;, &os.current;, and so on) @@ -556,7 +556,8 @@ when you make mistakes, or when mistakes made by others in the source tree render your system unbootable.</para> - <para>Make sure you have taken a backup. And have a fixit floppy to + <para>Make sure you have taken a backup. And have a fixit floppy or + bootable CD at hand. You will probably never have to use it, but it is better to be safe than sorry!</para> </warning> @@ -593,7 +594,8 @@ <para>To update your system, you should use the following procedure:</para> - <screen>&prompt.root; <userinput>make buildworld</userinput> + <screen>&prompt.root; <userinput>mergemaster -p</userinput> +&prompt.root; <userinput>make buildworld</userinput> &prompt.root; <userinput>make buildkernel</userinput> &prompt.root; <userinput>make installkernel</userinput> &prompt.root; <userinput>reboot</userinput></screen> @@ -602,8 +604,7 @@ <command>boot -s</command> from loader prompt for example). Then run:</para> - <screen>&prompt.root; <userinput>mergemaster -p</userinput> -&prompt.root; <userinput>make installworld</userinput> + <screen>&prompt.root; <userinput>make installworld</userinput> &prompt.root; <userinput>mergemaster</userinput> &prompt.root; <userinput>reboot</userinput></screen> @@ -678,9 +679,11 @@ <filename>/etc/group</filename>.</para> <para>There have been occasions when the installation part of - <quote>make world</quote> has expected certain usernames or groups + <quote>make installworld</quote> has expected certain usernames or groups to exist. When performing an upgrade it is likely that these - users or groups did not exist. This caused problems when upgrading.</para> + users or groups did not exist. This caused problems when upgrading. + In some cases <quote>make buildworld</quote> will check to see if + these users or groups exist.</para> <para>A recent example of this is when the <username>smmsp</username> user was added. Users had the @@ -785,7 +788,7 @@ <filename>/usr/obj</filename>. The directories shadow those under <filename>/usr/src</filename>.</para> - <para>You can speed up the <quote>make world</quote> process, and + <para>You can speed up the <quote>make buildworld</quote> process, and possibly save yourself some dependency headaches by removing this directory as well.</para> @@ -895,7 +898,10 @@ &os.stable; midway between 2.2.2 and 2.2.5) the <maketarget>world</maketarget> target has been split in two: <maketarget>buildworld</maketarget> and - <maketarget>installworld</maketarget>.</para> + <maketarget>installworld</maketarget>. Beginning with version + 5.3 of &os the <maketarget>world</maketarget> will be changed + so it will not work at all by default because it is actually + dangerous for most users.</para> <para>As the names imply, <maketarget>buildworld</maketarget> builds a complete new tree under <filename>/usr/obj</filename>, @@ -955,7 +961,7 @@ <sect3> <title>Timings</title> <indexterm> - <primary><command>make world</command></primary> + <primary><command>make buildworld (etc)</command></primary> <secondary>timings</secondary> </indexterm> @@ -1069,7 +1075,7 @@ </sect2> <sect2> - <title>Update Files Not Updated by <command>make world</command></title> + <title>Update Files Not Updated by <command>make installworld</command></title> <para>Remaking the world will not update certain directories (in particular, <filename>/etc</filename>, <filename>/var</filename> and @@ -1511,14 +1517,14 @@ <para><filename>/usr/obj</filename> contains all the object files that were produced during the compilation phase. Normally, one - of the first steps in the <quote>make world</quote> process is to + of the first steps in the <quote>make buildworld</quote> process is to remove this directory and start afresh. In this case, keeping <filename>/usr/obj</filename> around after you have finished makes little sense, and will free up a large chunk of disk space (currently about 340 MB).</para> <para>However, if you know what you are doing you can have - <quote>make world</quote> skip this step. This will make subsequent + <quote>make buildworld</quote> skip this step. This will make subsequent builds run much faster, since most of sources will not need to be recompiled. The flip side of this is that subtle dependency problems can creep in, causing your build to fail in odd ways. @@ -1539,7 +1545,7 @@ you found a problem.</para> <para><emphasis>In general</emphasis> (and this is not a hard and - fast rule) the <quote>make world</quote> process builds new + fast rule) the <quote>make buildworld</quote> process builds new copies of essential tools (such as &man.gcc.1;, and &man.make.1;) and the system libraries. These tools and libraries are then installed. The new tools and libraries are @@ -1557,7 +1563,7 @@ &prompt.root; <userinput>make -DNOCLEAN all</userinput></screen> <para>This will not undo the work of the previous - <quote>make world</quote>.</para> + <quote>make buildworld</quote>.</para> <para>If you see the message:</para> @@ -1565,7 +1571,7 @@ Building everything.. --------------------------------------------------------------</screen> - <para>in the <quote>make world</quote> output then it is + <para>in the <quote>make buildworld</quote> output then it is probably fairly safe to do so.</para> <para>If you do not see that message, or you are not sure, then it @@ -1740,7 +1746,7 @@ <emphasis>build machine</emphasis>. It is going to be the machine that the world and kernel are built on. Ideally, it should be a fast machine that has sufficient spare CPU to - run <command>make world</command>. You will also want to + run <command>make buildworld (etc)</command>. You will also want to choose a machine to be the <emphasis>test machine</emphasis>, which will test software updates before they are put into production. This <emphasis>must</emphasis> be a -- Ken Smith - From there to here, from here to | kensmith@cse.buffalo.edu there, funny things are everywhere. | - Theodore Geisel |
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20040721165642.GA19955>