[6370fa6] | 1 | <sect1 id="ch06-chroot">
|
---|
[2c094d6] | 2 | <title>Entering the chroot environment</title>
|
---|
[a862ce2] | 3 | <?dbhtml filename="chroot.html" dir="chapter06"?>
|
---|
[6370fa6] | 4 |
|
---|
[2c094d6] | 5 | <para>It is time to enter the chroot environment in order to begin installing
|
---|
[44c2fd8] | 6 | the packages we need. Before you can chroot, however, you need to become
|
---|
| 7 | <emphasis>root</emphasis>, since only <emphasis>root</emphasis>
|
---|
| 8 | can execute the <userinput>chroot</userinput> command.</para>
|
---|
| 9 |
|
---|
| 10 | <para>Become <emphasis>root</emphasis> and run the following command
|
---|
[2c094d6] | 11 | to enter the chroot environment:</para>
|
---|
[44c2fd8] | 12 |
|
---|
[bc82645e] | 13 | <para><screen><userinput>chroot $LFS /stage1/bin/env -i \
|
---|
[44c2fd8] | 14 | HOME=/root TERM=$TERM PS1='\u:\w\$ ' \
|
---|
[bc82645e] | 15 | PATH=/bin:/usr/bin:/sbin:/usr/sbin:/stage1/bin \
|
---|
| 16 | LDFLAGS="-s" \
|
---|
| 17 | /stage1/bin/bash --login</userinput></screen>
|
---|
[44c2fd8] | 18 | </para>
|
---|
| 19 |
|
---|
[bc82645e] | 20 | <para><screen><userinput>set +h</userinput></screen></para>
|
---|
| 21 |
|
---|
[44c2fd8] | 22 | <para>The <userinput>-i</userinput> option given to the
|
---|
[2c094d6] | 23 | <userinput>env</userinput> command will clear all variables of the chroot
|
---|
[44c2fd8] | 24 | environment. After that, only the HOME, TERM, PS1 and PATH variables are
|
---|
| 25 | set again. The TERM=$TERM construct will set the TERM variable inside chroot
|
---|
| 26 | to the same value as outside chroot; this variable is needed for programs
|
---|
| 27 | like vim and less to operate properly. If you need other variables present,
|
---|
| 28 | such as CFLAGS or CXXFLAGS, this is a good place to set them again.</para>
|
---|
| 29 |
|
---|
[a07854b] | 30 | <para>From this point on there's no need to use the LFS variable anymore,
|
---|
[44c2fd8] | 31 | because everything you do will be restricted to the LFS file system -- since
|
---|
| 32 | what the shell thinks is <filename class="directory">/</filename> is actually
|
---|
[7fcde5c] | 33 | the value of <filename class="directory">$LFS</filename>, which was passed to
|
---|
| 34 | the chroot command.</para>
|
---|
[44c2fd8] | 35 |
|
---|
| 36 | <para>You have to make sure all the commands in the rest of this chapter and
|
---|
[2c094d6] | 37 | in the following chapters are run from within the chroot environment.
|
---|
[44c2fd8] | 38 | If you ever leave this environment for any reason (rebooting for example),
|
---|
| 39 | you must remember to again enter chroot and mount proc (discussed later)
|
---|
| 40 | before continuing with the installations.</para>
|
---|
| 41 |
|
---|
| 42 | <para>Note that the bash prompt will say "I have no name!" This is
|
---|
| 43 | normal, as the Glibc package hasn't been installed yet.</para>
|
---|
[7e37742] | 44 |
|
---|
[6370fa6] | 45 | </sect1>
|
---|
[44c2fd8] | 46 |
|
---|