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-materials-introduction">
|
---|
9 | <?dbhtml filename="introduction.html"?>
|
---|
10 |
|
---|
11 | <title>Introduction</title>
|
---|
12 |
|
---|
13 | <para>This chapter includes a list of packages that need to be downloaded in
|
---|
14 | order to build a basic Linux system. The listed version numbers correspond to
|
---|
15 | versions of the software that are known to work, and this book is based on
|
---|
16 | their use. We highly recommend against using different versions because the build
|
---|
17 | commands for one version may not work with a different version, unless the
|
---|
18 | different version is specified by a LFS errata or security advisory.
|
---|
19 | The newest package versions may also have problems that require
|
---|
20 | work-arounds. These work-arounds will be developed and stabilized in the
|
---|
21 | development version of the book.</para>
|
---|
22 |
|
---|
23 | <para>For some packages, the release tarball and the (Git or SVN)
|
---|
24 | repository snapshot tarball for this release may be published with
|
---|
25 | similar file name. A release tarball contains generated files (for
|
---|
26 | example, <command>configure</command> script generated by
|
---|
27 | <command>autoconf</command>), in addition to the contents of the
|
---|
28 | corresponding repository snapshot. The book uses release tarballs
|
---|
29 | whenever possible. Using a repository snapshot instead of a release
|
---|
30 | tarball specified by the book will cause problems.</para>
|
---|
31 |
|
---|
32 | <para>Download locations may not always be accessible. If a download
|
---|
33 | location has changed since this book was published, Google (<ulink
|
---|
34 | url="https://www.google.com/"/>) provides a useful search engine for
|
---|
35 | most packages. If this search is unsuccessful, try one of the
|
---|
36 | alternative means of downloading at <ulink
|
---|
37 | url="&lfs-root;lfs/mirrors.html#files"/>. </para>
|
---|
38 |
|
---|
39 | <para>Downloaded packages and patches will need to be stored somewhere
|
---|
40 | that is conveniently available throughout the entire build. A working
|
---|
41 | directory is also required to unpack the sources and build them.
|
---|
42 | <filename class="directory">$LFS/sources</filename> can be used both
|
---|
43 | as the place to store the tarballs and patches and as a working
|
---|
44 | directory. By using this directory, the required elements will be
|
---|
45 | located on the LFS partition and will be available during all stages
|
---|
46 | of the building process.</para>
|
---|
47 |
|
---|
48 | <para>To create this directory, execute the following command, as user
|
---|
49 | <systemitem class="username">root</systemitem>, before starting the download
|
---|
50 | session:</para>
|
---|
51 |
|
---|
52 | <screen role="nodump"><userinput>mkdir -v $LFS/sources</userinput></screen>
|
---|
53 |
|
---|
54 | <para>Make this directory writable and sticky. <quote>Sticky</quote>
|
---|
55 | means that even if multiple users have write permission on a
|
---|
56 | directory, only the owner of a file can delete the file within a
|
---|
57 | sticky directory. The following command will enable the write and
|
---|
58 | sticky modes:</para>
|
---|
59 |
|
---|
60 | <screen role="nodump"><userinput>chmod -v a+wt $LFS/sources</userinput></screen>
|
---|
61 |
|
---|
62 | <para>There are several ways to obtain all the necessary packages and patches
|
---|
63 | to build LFS:</para>
|
---|
64 |
|
---|
65 | <itemizedlist>
|
---|
66 | <listitem>
|
---|
67 | <para>The files can be downloaded individually as described in the
|
---|
68 | next two sections.</para>
|
---|
69 | </listitem>
|
---|
70 | <listitem>
|
---|
71 | <para>For stable versions of the book, a tarball of all the needed files
|
---|
72 | can be downloaded from one of the LFS files mirrors listed at
|
---|
73 | <ulink url="https://www.linuxfromscratch.org/mirrors.html#files"/>.</para>
|
---|
74 | </listitem>
|
---|
75 | <listitem>
|
---|
76 | <para>The files can be downloaded using <command>wget</command> and
|
---|
77 | a wget-list as described below.</para>
|
---|
78 | </listitem>
|
---|
79 | </itemizedlist>
|
---|
80 |
|
---|
81 | <para>To download all of the packages and patches by using
|
---|
82 | <ulink url="../&wget-list;">&wget-list;</ulink>
|
---|
83 | as an input to the <command>wget</command> command, use:</para>
|
---|
84 |
|
---|
85 | <screen role="nodump"><userinput>wget --input-file=&wget-list; --continue --directory-prefix=$LFS/sources</userinput></screen>
|
---|
86 | <!--
|
---|
87 | <note><para>
|
---|
88 | The <filename>wget-list</filename> file mentioned above retrieves all
|
---|
89 | packages for both the sysV and systemd versions of LFS. There are a total
|
---|
90 | of five additional small packages not needed for the current book. The
|
---|
91 | <filename>md5sums</filename> file mentioned below is specific to the
|
---|
92 | current book.
|
---|
93 | </para></note>
|
---|
94 | -->
|
---|
95 | <para>Additionally, starting with LFS-7.0, there is a separate file,
|
---|
96 | <ulink url="../md5sums">md5sums</ulink>, which can be used to verify that all
|
---|
97 | the correct packages are available before proceeding. Place that file in
|
---|
98 | <filename class="directory">$LFS/sources</filename> and run:</para>
|
---|
99 |
|
---|
100 | <screen role="nodump"><userinput>pushd $LFS/sources
|
---|
101 | md5sum -c md5sums
|
---|
102 | popd</userinput></screen>
|
---|
103 |
|
---|
104 | <para>This check can be used after retrieving the needed files with any of the
|
---|
105 | methods listed above.</para>
|
---|
106 |
|
---|
107 | </sect1>
|
---|