source: chapter02/hostreqs.xml@ 0678bd4

xry111/clfs-ng
Last change on this file since 0678bd4 was 0678bd4, checked in by Xi Ruoyao <xry111@…>, 19 months ago

Merge remote-tracking branch 'origin/trunk' into xry111/clfs-ng

  • Property mode set to 100644
File size: 6.8 KB
Line 
1<?xml version="1.0" encoding="ISO-8859-1"?>
2<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd" [
4 <!ENTITY % general-entities SYSTEM "../general.ent">
5 %general-entities;
6]>
7
8<sect1 id="ch-partitioning-hostreqs" xreflabel="Host System Requirements">
9 <?dbhtml filename="hostreqs.html"?>
10
11 <title>Host System Requirements</title>
12
13 <sect2>
14 <title>Hardware</title>
15
16 <para>The LFS editors recommend that the system CPU have at least
17 four cores and that the system have at least 8 GB of memory.
18 Older systems that do not meet these requirements will still work,
19 but the time to build packages will be significantly longer
20 than documented.
21 </para>
22
23 </sect2>
24
25 <sect2>
26 <title>Software</title>
27
28 <para>Your host system should have the following software with the
29 minimum versions indicated. This should not be an issue for most
30 modern Linux distributions. Also note that many distributions will
31 place software headers into separate packages, often in the form of
32 <quote>&lt;package-name&gt;-devel</quote> or
33 <quote>&lt;package-name&gt;-dev</quote>. Be sure to install those if
34 your distribution provides them.</para>
35
36 <para>Earlier versions of the listed software packages may work, but have
37 not been tested.</para>
38
39 <itemizedlist spacing="compact">
40
41 <listitem>
42 <para><emphasis role="strong">Bash-3.2</emphasis> (/bin/sh
43 should be a symbolic or hard link to bash)</para>
44 </listitem>
45
46 <listitem>
47 <para><emphasis role="strong">Binutils-2.13.1</emphasis> (Versions
48 greater than &binutils-version; are not recommended as they have
49 not been tested)</para>
50 </listitem>
51
52 <listitem>
53 <!-- needed to cross build the kernel in chapter 6 -->
54 <para><emphasis role="strong">Bc-1.07.0</emphasis></para>
55 </listitem>
56
57 <listitem>
58 <para><emphasis role="strong">Bison-2.7</emphasis> (/usr/bin/yacc
59 should be a link to bison or a small script that executes bison)</para>
60 </listitem>
61
62 <listitem>
63 <para><emphasis role="strong">Coreutils-6.9</emphasis></para>
64 </listitem>
65
66 <listitem>
67 <para><emphasis role="strong">Diffutils-2.8.1</emphasis></para>
68 </listitem>
69
70 <listitem>
71 <para><emphasis role="strong">Findutils-4.2.31</emphasis></para>
72 </listitem>
73
74 <listitem>
75 <para><emphasis role="strong">Gawk-4.0.1</emphasis> (/usr/bin/awk
76 should be a link to gawk)</para>
77 </listitem>
78
79 <listitem>
80 <para><emphasis role="strong">GCC-5.1</emphasis> including the C++
81 compiler, <command>g++</command> (Versions greater than &gcc-version; are
82 not recommended as they have not been tested). C and C++ standard
83 libraries (with headers) must also be present so the C++ compiler can
84 build hosted programs</para>
85 </listitem>
86
87 <listitem>
88 <para><emphasis role="strong">Grep-2.5.1a</emphasis></para>
89 </listitem>
90
91 <listitem>
92 <para><emphasis role="strong">Gzip-1.3.12</emphasis></para>
93 </listitem>
94
95 <listitem>
96 <para><emphasis role="strong">M4-1.4.10</emphasis></para>
97 </listitem>
98
99 <listitem>
100 <para><emphasis role="strong">Make-4.0</emphasis></para>
101 </listitem>
102
103 <listitem>
104 <para><emphasis role="strong">Patch-2.5.4</emphasis></para>
105 </listitem>
106
107 <listitem>
108 <para><emphasis role="strong">Perl-5.8.8</emphasis></para>
109 </listitem>
110
111 <listitem>
112 <para><emphasis role="strong">Python-3.4</emphasis></para>
113 </listitem>
114
115 <listitem>
116 <para><emphasis role="strong">Sed-4.1.5</emphasis></para>
117 </listitem>
118
119 <listitem>
120 <para><emphasis role="strong">Tar-1.22</emphasis></para>
121 </listitem>
122
123 <listitem>
124 <para><emphasis role="strong">Texinfo-4.7</emphasis></para>
125 </listitem>
126
127 <listitem>
128 <para><emphasis role="strong">Xz-5.0.0</emphasis></para>
129 </listitem>
130
131 </itemizedlist>
132
133 <important>
134 <para>Note that the symlinks mentioned above are required to build an LFS
135 system using the instructions contained within this book. Symlinks that
136 point to other software (such as dash, mawk, etc.) may work, but are not
137 tested or supported by the LFS development team, and may require either
138 deviation from the instructions or additional patches to some
139 packages.</para>
140 </important>
141
142 <!-- Use an empty sect2 element to prevent a pdf warning. -->
143 <bridgehead renderas="sect2"
144 id="version-check"
145 xreflabel="Host System Requirements">
146 </bridgehead>
147 <!--<title> </title>-->
148
149 <para >To see whether your host system has all the appropriate versions, and
150 the ability to compile programs, run the following commands:</para>
151
152<screen role="nodump"><userinput>cat &gt; version-check.sh &lt;&lt; "EOF"
153<literal>#!/bin/bash
154# Simple script to list version numbers of critical development tools
155export LC_ALL=C
156bash --version | head -n1 | cut -d" " -f2-4
157MYSH=$(readlink -f /bin/sh)
158echo "/bin/sh -&gt; $MYSH"
159echo $MYSH | grep -q bash || echo "ERROR: /bin/sh does not point to bash"
160unset MYSH
161
162bc --version | head -n1
163echo -n "Binutils: "; ld --version | head -n1 | cut -d" " -f3-
164bison --version | head -n1
165
166if [ -h /usr/bin/yacc ]; then
167 echo "/usr/bin/yacc -> `readlink -f /usr/bin/yacc`";
168elif [ -x /usr/bin/yacc ]; then
169 echo yacc is `/usr/bin/yacc --version | head -n1`
170else
171 echo "yacc not found"
172fi
173
174echo -n "Coreutils: "; chown --version | head -n1 | cut -d")" -f2
175diff --version | head -n1
176find --version | head -n1
177gawk --version | head -n1
178
179if [ -h /usr/bin/awk ]; then
180 echo "/usr/bin/awk -&gt; `readlink -f /usr/bin/awk`";
181elif [ -x /usr/bin/awk ]; then
182 echo awk is `/usr/bin/awk --version | head -n1`
183else
184 echo "awk not found"
185fi
186
187gcc --version | head -n1
188g++ --version | head -n1
189grep --version | head -n1
190gzip --version | head -n1
191cat /proc/version
192m4 --version | head -n1
193make --version | head -n1
194patch --version | head -n1
195echo Perl `perl -V:version`
196python3 --version
197sed --version | head -n1
198tar --version | head -n1
199makeinfo --version | head -n1 # texinfo version
200xz --version | head -n1
201
202echo 'int main(){}' &gt; dummy.c &amp;&amp; g++ -o dummy dummy.c
203if [ -x dummy ]
204 then echo "g++ compilation OK";
205 else echo "g++ compilation failed"; fi
206rm -f dummy.c dummy</literal>
207EOF
208
209bash version-check.sh</userinput></screen>
210<!--
211 <para>Also check for some library consistency:</para>
212
213<screen role="nodump"><userinput>cat &gt; library-check.sh &lt;&lt; "EOF"
214<literal>#!/bin/bash
215for lib in lib{gmp,mpfr,mpc}.la; do
216 echo $lib: $(if find /usr/lib* -name $lib|
217 grep -q $lib;then :;else echo not;fi) found
218done
219unset lib</literal>
220EOF
221
222bash library-check.sh</userinput></screen>
223
224<para>The files identified by this script should be all present
225or all absent, but not only one or two present.</para>
226-->
227 </sect2>
228</sect1>
Note: See TracBrowser for help on using the repository browser.