coreutils: Remove outdated known failures
[lfs.git] / chapter03 / introduction.xml
blob645686311733a83f84a7b94e50f5805e8d6347bb
1 <?xml version="1.0" encoding="UTF-8"?>
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 ]>
8 <sect1 id="ch-materials-introduction">
9   <?dbhtml filename="introduction.html"?>
11   <title>Introduction</title>
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 an LFS erratum 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>
23   <para>For some packages, the release tarball and the (Git or SVN)
24   repository snapshot tarball for that release may be published with
25   similar or even identical file names.  But the release tarball may contain
26   some files which are essential despite not stored in the repository
27   (for example, a <command>configure</command> script generated by
28   <command>autoconf</command>), in addition to the contents of the
29   corresponding repository snapshot.  The book uses release tarballs
30   whenever possible. Using a repository snapshot instead of a release
31   tarball specified by the book will cause problems.</para>
33   <para>Download locations may not always be accessible. If a download
34   location has changed since this book was published, Google (<ulink
35   url="https://www.google.com/"/>) provides a useful search engine for
36   most packages. If this search is unsuccessful, try one of the
37   alternative means of downloading at <ulink
38   url="&lfs-root;lfs/mirrors.html#files"/>. </para>
40   <para>Downloaded packages and patches will need to be stored somewhere
41   that is conveniently available throughout the entire build. A working
42   directory is also required to unpack the sources and build them.
43   <filename class="directory">$LFS/sources</filename> can be used both
44   as the place to store the tarballs and patches and as a working
45   directory. By using this directory, the required elements will be
46   located on the LFS partition and will be available during all stages
47   of the building process.</para>
49   <para>To create this directory, execute the following command, as user
50   <systemitem class="username">root</systemitem>, before starting the download
51   session:</para>
53 <screen role="nodump"><userinput>mkdir -v $LFS/sources</userinput></screen>
55   <para>Make this directory writable and sticky. <quote>Sticky</quote>
56   means that even if multiple users have write permission on a
57   directory, only the owner of a file can delete the file within a
58   sticky directory. The following command will enable the write and
59   sticky modes:</para>
61 <screen role="nodump"><userinput>chmod -v a+wt $LFS/sources</userinput></screen>
63   <para>There are several ways to obtain all the necessary packages and patches
64   to build LFS:</para>
66   <itemizedlist>
67     <listitem>
68       <para>The files can be downloaded individually as described in the
69       next two sections.</para>
70     </listitem>
71     <listitem>
72       <para>For stable versions of the book, a tarball of all the needed files
73       can be downloaded from one of the mirror sites listed at
74       <ulink url="https://www.linuxfromscratch.org/mirrors.html#files"/>.</para>
75     </listitem>
76     <listitem>
77       <para>The files can be downloaded using <command>wget</command> and
78       a wget-list as described below.</para>
79     </listitem>
80   </itemizedlist>
82   <para>To download all of the packages and patches by using
83   <ulink url="../&wget-list;">&wget-list;</ulink>
84   as an input to the <command>wget</command> command, use:</para>
86 <screen role="nodump"><userinput>wget --input-file=&wget-list; --continue --directory-prefix=$LFS/sources</userinput></screen>
87 <!--
88   <note><para>
89     The <filename>wget-list</filename> file mentioned above retrieves all
90     packages for both the sysV and systemd versions of LFS.  There are a total
91     of five additional small packages not needed for the current book.  The
92     <filename>md5sums</filename> file mentioned below is specific to the
93     current book.
94   </para></note>
95 -->
96   <para>Additionally, starting with LFS-7.0, there is a separate file,
97   <ulink url="../md5sums">md5sums</ulink>, which can be used to verify that all
98   the correct packages are available before proceeding.  Place that file in
99   <filename class="directory">$LFS/sources</filename> and run:</para>
101 <screen role="nodump"><userinput>pushd $LFS/sources
102   md5sum -c md5sums
103 popd</userinput></screen>
105   <para>This check can be used after retrieving the needed files with any of the
106   methods listed above.</para>
108   <para>If the packages and patches are downloaded as a non-&root; user,
109   these files will be owned by the user.  The file system records the
110   owner by its UID, and the UID of a normal user in the host distro is
111   not assigned in LFS.  So the files will be left owned by an unnamed UID
112   in the final LFS system.  If you won't assign the same UID for your user
113   in the LFS system, change the owners of these files to &root; now to
114   avoid this issue:</para>
116 <screen role="nodump"><userinput>chown root:root $LFS/sources/*</userinput></screen>
118 </sect1>