diff options
author | Bruce Dubbs <bdubbs@linuxfromscratch.org> | 2016-05-16 22:12:01 +0000 |
---|---|---|
committer | Bruce Dubbs <bdubbs@linuxfromscratch.org> | 2016-05-16 22:12:01 +0000 |
commit | 72fb9bf99704f015341645d1f9c8ae7c74a128d5 (patch) | |
tree | c7d584f52d6fcc6df69a2598d02192781d237069 /chapter02 | |
parent | 50079617a9440a0a421b88f0758d48ac039e57f5 (diff) |
Moved Host System Requirements to Chapter 2
and made minor editorial changes.
git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@11061 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
Diffstat (limited to 'chapter02')
-rw-r--r-- | chapter02/chapter02.xml | 3 | ||||
-rw-r--r-- | chapter02/hostreqs.xml | 243 | ||||
-rw-r--r-- | chapter02/introduction.xml | 7 |
3 files changed, 249 insertions, 4 deletions
diff --git a/chapter02/chapter02.xml b/chapter02/chapter02.xml index aa62827bb..35d265bb7 100644 --- a/chapter02/chapter02.xml +++ b/chapter02/chapter02.xml @@ -9,9 +9,10 @@ <?dbhtml dir="chapter02"?> <?dbhtml filename="chapter02.html"?> - <title>Preparing a New Partition</title> + <title>Preparing the Host System</title> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="introduction.xml"/> + <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="hostreqs.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="creatingpartition.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="creatingfilesystem.xml"/> <xi:include xmlns:xi="http://www.w3.org/2001/XInclude" href="aboutlfs.xml"/> diff --git a/chapter02/hostreqs.xml b/chapter02/hostreqs.xml new file mode 100644 index 000000000..5e92f8a8b --- /dev/null +++ b/chapter02/hostreqs.xml @@ -0,0 +1,243 @@ +<?xml version="1.0" encoding="ISO-8859-1"?> +<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN" + "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [ + <!ENTITY % general-entities SYSTEM "../general.ent"> + %general-entities; +]> + +<sect1 id="pre-hostreqs" xreflabel="Host System Requirements"> + <?dbhtml filename="hostreqs.html"?> + + <title>Host System Requirements</title> + + <para>Your host system should have the following software with the + minimum versions indicated. This should not be an issue for most + modern Linux distributions. Also note that many distributions will + place software headers into separate packages, often in the form of + <quote><package-name>-devel</quote> or + <quote><package-name>-dev</quote>. Be sure to install those if + your distribution provides them.</para> + + <para>Earlier versions of the listed software packages may work, but have + not been tested.</para> + + <itemizedlist spacing="compact"> + + <listitem> + <para><emphasis role="strong">Bash-3.2</emphasis> (/bin/sh + should be a symbolic or hard link to bash)</para> + </listitem> + + <listitem> + <para><emphasis role="strong">Binutils-2.17</emphasis> (Versions + greater than &binutils-version; are not recommended as they have + not been tested)</para> + </listitem> + + <listitem> + <para><emphasis role="strong">Bison-2.3</emphasis> (/usr/bin/yacc + should be a link to bison or small script that executes bison)</para> + </listitem> + + <listitem> + <para><emphasis role="strong">Bzip2-1.0.4</emphasis></para> + </listitem> + + <listitem> + <para><emphasis role="strong">Coreutils-6.9</emphasis></para> + </listitem> + + <listitem> + <para><emphasis role="strong">Diffutils-2.8.1</emphasis></para> + </listitem> + + <listitem> + <para><emphasis role="strong">Findutils-4.2.31</emphasis></para> + </listitem> + + <listitem> + <para><emphasis role="strong">Gawk-4.0.1</emphasis> (/usr/bin/awk + should be a link to gawk)</para> + </listitem> + + <listitem> + <para><emphasis role="strong">GCC-4.7</emphasis> including the C++ + compiler, <command>g++</command> (Versions greater than &gcc-version; are + not recommended as they have not been tested)</para> + + <note><para>On some distributions, there have been reports that some + libraries used by gcc can be in an inconsistent state and that this + interferes with building some LFS packages. To check this, look in + /usr/lib and possibly /usr/lib64 for libgmp.la, libmpfr.la, and + libmpc.la. Either all three should be present or absent, but not only + one or two. If the problem exists on your system, either rename or + delete the .la files or install the appropriate missing + package.</para></note> + + </listitem> + + <listitem> + <para><emphasis role="strong">Glibc-2.11</emphasis> (Versions + greater than &glibc-version; are not recommended as they have + not been tested)</para> + </listitem> + + <listitem> + <para><emphasis role="strong">Grep-2.5.1a</emphasis></para> + </listitem> + + <listitem> + <para><emphasis role="strong">Gzip-1.3.12</emphasis></para> + </listitem> + + <listitem> + <para><emphasis role="strong">Linux Kernel-&min-kernel;</emphasis></para> + + <para>The reason for the kernel version requirement is that we specify + that version when building <application>glibc</application> in Chapter 6 + at the recommendation of the developers. It is also required by + udev.</para> + + <para>If the host kernel is earlier than &min-kernel; you will need to replace + the kernel with a more up to date version. There are two ways + you can go about this. First, see if your Linux vendor provides a &min-kernel; + or later kernel package. If so, you may wish to install it. If your + vendor doesn't offer an acceptable kernel package, or you would prefer not to + install it, you can compile a kernel yourself. Instructions for + compiling the kernel and configuring the boot loader (assuming the host + uses GRUB) are located in <xref linkend="chapter-bootable"/>.</para> + + </listitem> + + <listitem> + <para><emphasis role="strong">M4-1.4.10</emphasis></para> + </listitem> + + <listitem> + <para><emphasis role="strong">Make-3.81</emphasis></para> + </listitem> + + <listitem> + <para><emphasis role="strong">Patch-2.5.4</emphasis></para> + </listitem> + + <listitem> + <para><emphasis role="strong">Perl-5.8.8</emphasis></para> + </listitem> + + <listitem> + <para><emphasis role="strong">Sed-4.1.5</emphasis></para> + </listitem> + + <listitem> + <para><emphasis role="strong">Tar-1.22</emphasis></para> + </listitem> + + <listitem> + <para><emphasis role="strong">Texinfo-4.7</emphasis></para> + </listitem> + + <listitem> + <para><emphasis role="strong">Xz-5.0.0</emphasis></para> + </listitem> + + </itemizedlist> + + <important> + <para>Note that the symlinks mentioned above are required to build an LFS + system using the instructions contained within this book. Symlinks that + point to other software (such as dash, mawk, etc.) may work, but are not + tested or supported by the LFS development team, and may require either + deviation from the instructions or additional patches to some + packages.</para> + </important> + + <!-- Use an empty sect2 element to prevent a pdf warning. --> + <bridgehead renderas="sect2" + id="version-check" + xreflabel="Host System Requirements"> + </bridgehead> + <!--<title> </title>--> + + <para >To see whether your host system has all the appropriate versions, and + the ability to compile programs, run the following:</para> + +<!-- ANY additional lines in the script cause a pdf rendering problem--> +<screen role="nodump"><userinput>cat > version-check.sh << "EOF" +<literal>#!/bin/bash +# Simple script to list version numbers of critical development tools +export LC_ALL=C +bash --version | head -n1 | cut -d" " -f2-4 +MYSH=$(readlink -f /bin/sh) +echo "/bin/sh -> $MYSH" +echo $MYSH | grep -q bash || echo "ERROR: /bin/sh does not point to bash" +unset MYSH + +echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3- +bison --version | head -n1 + +if [ -h /usr/bin/yacc ]; then + echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`"; +elif [ -x /usr/bin/yacc ]; then + echo yacc is `/usr/bin/yacc --version | head -n1` +else + echo "yacc not found" +fi + +bzip2 --version 2>&1 < /dev/null | head -n1 | cut -d" " -f1,6- +echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2 +diff --version | head -n1 +find --version | head -n1 +gawk --version | head -n1 + +if [ -h /usr/bin/awk ]; then + echo "/usr/bin/awk -> `readlink -f /usr/bin/awk`"; +elif [ -x /usr/bin/awk ]; then + echo awk is `/usr/bin/awk --version | head -n1` +else + echo "awk not found" +fi + +gcc --version | head -n1 +g++ --version | head -n1 +ldd --version | head -n1 | cut -d" " -f2- # glibc version +grep --version | head -n1 +gzip --version | head -n1 +cat /proc/version +m4 --version | head -n1 +make --version | head -n1 +patch --version | head -n1 +echo Perl `perl -V:version` +sed --version | head -n1 +tar --version | head -n1 +makeinfo --version | head -n1 +xz --version | head -n1 +<?hard-pagebreak?> +echo 'int main(){}' > dummy.c && g++ -o dummy dummy.c +if [ -x dummy ] + then echo "g++ compilation OK"; + else echo "g++ compilation failed"; fi +rm -f dummy.c dummy</literal> +EOF + +bash version-check.sh</userinput></screen> + + <para>Also check for some library consistency:</para> + +<screen role="nodump"><userinput>cat > library-check.sh << "EOF" +<literal>#!/bin/bash +for lib in lib{gmp,mpfr,mpc}.la; do + echo $lib: $(if find /usr/lib* -name $lib| + grep -q $lib;then :;else echo not;fi) found +done +unset lib</literal> +EOF + +bash library-check.sh</userinput></screen> + +<para>The files identified by this script should be all present +or all absent, but not only one or two present.</para> + + +<!--</sect2>--> +</sect1> diff --git a/chapter02/introduction.xml b/chapter02/introduction.xml index 11e4e1883..007bdad8b 100644 --- a/chapter02/introduction.xml +++ b/chapter02/introduction.xml @@ -10,8 +10,9 @@ <title>Introduction</title> - <para>In this chapter, the partition which will host the LFS system is - prepared. We will create the partition itself, create a file system - on it, and mount it.</para> + <para>In this chapter, the host tools needed for building LFS + are checked and, if necessary, installed. Then a partition which will + host the LFS system is prepared. We will create the partition + itself, create a file system on it, and mount it.</para> </sect1> |