mirror of
https://git.linuxfromscratch.org/lfs.git
synced 2025-01-18 13:07:50 +00:00
118 lines
5.3 KiB
XML
118 lines
5.3 KiB
XML
<?xml version="1.0" encoding="UTF-8"?>
|
|
<!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="ch-materials-introduction">
|
|
<?dbhtml filename="introduction.html"?>
|
|
|
|
<title>Introduction</title>
|
|
|
|
<para>This chapter includes a list of packages that need to be downloaded in
|
|
order to build a basic Linux system. The listed version numbers correspond to
|
|
versions of the software that are known to work, and this book is based on
|
|
their use. We highly recommend against using different versions, because the build
|
|
commands for one version may not work with a different version, unless the
|
|
different version is specified by an LFS erratum or security advisory.
|
|
The newest package versions may also have problems that require
|
|
work-arounds. These work-arounds will be developed and stabilized in the
|
|
development version of the book.</para>
|
|
|
|
<para>For some packages, the release tarball and the (Git or SVN)
|
|
repository snapshot tarball for that release may be published with
|
|
similar file names. A release tarball contains generated files (for
|
|
example, a <command>configure</command> script generated by
|
|
<command>autoconf</command>), in addition to the contents of the
|
|
corresponding repository snapshot. The book uses release tarballs
|
|
whenever possible. Using a repository snapshot instead of a release
|
|
tarball specified by the book will cause problems.</para>
|
|
|
|
<para>Download locations may not always be accessible. If a download
|
|
location has changed since this book was published, Google (<ulink
|
|
url="https://www.google.com/"/>) provides a useful search engine for
|
|
most packages. If this search is unsuccessful, try one of the
|
|
alternative means of downloading at <ulink
|
|
url="&lfs-root;lfs/mirrors.html#files"/>. </para>
|
|
|
|
<para>Downloaded packages and patches will need to be stored somewhere
|
|
that is conveniently available throughout the entire build. A working
|
|
directory is also required to unpack the sources and build them.
|
|
<filename class="directory">$LFS/sources</filename> can be used both
|
|
as the place to store the tarballs and patches and as a working
|
|
directory. By using this directory, the required elements will be
|
|
located on the LFS partition and will be available during all stages
|
|
of the building process.</para>
|
|
|
|
<para>To create this directory, execute the following command, as user
|
|
<systemitem class="username">root</systemitem>, before starting the download
|
|
session:</para>
|
|
|
|
<screen role="nodump"><userinput>mkdir -v $LFS/sources</userinput></screen>
|
|
|
|
<para>Make this directory writable and sticky. <quote>Sticky</quote>
|
|
means that even if multiple users have write permission on a
|
|
directory, only the owner of a file can delete the file within a
|
|
sticky directory. The following command will enable the write and
|
|
sticky modes:</para>
|
|
|
|
<screen role="nodump"><userinput>chmod -v a+wt $LFS/sources</userinput></screen>
|
|
|
|
<para>There are several ways to obtain all the necessary packages and patches
|
|
to build LFS:</para>
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>The files can be downloaded individually as described in the
|
|
next two sections.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>For stable versions of the book, a tarball of all the needed files
|
|
can be downloaded from one of the mirror sites listed at
|
|
<ulink url="https://www.linuxfromscratch.org/mirrors.html#files"/>.</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>The files can be downloaded using <command>wget</command> and
|
|
a wget-list as described below.</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
|
|
<para>To download all of the packages and patches by using
|
|
<ulink url="../&wget-list;">&wget-list;</ulink>
|
|
as an input to the <command>wget</command> command, use:</para>
|
|
|
|
<screen role="nodump"><userinput>wget --input-file=&wget-list; --continue --directory-prefix=$LFS/sources</userinput></screen>
|
|
<!--
|
|
<note><para>
|
|
The <filename>wget-list</filename> file mentioned above retrieves all
|
|
packages for both the sysV and systemd versions of LFS. There are a total
|
|
of five additional small packages not needed for the current book. The
|
|
<filename>md5sums</filename> file mentioned below is specific to the
|
|
current book.
|
|
</para></note>
|
|
-->
|
|
<para>Additionally, starting with LFS-7.0, there is a separate file,
|
|
<ulink url="../md5sums">md5sums</ulink>, which can be used to verify that all
|
|
the correct packages are available before proceeding. Place that file in
|
|
<filename class="directory">$LFS/sources</filename> and run:</para>
|
|
|
|
<screen role="nodump"><userinput>pushd $LFS/sources
|
|
md5sum -c md5sums
|
|
popd</userinput></screen>
|
|
|
|
<para>This check can be used after retrieving the needed files with any of the
|
|
methods listed above.</para>
|
|
|
|
<para>If the packages and patches are downloaded as a non-&root; user,
|
|
these files will be owned by the user. The file system records the
|
|
owner by its UID, and the UID of a normal user in the host distro is
|
|
not assigned in LFS. So the files will be left owned by an unnamed UID
|
|
in the final LFS system. If you won't assign the same UID for your user
|
|
in the LFS system, change the owners of these files to &root; now to
|
|
avoid this issue:</para>
|
|
|
|
<screen role="nodump"><userinput>chown root:root $LFS/sources/*</userinput></screen>
|
|
|
|
</sect1>
|