[7152faa] | 1 | <?xml version="1.0" encoding="UTF-8"?>
|
---|
[6dfcfecc] | 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-tools-creatingminlayout">
|
---|
| 9 | <?dbhtml filename="creatingminlayout.html"?>
|
---|
| 10 |
|
---|
[da6e70f] | 11 | <title>Creating a Limited Directory Layout in the LFS Filesystem</title>
|
---|
[6dfcfecc] | 12 |
|
---|
[97f4747] | 13 | <para>In this section, we begin populating the LFS filesystem with the
|
---|
| 14 | pieces that will constitute the final Linux system. The first step is to
|
---|
| 15 | create a limited directory hierarchy, so that the programs compiled in <xref
|
---|
[ceebda5] | 16 | linkend="chapter-temporary-tools"/> (as well as glibc and libstdc++ in <xref
|
---|
[2ed0e93] | 17 | linkend="chapter-cross-tools"/>) can be installed in their final
|
---|
| 18 | location. We do this so those temporary programs will be overwritten when
|
---|
| 19 | the final versions are built in <xref linkend="chapter-building-system"/>.</para>
|
---|
[6dfcfecc] | 20 |
|
---|
[2ed0e93] | 21 | <para>Create the required directory layout by issuing the following commands as
|
---|
[6dfcfecc] | 22 | <systemitem class="username">root</systemitem>:</para>
|
---|
| 23 |
|
---|
[d7a9421] | 24 | <screen><userinput>mkdir -pv $LFS/{etc,var} $LFS/usr/{bin,lib,sbin}
|
---|
| 25 |
|
---|
| 26 | for i in bin lib sbin; do
|
---|
| 27 | ln -sv usr/$i $LFS/$i
|
---|
| 28 | done
|
---|
| 29 |
|
---|
[6dfcfecc] | 30 | case $(uname -m) in
|
---|
| 31 | x86_64) mkdir -pv $LFS/lib64 ;;
|
---|
| 32 | esac</userinput></screen>
|
---|
[0ebda11] | 33 | <screen arch="ml_32"><userinput>mkdir -pv $LFS/usr/lib32
|
---|
| 34 | ln -sv usr/lib32 $LFS/lib32</userinput></screen>
|
---|
| 35 | <screen arch="ml_x32"><userinput>mkdir -pv $LFS/usr/libx32
|
---|
| 36 | ln -sv usr/libx32 $LFS/libx32</userinput></screen>
|
---|
[df462a9] | 37 | <screen arch="ml_all"><userinput>mkdir -pv $LFS/usr/lib{,x}32
|
---|
[0ebda11] | 38 | ln -sv usr/lib32 $LFS/lib32
|
---|
| 39 | ln -sv usr/libx32 $LFS/libx32</userinput></screen>
|
---|
[efcb393] | 40 |
|
---|
[6dfcfecc] | 41 | <para>Programs in <xref linkend="chapter-temporary-tools"/> will be compiled
|
---|
[2ed0e93] | 42 | with a cross-compiler (more details can be found in section <xref
|
---|
| 43 | linkend="ch-tools-toolchaintechnotes"/>). This cross-compiler will be installed
|
---|
| 44 | in a special directory, to separate it from the other programs. Still acting as
|
---|
| 45 | &root;, create that directory with this command:</para>
|
---|
[6dfcfecc] | 46 |
|
---|
| 47 | <screen><userinput>mkdir -pv $LFS/tools</userinput></screen>
|
---|
| 48 |
|
---|
[295e337] | 49 | <note>
|
---|
| 50 | <para>
|
---|
[da6e70f] | 51 | The LFS editors have deliberately decided not to use a
|
---|
[295e337] | 52 | <filename class="directory">/usr/lib64</filename> directory. Several
|
---|
[da6e70f] | 53 | steps are taken to be sure the toolchain will not use it. If for any
|
---|
[295e337] | 54 | reason this directory appears (either because you made an error in
|
---|
[da6e70f] | 55 | following the instructions, or because you installed a binary package that
|
---|
| 56 | created it after finishing LFS), it may break your system.
|
---|
| 57 | You should always be sure this directory does not exist.
|
---|
[295e337] | 58 | </para>
|
---|
| 59 | </note>
|
---|
| 60 |
|
---|
[6dfcfecc] | 61 | </sect1>
|
---|