diff options
Diffstat (limited to 'en_US.ISO8859-1/articles/fbsd-from-scratch/article.xml')
-rw-r--r-- | en_US.ISO8859-1/articles/fbsd-from-scratch/article.xml | 109 |
1 files changed, 47 insertions, 62 deletions
diff --git a/en_US.ISO8859-1/articles/fbsd-from-scratch/article.xml b/en_US.ISO8859-1/articles/fbsd-from-scratch/article.xml index 8adbfcb619..16ae1f14fe 100644 --- a/en_US.ISO8859-1/articles/fbsd-from-scratch/article.xml +++ b/en_US.ISO8859-1/articles/fbsd-from-scratch/article.xml @@ -1,26 +1,21 @@ <?xml version="1.0" encoding="iso-8859-1"?> -<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V4.5-Based Extension//EN" - "../../../share/xml/freebsd45.dtd" [ -<!ENTITY scratch.ap "<application>FreeBSD From Scratch</application>"> +<!DOCTYPE article PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN" + "../../../share/xml/freebsd50.dtd" [ +<!ENTITY scratch.ap "<application xmlns='http://docbook.org/ns/docbook'>FreeBSD From Scratch</application>"> ]> +<article xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="en"> + <info><title>FreeBSD From Scratch</title> + -<article xmlns:xi="http://www.w3.org/2001/XInclude" lang='en'> - <articleinfo> - <title>FreeBSD From Scratch</title> - - <author> - <firstname>Jens</firstname> - <surname>Schweikhardt</surname> - <affiliation> + <author><personname><firstname>Jens</firstname><surname>Schweikhardt</surname></personname><affiliation> <address><email>schweikh@FreeBSD.org</email></address> - </affiliation> - </author> + </affiliation></author> <copyright> <year>2002,2003,2004,2008</year> <holder>Jens Schweikhardt</holder> </copyright> - <legalnotice id="trademarks" role="trademarks"> + <legalnotice xml:id="trademarks" role="trademarks"> &tm-attrib.freebsd; &tm-attrib.adobe; &tm-attrib.general; @@ -29,7 +24,6 @@ <pubdate>$FreeBSD$</pubdate> <releaseinfo>$FreeBSD$</releaseinfo> - </articleinfo> <abstract> <para>This article describes my efforts at &scratch.ap;: a fully @@ -39,15 +33,16 @@ think <command>make world</command> is a wonderful concept, &scratch.ap; extends it to <command>make evenmore</command>.</para> </abstract> + </info> - <sect1 id="introduction"> + <sect1 xml:id="introduction"> <title>Introduction</title> <para>Have you ever upgraded your system with <command>make world</command>? There is a problem if you have only one system on your disks. If - the <maketarget>installworld</maketarget> fails partway through, + the <buildtarget>installworld</buildtarget> fails partway through, you are left with a broken system that might not even boot any - longer. Or maybe the <maketarget>installworld</maketarget> runs + longer. Or maybe the <buildtarget>installworld</buildtarget> runs smoothly but the new kernel does not boot. Then it is time to reach for the Fixit CD and dig for those backups you have taken half a year ago.</para> @@ -61,7 +56,7 @@ If you think that this task should be automated as well, read on.</para> </sect1> - <sect1 id="why"> + <sect1 xml:id="why"> <title>Why would I (not) want &scratch.ap;?</title> <para>This is a legitimate question. We have @@ -104,8 +99,8 @@ </itemizedlist> <para>The well known way to build and install the world, as - described in <ulink url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html">the - Handbook</ulink>, by default replaces + described in <link xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/makeworld.html">the + Handbook</link>, by default replaces the existing system. Only the kernel and modules are saved. System binaries, headers and a lot of other files are overwritten; obsolete files are still present and can cause surprises. If the @@ -148,8 +143,7 @@ you feel like an update is in order, you simply toggle the partitions you want to wipe and reinstall.</para> - <para>Maybe you have heard of or even tried <ulink - url="http://www.linuxfromscratch.org/">Linux From Scratch</ulink>, + <para>Maybe you have heard of or even tried <link xlink:href="http://www.linuxfromscratch.org/">Linux From Scratch</link>, or LFS for short. LFS also describes how to build and install a system from scratch in empty partitions using a running system. The focus in LFS seems to be to show the role of each system @@ -186,7 +180,7 @@ </itemizedlist> </sect1> - <sect1 id="prerequisites"> + <sect1 xml:id="prerequisites"> <title>Prerequisites</title> <para>For going the &scratch.ap; way, you need to have:</para> @@ -224,7 +218,7 @@ </itemizedlist> </sect1> - <sect1 id="stage1"> + <sect1 xml:id="stage1"> <title>Stage One: System Installation</title> <para>The first version of this article used a single shell script @@ -239,7 +233,7 @@ argument, like</para> <informalexample> - <screen>&prompt.root; <userinput>./stage_1.sh <replaceable>default</replaceable></userinput></screen> + <screen>&prompt.root; <userinput>./stage_1.sh default</userinput></screen> </informalexample> <para>will read its configuration from @@ -292,7 +286,7 @@ call, these binaries will die with <literal>SIGSYS, Bad system call</literal>, because the old kernel does not have that system call. I have seen other issues when I tried - building <filename role="package">lang/perl5.8</filename>.</para> + building <package>lang/perl5.8</package>.</para> </listitem> </itemizedlist> @@ -312,7 +306,7 @@ <listitem> <para>successfully completed <command>make buildkernel - KERNCONF=<replaceable>whatever</replaceable></command></para> + KERNCONF=whatever</command></para> </listitem> </itemizedlist> @@ -376,16 +370,14 @@ Do you wish to delete what is left of /var/tmp/temproot.stage1? [no] <userinput> <para>The answer does not matter since <filename>stage_1.sh</filename> will run &man.cap.mkdb.1; for you in any case.</para> - <para>Here is the author's <ulink - url="stage_1.conf.default"><filename>stage_1.conf.default</filename></ulink>, + <para>Here is the author's <link xlink:href="stage_1.conf.default"><filename>stage_1.conf.default</filename></link>, which you need to modify substantially. The comments give you enough information what to change.</para> -<programlisting><xi:include href="stage_1.conf.default" parse="text"/></programlisting> +<programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="stage_1.conf.default" parse="text"/></programlisting> - <para>Download <ulink - url="stage_1.conf.default"><filename>stage_1.conf.default</filename> - </ulink>.</para> + <para>Download <link xlink:href="stage_1.conf.default"><filename>stage_1.conf.default</filename> + </link>.</para> <para>Running this script installs a system that when booted provides:</para> @@ -414,7 +406,7 @@ Do you wish to delete what is left of /var/tmp/temproot.stage1? [no] <userinput> libraries and programs.</para> </sect1> - <sect1 id="stage2"> + <sect1 xml:id="stage2"> <title>Stage Two: Ports Installation</title> <note> @@ -434,7 +426,7 @@ Do you wish to delete what is left of /var/tmp/temproot.stage1? [no] <userinput> with exactly one argument to denote a config file, e.g.</para> <informalexample> - <screen>&prompt.root; <userinput>./stage_2.sh <replaceable>default</replaceable></userinput></screen> + <screen>&prompt.root; <userinput>./stage_2.sh default</userinput></screen> </informalexample> <para>which will read the list of ports from @@ -454,14 +446,14 @@ Do you wish to delete what is left of /var/tmp/temproot.stage1? [no] <userinput> <para>In fact you can specify arbitrary shell commands, so you are not restricted to simple <command>make</command> invocations:</para> - <programlisting>java jdk16 echo true > files/license.sh; make install BATCH=yes < /dev/null + <programlisting>java jdk16 echo true > files/license.sh; make install BATCH=yes < /dev/null print acroread8 yes accept | make install PAGER=ls x11-fonts gnu-unifont make install && mkfontdir /usr/local/lib/X11/fonts/local news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make install</programlisting> <para>The first two lines are examples how you can handle ports asking you to accept a licence. Note how the line for - <filename role="package">news/inn-stable</filename> is an example + <package>news/inn-stable</package> is an example for a one-shot shell variable assignment to <literal>CONFIGURE_ARGS</literal>. The port <filename>Makefile</filename> will use this as an initial value @@ -485,13 +477,12 @@ news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" <filename>LOGDIR/category+port</filename> is created for each port it actually installs.</para> -<programlisting><xi:include href="stage_2.conf.default" parse="text"/></programlisting> +<programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="stage_2.conf.default" parse="text"/></programlisting> - <para>Download <ulink - url="stage_2.conf.default"><filename>stage_2.conf.default</filename></ulink>.</para> + <para>Download <link xlink:href="stage_2.conf.default"><filename>stage_2.conf.default</filename></link>.</para> </sect1> - <sect1 id="stage3"> + <sect1 xml:id="stage3"> <title>Stage Three</title> <para>You have installed your beloved ports during stage two. Some @@ -507,7 +498,7 @@ news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" what you want to configure simply by running:</para> <informalexample> - <screen>&prompt.root; <userinput>make -f stage_3.mk <replaceable>target</replaceable></userinput></screen> + <screen>&prompt.root; <userinput>make -f stage_3.mk target</userinput></screen> </informalexample> <para>As with <filename>stage_2.sh</filename> make sure you have @@ -516,7 +507,7 @@ news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" somewhere on the new system.</para> </sect1> - <sect1 id="limitations"> + <sect1 xml:id="limitations"> <title>Limitations</title> <para>The automated installation of a port may prove difficult if it @@ -528,8 +519,8 @@ news inn-stable CONFIGURE_ARGS="--enable-uucp-rnews --enable-setgid-inews" make install</command>. For other ports you need to investigate where exactly the interactive command is located and deal with it appropriately. See the examples above for - <filename role="package">print/acroread8</filename> and - <filename role="package">java/jdk16</filename>.</para> + <package>print/acroread8</package> and + <package>java/jdk16</package>.</para> <para>You should also be aware of upgrade issues for config files. In general you do not know when and if the format or contents of a @@ -576,39 +567,33 @@ fi </sect1> - <sect1 id="files"> + <sect1 xml:id="files"> <title>The Files</title> <para>Here are the three files you need beside the config files already shown above.</para> - <para>This is the <ulink - url="stage_1.sh"><filename>stage_1.sh</filename></ulink> + <para>This is the <link xlink:href="stage_1.sh"><filename>stage_1.sh</filename></link> script, which you should not need to modify.</para> -<programlisting><xi:include href="stage_1.sh" parse="text"/></programlisting> +<programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="stage_1.sh" parse="text"/></programlisting> - <para>Download <ulink - url="stage_1.sh"><filename>stage_1.sh</filename></ulink>.</para> + <para>Download <link xlink:href="stage_1.sh"><filename>stage_1.sh</filename></link>.</para> - <para>This is the <ulink - url="stage_2.sh"><filename>stage_2.sh</filename></ulink> + <para>This is the <link xlink:href="stage_2.sh"><filename>stage_2.sh</filename></link> script. You may want to modify the variables at the beginning.</para> -<programlisting><xi:include href="stage_2.sh" parse="text"/></programlisting> +<programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="stage_2.sh" parse="text"/></programlisting> - <para>Download <ulink - url="stage_2.sh"><filename>stage_2.sh</filename></ulink>.</para> + <para>Download <link xlink:href="stage_2.sh"><filename>stage_2.sh</filename></link>.</para> - <para>This is my <ulink - url="stage_3.mk"><filename>stage_3.mk</filename></ulink> to + <para>This is my <link xlink:href="stage_3.mk"><filename>stage_3.mk</filename></link> to give you an idea how to automate all reconfiguration.</para> -<programlisting><xi:include href="stage_3.mk" parse="text"/></programlisting> +<programlisting><xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="stage_3.mk" parse="text"/></programlisting> - <para>Download <ulink - url="stage_3.mk"><filename>stage_3.mk</filename></ulink>.</para> + <para>Download <link xlink:href="stage_3.mk"><filename>stage_3.mk</filename></link>.</para> </sect1> </article> |