aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06/chroot.xml
blob: dd220020a21adae7fe1bc77a09c201abf617c0f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
<sect1 id="ch06-chroot">
<title>Entering the chroot'ed environment</title>
<?dbhtml filename="chroot.html" dir="chapter06"?>

<para>It is time to enter the chroot'ed environment in order to begin installing
the packages we need. Before you can chroot, however, you need to become
<emphasis>root</emphasis>, since only <emphasis>root</emphasis>
can execute the <userinput>chroot</userinput> command.</para>

<para>Become <emphasis>root</emphasis> and run the following command
to enter the chroot'ed environment:</para>

<para><screen><userinput>chroot $LFS /static/bin/env -i \
&nbsp;&nbsp;&nbsp;&nbsp;HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
&nbsp;&nbsp;&nbsp;&nbsp;PATH=/bin:/usr/bin:/sbin:/usr/sbin:/static/bin \
&nbsp;&nbsp;&nbsp;&nbsp;/static/bin/bash --login</userinput></screen>
</para>

<para>The <userinput>-i</userinput> option given to the
<userinput>env</userinput> command will clear all variables of the chroot'ed
environment. After that, only the HOME, TERM, PS1 and PATH variables are
set again. The TERM=$TERM construct will set the TERM variable inside chroot
to the same value as outside chroot; this variable is needed for programs
like vim and less to operate properly. If you need other variables present,
such as CFLAGS or CXXFLAGS, this is a good place to set them again.</para>

<para>From this point on there's no need anymore to use the $LFS variable,
because everything you do will be restricted to the LFS file system -- since
what the shell thinks is <filename class="directory">/</filename> is actually
<filename class="directory">/mnt/lfs</filename>.</para>

<para>You have to make sure all the commands in the rest of this chapter and
in the following chapters are run from within the chroot'ed environment.
If you ever leave this environment for any reason (rebooting for example),
you must remember to again enter chroot and mount proc (discussed later)
before continuing with the installations.</para>

<para>Note that the bash prompt will say "I have no name!" This is
normal, as the Glibc package hasn't been installed yet.</para>

</sect1>