From 5e40325fc2ddf3e60af6d47cb434e26099aebce6 Mon Sep 17 00:00:00 2001 From: Timothy Bauscher Date: Sun, 5 Jan 2003 16:19:00 +0000 Subject: Applied a modified version of Alex's patch to split the in two. git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2283 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689 --- chapter01/changelog.xml | 9 ++++-- chapter05/adding-user.xml | 30 +++++++++++++++++++ chapter05/chapter05.xml | 3 +- chapter05/installasuser.xml | 62 --------------------------------------- chapter05/setting-environment.xml | 45 ++++++++++++++++++++++++++++ entities/chapter05.ent | 3 +- index.xml | 4 +-- 7 files changed, 88 insertions(+), 68 deletions(-) create mode 100644 chapter05/adding-user.xml delete mode 100644 chapter05/installasuser.xml create mode 100644 chapter05/setting-environment.xml diff --git a/chapter01/changelog.xml b/chapter01/changelog.xml index 095f60e0a..c5a0ff653 100644 --- a/chapter01/changelog.xml +++ b/chapter01/changelog.xml @@ -57,7 +57,12 @@ -January 2nd, 2003 [geard]: Chapter 05 - All packages whose +January 5th, 2003 [timothy]: Chapter 05 - Applied Alex's +patch to split the Install all software as an unprivileged +user page into two pages: Adding the user lfs +and Setting up the environment. + +January 2nd, 2003 [gerard]: Chapter 05 - All packages whose configure script supports the LDFLAGS environment variable now use it rather than passing the variable down to make. @@ -77,7 +82,7 @@ mega-patch with three separate patches (man-1.5k-80cols.patch, man-1.5k-manpath.patch and man-1.5k-pager.patch). January 1st, 2003 [gerard]: Chapter 06 - Glibc Second Pass: -Fixec typo in linuxthreads man pages installation. +Fixed typo in linuxthreads man pages installation. January 1st, 2003 [gerard]: Chapter 06 - Linux Kernel: The man pages can't be installed here because it requires Perl. Moved to end of diff --git a/chapter05/adding-user.xml b/chapter05/adding-user.xml new file mode 100644 index 000000000..f36d5578f --- /dev/null +++ b/chapter05/adding-user.xml @@ -0,0 +1,30 @@ + +Adding the user lfs + + +If you are logged in as root during Chapter 5, +your host system can be damaged by a single mistake. We recommend that +you build the packages in Chapter 5 as an unprivileged user. You could use +your own user name, but to ensure a clean build environment, we'll create a +new user: lfs. As root, issue +the following commands to add the new user: + +useradd -s /bin/bash -m lfs +passwd lfs + +In order to grant the user lfs the proper permissions +to the $LFS/static directory, issue the following +command: + +chown -R lfs $LFS/static + +Next, login as user lfs. This can be accomplished +via a virtual console, display manager or with the substitute user +command: + +su - lfs + +The "-" instructs su to +start a new, clean shell. + + diff --git a/chapter05/chapter05.xml b/chapter05/chapter05.xml index 0a1508b96..3d4755dd1 100644 --- a/chapter05/chapter05.xml +++ b/chapter05/chapter05.xml @@ -5,7 +5,8 @@ &c5-introduction; &c5-whystatic; &c5-creatingstaticdir; -&c5-installasuser; +&c5-addinguser; +&c5-settingenviron; &c5-bash; &c5-binutils; &c5-bzip2; diff --git a/chapter05/installasuser.xml b/chapter05/installasuser.xml deleted file mode 100644 index c231925ea..000000000 --- a/chapter05/installasuser.xml +++ /dev/null @@ -1,62 +0,0 @@ - -Install all software as an unprivileged user - - -When you are logged in as root during Chapter 5, it is possible -that some files of your host system will be overwritten by the ones -you'll build in Chapter 5. There can be all kinds of reasons for this -to happen, for example because the $LFS environment variable is not -set. Overwriting some files from your host system will most likely -cause all kinds of problems, so it's a good idea to be logged in as -an unprivileged user during Chapter 5. To make sure the environment -is as clean as possible, we'll create a new user "lfs" that can be -used while building the static installation. Issuing the following -commands as root will create a new user "lfs": - -useradd -s /bin/bash -m lfs && -passwd lfs - -Now we need to give proper permissions to the $LFS/static directory so user "lfs" can write -to it: - -chown -R lfs $LFS/static - -You have to login as user lfs now to continue -with the rest of this chapter. You can do this two ways: either the normal -way through the console or the display manager, or with -su - lfs. When you're working as user -lfs, type the following commands to set up a good -environment to work in: - -cat > ~lfs/.bash_profile << "EOF" -umask 022 - -LFS=/mnt/lfs -LC_ALL=POSIX -CC='gcc -s' -export LFS LC_ALL CC -EOF -source ~/.bash_profile - -This profile makes sure the umask is set to 022 so newly created -files and directories will have the correct permissions. It is advisable -to keep this setting throughout your LFS installation. Also, the $LFS, -$LC_ALL, and $CC environment variables are set. $LFS has been explained -in previous chapters already. $LC_ALL is a variable that is used for -internationalization. - -When your host distribution uses a glibc version older than 2.2.4, -having $LC_ALL set to something other than "C" or "POSIX" while working -through Chapter 5 may cause trouble when you exit the chroot environment -of Chapter 6 and try to return to it. By setting this to "POSIX" ("C" -is an alias for "POSIX") we ensure that everything will work as expected -in the chroot environment. - -$CC is a variable we set in order to prevent debugging symbols from -being compiled into our static packages. By omitting these symbols during -the linking stage of compilation, we save hard drive space and decrease -our build time. - - - diff --git a/chapter05/setting-environment.xml b/chapter05/setting-environment.xml new file mode 100644 index 000000000..f143b8b69 --- /dev/null +++ b/chapter05/setting-environment.xml @@ -0,0 +1,45 @@ + +Setting up the environment + + +While logged in as user lfs, issue the +following commands to set up a good work environment: + +cat > ~/.bash_profile << "EOF" +umask 022 +LFS=/mnt/lfs +LC_ALL=POSIX +CC="gcc -s" +export LFS LC_ALL CC +EOF +source ~/.bash_profile + +This profile sets the umask to 022, so newly created files will and +directories will have the correct permissions. To be more specific, only +the file owner will have write permission to new files and directories. +Other users of the system will be have read permission, and executable +permission to directories. It is advisable to keep this setting throughout +your LFS installation. + +The LFS, LC_ALL, and CC environment variables are also set. The LFS +variable has been explained in previous chapters. LC_ALL is a variable used +for internationalization. + +The LC_ALL variable controls the localization of certain programs, +making their messages follow the conventions of a specified country. If your +host system uses a version of glibc older than 2.2.4, +having LC_ALL set to something other than "C" or "POSIX" during Chapter 5 +may cause trouble if you exit the chroot environment and wish to return later. +By setting LC_ALL to "POSIX" ("C" is an alias for "POSIX") we ensure that +everything will work as expected in the chroot environment. + +CC is a variable we set in order to prevent debugging symbols from +being compiled into our static packages. By omitting these symbols during +the linking stage of compilation, we save hard drive space and decrease our +build time. + +We are now prepared to begin building the temporary tools which will +support us in later chapters. + + + diff --git a/entities/chapter05.ent b/entities/chapter05.ent index 3e1177151..339cecaf1 100644 --- a/entities/chapter05.ent +++ b/entities/chapter05.ent @@ -2,4 +2,5 @@ - + + diff --git a/index.xml b/index.xml index 0186b6839..70b7bcf26 100644 --- a/index.xml +++ b/index.xml @@ -4,8 +4,8 @@ - - + + -- cgit v1.2.3-54-g00ecf