source: chapter05/setting-environment.xml@ a3f6e124

10.0 10.0-rc1 10.1 10.1-rc1 11.0 11.0-rc1 11.0-rc2 11.0-rc3 11.1 11.1-rc1 11.2 11.2-rc1 11.3 11.3-rc1 12.0 12.0-rc1 12.1 12.1-rc1 6.0 6.1 6.1.1 6.3 6.4 6.5 6.6 6.7 6.8 7.0 7.1 7.2 7.3 7.4 7.5 7.5-systemd 7.6 7.6-systemd 7.7 7.7-systemd 7.8 7.8-systemd 7.9 7.9-systemd 8.0 8.1 8.2 8.3 8.4 9.0 9.1 arm bdubbs/gcc13 ml-11.0 multilib renodr/libudev-from-systemd s6-init trunk v5_0 v5_1 v5_1_1 xry111/arm64 xry111/arm64-12.0 xry111/clfs-ng xry111/lfs-next xry111/loongarch xry111/loongarch-12.0 xry111/loongarch-12.1 xry111/mips64el xry111/pip3 xry111/rust-wip-20221008 xry111/update-glibc
Last change on this file since a3f6e124 was 21ba4e3, checked in by Greg Schafer <greg@…>, 21 years ago

Internal markup reworking to fix the extraneous whitespace problem in the "tidy generated" web site pages. Essentially replace all ocurrences of <para><screen> with <screen> (and of course the matching closing tags).

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2958 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689

  • Property mode set to 100644
File size: 2.5 KB
Line 
1<sect1 id="ch05-settingenviron">
2<title>Setting up the environment</title>
3<?dbhtml filename="settingenvironment.html" dir="chapter05"?>
4
5<para>While logged in as user <emphasis>lfs</emphasis>, issue the
6following commands to set up a good work environment:</para>
7
8<screen><userinput>cat &gt; ~/.bash_profile &lt;&lt; "EOF"</userinput>
9set +h
10umask 022
11LFS=/mnt/lfs
12LC_ALL=POSIX
13PATH=/tools/bin:$PATH
14export LFS LC_ALL PATH
15unset CC CXX CPP LD_LIBRARY_PATH LD_PRELOAD
16<userinput>EOF
17
18source ~/.bash_profile</userinput></screen>
19
20<para>The <userinput>set +h</userinput> command turns off
21<userinput>bash</userinput>'s hash function. Normally hashing is a useful
22feature: <userinput>bash</userinput> uses a hash table to remember the
23full pathnames of executable files to avoid searching the PATH time and time
24again to find the same executable. However, we'd like the new tools to be
25used as soon as they are installed. By switching off the hash function, our
26"interactive" commands (<userinput>make</userinput>,
27<userinput>patch</userinput>, <userinput>sed</userinput>,
28<userinput>cp</userinput> and so forth) will always use
29the newest available version during the build process.</para>
30
31<para>Setting the user file-creation mask to 022 ensures that newly created
32files and directories are only writable for their owner, but readable and
33executable for anyone.</para>
34
35<para>The LFS variable should of course be set to the mount point you
36chose.</para>
37
38<para>The LC_ALL variable controls the localization of certain programs,
39making their messages follow the conventions of a specified country. If your
40host system uses a version of Glibc older than 2.2.4,
41having LC_ALL set to something other than "POSIX" or "C" during this chapter
42may cause trouble if you exit the chroot environment and wish to return later.
43By setting LC_ALL to "POSIX" (or "C", the two are equivalent) we ensure that
44everything will work as expected in the chroot environment.</para>
45
46<para>We prepend <filename>/tools/bin</filename> to the standard PATH so
47that, as we move along through this chapter, the tools we build will get used
48during the rest of the building process.</para>
49
50<para>The CC, CXX, CPP, LD_LIBRARY_PATH and LD_PRELOAD environment variables all
51have the potential to cause havoc with our Chapter 5 toolchain. We therefore
52unset them to prevent any chance of this happening.</para>
53
54<para>Now, after sourcing the just-created profile, we're all set to begin
55building the temporary tools that will support us in later chapters.</para>
56
57</sect1>
58
Note: See TracBrowser for help on using the repository browser.