diff options
Diffstat (limited to 'chapter06')
122 files changed, 2236 insertions, 0 deletions
diff --git a/chapter06/aboutdebug.sgml b/chapter06/aboutdebug.sgml new file mode 100644 index 000000000..5bd7a671e --- /dev/null +++ b/chapter06/aboutdebug.sgml @@ -0,0 +1,69 @@ +<sect1 id="ch06-aboutdebug"> +<title>About debugging symbols</title> + +<para> +Most programs and libraries by default are compiled with debugging +symbols and optimizing level 2 (gcc options -g and -O2) and are compiled +for a specific CPU. On Intel platforms software is compiled for i386 +processors by default. If you don't wish to run software on other +machines other than your own, you might want to change the default +compiler options so that they will be compiled with a higher +optimization level, no debugging symbols and generate code for your +specific architecture. Let me first explain what debugging symbols +are. +</para> + +<para> +A program compiled with debugging symbols means you can run a program or +library through a debugger and the debugger's output will be user friendlier. +These debugging symbols also enlarge the program or library significantly. +</para> + +<para> +To remove debugging symbols from a binary (must be an a.out or ELF binary) +run <userinput>strip --strip-debug filename</userinput> You can use wild cards +if you need to strip debugging symbols from multiple files (use something like +strip --strip-debug $LFS/usr/bin/*). Another, easier, options is just +not to compile programs with debugging symbols. Most people will probably +never use a debugger on software, so by leaving those symbols out you +can save a lot of diskspace. +</para> + +<para> +Before you wonder if these debugging symbols would make a big difference, +here are some statistics: +</para> + +<itemizedlist> + +<listitem><para> + A dynamic Bash binary with debugging symbols: 1.2MB +</para></listitem> + +<listitem><para> + A dynamic Bash binary without debugging symbols: 478KB +</para></listitem> + +<listitem><para> + /lib and /usr/lib (glibc and gcc files) with debugging + symbols: 87MB +</para></listitem> + +<listitem><para> + /lib and /usr/lib (glibc and gcc files) without + debugging symbols: 16MB +</para></listitem> + +</itemizedlist> + +<para> +Sizes may vary depending on which compiler was used and which C library +version was used to link dynamic programs against, but your results will be +similar if you compare programs with and without debugging symbols. After +I was done with this chapter and stripped all debugging symbols from all LFS +binaries and libraries I regained a little over 102 MB of disk space. Quite +the difference. +</para> + +</sect1> + diff --git a/chapter06/autoconf-inst.sgml b/chapter06/autoconf-inst.sgml new file mode 100644 index 000000000..6d66859a3 --- /dev/null +++ b/chapter06/autoconf-inst.sgml @@ -0,0 +1,17 @@ +<sect2> +<title>Installation of Autoconf</title> + +<para> +Install Autoconf by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/autoconf.sgml b/chapter06/autoconf.sgml new file mode 100644 index 000000000..5a02716d9 --- /dev/null +++ b/chapter06/autoconf.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-autoconf"> +<title>Installing Autoconf</title> + +&c6-in-autoconf-inst; +&aa-autoconf-desc; + +</sect1> diff --git a/chapter06/automake-inst.sgml b/chapter06/automake-inst.sgml new file mode 100644 index 000000000..a15fd7f82 --- /dev/null +++ b/chapter06/automake-inst.sgml @@ -0,0 +1,16 @@ +<sect2> +<title>Installation of Automake</title> + +<para> +Install Automake by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/automake.sgml b/chapter06/automake.sgml new file mode 100644 index 000000000..f916b4f52 --- /dev/null +++ b/chapter06/automake.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-automake"> +<title>Installing Automake</title> + +&c6-in-automake-inst; +&aa-automake-desc; + +</sect1> diff --git a/chapter06/bash-inst.sgml b/chapter06/bash-inst.sgml new file mode 100644 index 000000000..790ea5344 --- /dev/null +++ b/chapter06/bash-inst.sgml @@ -0,0 +1,33 @@ +<sect2> +<title>Installation of Bash</title> + +<para> +Install Bash by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr --with-curses + &&</userinput> + <userinput>make &&</userinput> + <userinput>make install &&</userinput> + <userinput>logout</userinput> + +</literallayout></blockquote> + +<para> +Replace the static bash with the dynamic bash and re-enter the chroot'ed +environment by running: +</para> + +<blockquote><literallayout> + + <userinput>mv $LFS/usr/bin/bash $LFS/usr/bin/bashbug + $LFS/bin &&</userinput> + <userinput>chroot $LFS /usr/bin/env -i HOME=/root /bin/bash + --login</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/bash.sgml b/chapter06/bash.sgml new file mode 100644 index 000000000..490355fa7 --- /dev/null +++ b/chapter06/bash.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-bash"> +<title>Installing Bash</title> + +&c6-in-bash-inst; +&aa-bash-desc; + +</sect1> diff --git a/chapter06/bashprofile.sgml b/chapter06/bashprofile.sgml new file mode 100644 index 000000000..f34ae8251 --- /dev/null +++ b/chapter06/bashprofile.sgml @@ -0,0 +1,38 @@ +<sect1 id="ch06-bashprofile"> +<title>Creating $LFS/root/.bash_profile</title> + +<para> +When we have entered the chroot'ed environment in the next section we +want to export a couple of environment variables in that shell such as +PS1, PATH and others variables you want to have set. For that purpose we'll +create the $LFS/root/.bash_profile file which will be read by bash when we +enter the chroot environment. +</para> + +<para> +Create a new file <filename>$LFS/root/.bash_profile</filename> +by running the following. +</para> + +<literallayout> + +<userinput>cat > $LFS/root/.bash_profile << "EOF"</userinput> +# Begin /root/.bash_profile + +PS1='\u:\w\$ ' +PATH=/bin:/usr/bin:/sbin:/usr/sbin + +export PS1 PATH + +# End /root/.bash_profile +<userinput>EOF</userinput> + +</literallayout> + +<para> +You can add more environment variables,aliases and whatever else you +need/want at your own discretion as you deem them necessary. +</para> + +</sect1> + diff --git a/chapter06/bin86-inst.sgml b/chapter06/bin86-inst.sgml new file mode 100644 index 000000000..0f5abe4e2 --- /dev/null +++ b/chapter06/bin86-inst.sgml @@ -0,0 +1,16 @@ +<sect2> +<title>Installation of Bin86</title> + +<para> +Install Linux86 by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>make &&</userinput> + <userinput>make PREFIX=/usr install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/bin86.sgml b/chapter06/bin86.sgml new file mode 100644 index 000000000..d3d41ceeb --- /dev/null +++ b/chapter06/bin86.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-bin86"> +<title>Installing Bin86</title> + +&c6-in-bin86-inst; +&aa-bin86-desc; + +</sect1> diff --git a/chapter06/binutils-inst.sgml b/chapter06/binutils-inst.sgml new file mode 100644 index 000000000..ed32aab18 --- /dev/null +++ b/chapter06/binutils-inst.sgml @@ -0,0 +1,16 @@ +<sect2><title>Installation of Binutils</title> + +<para> +Install Binutils by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr --enable-shared &&</userinput> + <userinput>make -e tooldir=/usr &&</userinput> + <userinput>make -e tooldir=/usr install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/binutils.sgml b/chapter06/binutils.sgml new file mode 100644 index 000000000..da8ae86b7 --- /dev/null +++ b/chapter06/binutils.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-binutils"> +<title>Installing Binutils</title> + +&c6-in-binutils-inst; +&aa-binutils-desc; + +</sect1> diff --git a/chapter06/bison-exp.sgml b/chapter06/bison-exp.sgml new file mode 100644 index 000000000..427d991a3 --- /dev/null +++ b/chapter06/bison-exp.sgml @@ -0,0 +1,10 @@ +<sect2> +<title>Command explanations</title> + +<para> +<userinput>--datadir=/usr/share/bison:</userinput> This install the +bison grammar files in /usr/share/bison rather than /usr/share. +</para> + +</sect2> + diff --git a/chapter06/bison-inst.sgml b/chapter06/bison-inst.sgml new file mode 100644 index 000000000..51c2231e4 --- /dev/null +++ b/chapter06/bison-inst.sgml @@ -0,0 +1,45 @@ +<sect2> +<title>Installation of Bison</title> + +<para> +Install Bison by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr \</userinput> + <userinput> --datadir=/usr/share/bison + &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +<para> +Some programs don't know about bison and try to find the yacc program +(bison is a (better) alternative for yacc). So to please those few +programs out there we'll create a yacc script that calls bison and have +it emulate yacc's output file name conventions). +</para> + +<para> +Create a new file <filename>/usr/bin/yacc</filename> by running the +following: +</para> + +<literallayout> + +<userinput>cat > /usr/bin/yacc << "EOF"</userinput> +#!/bin/sh +# Begin /usr/bin/yacc + +/usr/bin/bison -y $* + +# End /usr/bin/yacc +<userinput>EOF</userinput> +<userinput>chmod 755 /usr/bin/yacc</userinput> + +</literallayout> + +</sect2> + diff --git a/chapter06/bison.sgml b/chapter06/bison.sgml new file mode 100644 index 000000000..cc30f0862 --- /dev/null +++ b/chapter06/bison.sgml @@ -0,0 +1,9 @@ +<sect1 id="ch06-bison"> +<title>Installing Bison</title> + +&c6-in-bison-inst; +&c6-in-bison-exp; +&aa-bison-desc; + +</sect1> + diff --git a/chapter06/bzip2-exp.sgml b/chapter06/bzip2-exp.sgml new file mode 100644 index 000000000..10e4129e4 --- /dev/null +++ b/chapter06/bzip2-exp.sgml @@ -0,0 +1,12 @@ +<sect2> +<title>Command explanations</title> + +<para> +<userinput>make -f Makefile-libbz2_so:</userinput> This will cause bzip2 +to be build using a different Makefile file, in this case the +Makefile-libbz2_so file which creates a dynamic libbz2.so library and +links the bzip2 utilities against it. +</para> + +</sect2> + diff --git a/chapter06/bzip2-inst.sgml b/chapter06/bzip2-inst.sgml new file mode 100644 index 000000000..1e244d197 --- /dev/null +++ b/chapter06/bzip2-inst.sgml @@ -0,0 +1,40 @@ +<sect2> +<title>Installation of Bzip2</title> + +<para> +Install Bzip2 by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>make -f Makefile-libbz2_so &&</userinput> + <userinput>make bzip2recover libbz2.a &&</userinput> + <userinput>cp bzip2-shared /bin/bzip2 &&</userinput> + <userinput>cp bzip2recover /bin &&</userinput> + <userinput>cp bzip2.1 /usr/share/man/man1 &&</userinput> + <userinput>cp bzlib.h /usr/include &&</userinput> + <userinput>cp -a libbz2.so* libbz2.a /lib &&</userinput> + <userinput>rm /usr/lib/libbz2.a &&</userinput> + <userinput>cd /bin &&</userinput> + <userinput>rm bunzip2 && ln -s bzip2 bunzip2 &&</userinput> + <userinput>rm bzcat && ln -s bzip2 bzcat &&</userinput> + <userinput>cd /usr/share/man/man1 &&</userinput> + <userinput>ln -s bzip2.1 bunzip2.1 &&</userinput> + <userinput>ln -s bzip2.1 bzcat.1 &&</userinput> + <userinput>ln -s bzip2.1 bzip2recover.1</userinput> + +</literallayout></blockquote> + +<para> +Although it's not strictly a part of a basic LFS system it's worth +mentioning that you can download a patch for Tar which enables the tar +program to compress and uncompress using bzip2/bunzip2 easily. With a +plain tar you'll have to use constructions like bzcat file.tar.bz|tar +xv or tar --use-compress-prog=bunzip2 -xvf file.tar.bz2 to use bzip2 and +bunzip2 with tar. This patch gives you the -y option so you can unpack a +Bzip2 archive with tar xvfy file.tar.bz2. Applying this patch will be +mentioned later on when you re-install the Tar package. +</para> + +</sect2> + diff --git a/chapter06/bzip2.sgml b/chapter06/bzip2.sgml new file mode 100644 index 000000000..bf623846f --- /dev/null +++ b/chapter06/bzip2.sgml @@ -0,0 +1,8 @@ +<sect1 id="ch06-bzip2"> +<title>Installing Bzip2</title> + +&c6-in-bzip2-inst; +&c6-in-bzip2-exp; +&aa-bzip2-desc; + +</sect1> diff --git a/chapter06/chapter6.sgml b/chapter06/chapter6.sgml new file mode 100644 index 000000000..28942d01c --- /dev/null +++ b/chapter06/chapter6.sgml @@ -0,0 +1,62 @@ +<chapter id="chapter06"> +<title>Installing basic system software</title> + +&c6-introduction; +&c6-aboutdebug; +&c6-bashprofile; +&c6-in-chroot; + +&c6-in-creatingdev; +&c6-in-manpages; +&c6-in-ed; +&c6-in-patch; +&c6-in-findutils; +&c6-in-mawk; +&c6-in-ncurses; +&c6-in-vim; +&c6-in-gcc; +&c6-in-bison; +&c6-in-less; +&c6-in-groff; +&c6-in-man; +&c6-in-perl; +&c6-in-m4; +&c6-in-texinfo; +&c6-in-autoconf; +&c6-in-automake; +&c6-in-bash; +&c6-in-flex; +&c6-in-file; +&c6-in-libtool; +&c6-in-bin86; +&c6-in-binutils; +&c6-in-bzip2; +&c6-in-gettext; +&c6-in-consoletools; +&c6-in-consoledata; +&c6-in-diffutils; +&c6-in-e2fsprogs; +&c6-in-fileutils; +&c6-in-grep; +&c6-in-gzip; +&c6-in-ldso; +&c6-in-lilo; +&c6-in-make; +&c6-in-modutils; +&c6-in-procinfo; +&c6-in-procps; +&c6-in-psmisc; +&c6-in-sed; +&c6-in-shellutils; +&c6-in-shadowpwd; +&c6-in-sysklogd; +&c6-in-sysvinit; +&c6-in-tar; +&c6-in-textutils; +&c6-in-utillinux; + +&c6-nssremove; +&c6-configure; + +</chapter> + diff --git a/chapter06/chroot.sgml b/chapter06/chroot.sgml new file mode 100644 index 000000000..911f7a39d --- /dev/null +++ b/chapter06/chroot.sgml @@ -0,0 +1,32 @@ +<sect1 id="ch06-chroot"> +<title>Entering the chroot'ed environment</title> + +<para> +It's time to enter our chroot'ed environment in order to install the +rest of the software we need. +</para> + +<para> +Enter the following command to enter the chroot'ed environment. From +this point on there's no need to use the $LFS variable anymore, because +everything you do will be restricted to the LFS partition (since / is +actually /mnt/lfs but the shell doesn't know that). +</para> + +<blockquote><literallayout> + + <userinput>cd $LFS &&</userinput> + <userinput>chroot $LFS /usr/bin/env -i HOME=/root /bin/bash + --login</userinput> + +</literallayout></blockquote> + +<para> +Now that we are inside a chroot'ed environment, we can continue to +install all the basic system software. Make sure you execute all the +following commands in this chapter from within the chroot'ed +environment. +</para> + +</sect1> + diff --git a/chapter06/cofnig-ldso.sgml b/chapter06/cofnig-ldso.sgml new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/chapter06/cofnig-ldso.sgml diff --git a/chapter06/config-glibc.sgml b/chapter06/config-glibc.sgml new file mode 100644 index 000000000..5272c536e --- /dev/null +++ b/chapter06/config-glibc.sgml @@ -0,0 +1,88 @@ +<sect2><title>Configuring Glibc</title> + +<para> +We need to create the /etc/nsswitch.conf file. Although glibc should provide +defaults when this file is missing or corrupt, it's defaults don't work work +well with networking which will be dealt with in a later chapter. Also, our +timezone needs to be setup. +</para> + +<para> +Create a new file <filename>/etc/nsswitch.conf</filename> by running the +following: +</para> + +<literallayout> + +<userinput>cat > /etc/nsswitch.conf << "EOF"</userinput> +# Begin /etc/nsswitch.conf + +passwd: files +group: files +shadow: files + +publickey: files + +hosts: files dns +networks: files + +protocols: db files +services: db files +ethers: db files +rpc: db files + +netgroup: db files + +# End /etc/nsswitch.conf +<userinput>EOF</userinput> + +</literallayout> + +<para> +Run the <userinput>tzselect</userinput> script and answer the questions +regarding your timezone. When you're done, the script will give you the +location of the timezone file you need. +</para> + +<para> +Create the <filename class="directory">/etc/localtime</filename> symlink +by running: +</para> + +<blockquote><literallayout> + + <userinput>cd /etc &&</userinput> + <userinput>rm localtime &&</userinput> + <userinput>ln -s ../usr/share/zoneinfo/<tzselect's output> + localtime</userinput> + +</literallayout></blockquote> + +<para> +tzselect's output can be something like <emphasis>EST5EDT</emphasis> or +<emphasis>Canada/Eastern</emphasis>. +</para> + +<para> +The symlink you would create with that information would be: +</para> + +<blockquote><literallayout> + + <userinput>ln -s ../usr/share/zoneinfo/EST5EDT localtime</userinput> + +</literallayout></blockquote> + +<para> +Or: +</para> + +<blockquote><literallayout> + + <userinput>ln -s ../usr/share/zoneinfo/Canada/Eastern localtime + </userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/config-ldso.sgml b/chapter06/config-ldso.sgml new file mode 100644 index 000000000..c340db151 --- /dev/null +++ b/chapter06/config-ldso.sgml @@ -0,0 +1,43 @@ +<sect2> +<title>Configuring Dynamic Loader</title> + +<para> +By default the dynamic loader searches a few default paths for dynamic +libraries, so there normally isn't a need for the +<filename>/etc/ld.so.conf</filename> file unless you have extra +directories in which you want the system to search for paths. The +<filename class="directory">/usr/local/lib</filename> directory isn't +searched through for dynamic libraries by default, so we want to add +this path so when you install software you won't be suprised by them not +running for some reason. +</para> + +<para> +Create a new file <filename>/etc/ld.so.conf</filename> by running the +following: +</para> + +<literallayout> + +<userinput>cat > /etc/ld.so.conf << "EOF"</userinput> +# Begin /etc/ld.so.conf + +/lib +/usr/lib +/usr/local/lib + +# End /etc/ld.so.conf +<userinput>EOF</userinput> + +</literallayout> + +<para> +Although it's not necessary to add the +<filename class="directory">/lib</filename> and +<filename class="directory">/usr/lib</filename> directories it doesn't +hurt. This way you see right away what's being searched and don't have +to remeber the default search paths if you don't want to. +</para> + +</sect2> + diff --git a/chapter06/config-lilo.sgml b/chapter06/config-lilo.sgml new file mode 100644 index 000000000..1e61cc9f1 --- /dev/null +++ b/chapter06/config-lilo.sgml @@ -0,0 +1,46 @@ +<sect2> +<title>Configuring Lilo</title> + +<para> +We're not going to create lilo's configuration file from scratch, but we'll +use the file from your normal Linux system. This file is different on every +machine and thus I can't create it here. Since you would want to have the +same options regarding lilo as you have when you're using your normal Linux +system you would create the file exactly as it is on the normal system. +</para> + +<para> +Copy the Lilo configuration file and kernel images that Lilo uses by +running the following commands from a shell on your normal Linux system. +Don't execute these commands from your chroot'ed shell. +</para> + +<blockquote><literallayout> + + <userinput>cp /etc/lilo.conf $LFS/etc</userinput> + <userinput>cp /boot/<kernel images> $LFS/boot</userinput> + +</literallayout></blockquote> + +<para> +Before you can execute the second command you need to know the names of +the kernel images. You can't just copy all files from the /boot +directory. The /etc/lilo.conf file contains the names of the kernel +images you're using. Open the file and look for lines like this: +</para> + +<blockquote><literallayout> + + image=/boot/vmlinuz + +</literallayout></blockquote> + +<para> +Look for all <emphasis>image</emphasis> variables and their values +represent the name and location of the image files. These files will +usually be in /boot but they might be in other directories as well, +depending on your distribution's conventions. +</para> + +</sect2> + diff --git a/chapter06/config-shadowpwd.sgml b/chapter06/config-shadowpwd.sgml new file mode 100644 index 000000000..ba63621f8 --- /dev/null +++ b/chapter06/config-shadowpwd.sgml @@ -0,0 +1,34 @@ +<sect2><title>Configuring Shadow Password Suite</title> + +<para> +This package contains the utilities to modify user's passwords, add new +users/groups, delete users/groups and more. I'm not going to explain to you +what 'password shadowing' means. You can read all about that in the doc/HOWTO +file within the unpacked shadow password suite's source tree. There's one +thing you should keep in mind, if you decide to use shadow support, that +programs that need to verify passwords (examples are xdm, ftp daemons, +pop3 daemons, etc) need to be 'shadow-compliant', eg. they need to +be able to work with shadow'ed passwords. +</para> + +<para> +Shadow'ed passwords are not enabled by default. Simply installing the +shadow password suite does not enable shadow'ed passwords. +</para> + +<para> +Now is a very good moment to read chapter 5 of the doc/HOWTO file. You can +read how you can enable shadow'ed passwords, how to test whether shadowing +works and if not, how to disable it again. +</para> + +<para> +The documentation mentions something about the creastion of npasswd and +nshadow after you run pwconv. This is an error in the documentation. +Those two files will be be created. After you run pwconv, /etc/passwd +will no longer contain the passwords and /etc/shadow will. You don't +need to rename the npasswd and nshadow files yourself. +</para> + +</sect2> + diff --git a/chapter06/config-sysklogd.sgml b/chapter06/config-sysklogd.sgml new file mode 100644 index 000000000..12a12563b --- /dev/null +++ b/chapter06/config-sysklogd.sgml @@ -0,0 +1,27 @@ +<sect2><title>Configuring Sysklogd</title> + +<para> +Create a new file <filename>/etc/syslog.conf</filename> by running the +following: +</para> + +<literallayout> + +<userinput>cat > /etc/syslog.conf << "EOF"</userinput> +# Begin /etc/syslog.conf + +auth,authpriv.* -/var/log/auth.log +*.*;auth,authpriv.none -/var/log/sys.log +daemon.* -/var/log/daemon.log +kern.* -/var/log/kern.log +mail.* -/var/log/mail.log +user.* -/var/log/user.log +*.emerg * + +# End /etc/syslog.conf +<userinput>EOF</userinput> + +</literallayout> + +</sect2> + diff --git a/chapter06/config-sysvinit.sgml b/chapter06/config-sysvinit.sgml new file mode 100644 index 000000000..ada018f9d --- /dev/null +++ b/chapter06/config-sysvinit.sgml @@ -0,0 +1,43 @@ +<sect2><title>Configuring Sysvinit</title> + +<para> +Create a new file <filename>/etc/inittab</filename> by running the +following: +</para> + +<literallayout> + +<userinput>cat > /etc/inittab << "EOF"</userinput> +# Begin /etc/inittab + +id:3:initdefault: + +si::sysinit:/etc/init.d/rcS + +l0:0:wait:/etc/init.d/rc 0 +l1:S1:wait:/etc/init.d/rc 1 +l2:2:wait:/etc/init.d/rc 2 +l3:3:wait:/etc/init.d/rc 3 +l4:4:wait:/etc/init.d/rc 4 +l5:5:wait:/etc/init.d/rc 5 +l6:6:wait:/etc/init.d/rc 6 + +ft:06:respawn:/sbin/sulogin + +ca:12345:ctrlaltdel:/sbin/shutdown -t1 -a -r now + +su:S1:respawn:/sbin/sulogin +1:2345:respawn:/sbin/agetty tty1 9600 +2:2345:respawn:/sbin/agetty tty2 9600 +3:2345:respawn:/sbin/agetty tty3 9600 +4:2345:respawn:/sbin/agetty tty4 9600 +5:2345:respawn:/sbin/agetty tty5 9600 +6:2345:respawn:/sbin/agetty tty6 9600 + +# End /etc/inittab +<userinput>EOF</userinput> + +</literallayout> + +</sect2> + diff --git a/chapter06/config-vim.sgml b/chapter06/config-vim.sgml new file mode 100644 index 000000000..4e8146aa1 --- /dev/null +++ b/chapter06/config-vim.sgml @@ -0,0 +1,24 @@ +<sect2><title>Configuring Vim</title> + +<para> +By default Vim runs in vi compatible mode. Some people might like this, +but I have a high preference to run vim in vim mode (else I wouldn't +have included Vim in this book but the original Vi). Create the +<filename>/root/.vimrc</filename> by running the following: +</para> + +<literallayout> + +<userinput>cat > /root/.vimrc << "EOF"</userinput> +" Begin /root/.vimrc + +set nocompatible +set bs=2 + +" End /root/.vimrc +<userinput>EOF</userinput> + +</literallayout> + +</sect2> + diff --git a/chapter06/configure.sgml b/chapter06/configure.sgml new file mode 100644 index 000000000..b3478066c --- /dev/null +++ b/chapter06/configure.sgml @@ -0,0 +1,19 @@ +<sect1 id="ch06-configure"> +<title>Configuring essential software</title> + +<para> +Now that all software is installed, all that we need to do to get a few +programs running properly is to create their configuration files. +</para> + +&c6-cf-vim; +&c6-cf-glibc; +&c6-cf-ldso; +&c6-cf-lilo; +&c6-cf-sysklogd; +&c6-cf-shadowpwd; +&c6-cf-sysvinit; +&c6-cf-utmp; +&c6-cf-password; + +</sect1> diff --git a/chapter06/consoledata-inst.sgml b/chapter06/consoledata-inst.sgml new file mode 100644 index 000000000..382be9e93 --- /dev/null +++ b/chapter06/consoledata-inst.sgml @@ -0,0 +1,24 @@ +<sect2> +<title>Installation of Console-data</title> + +<para> +Replace <path-to-kmap-file> below with the correct path to the +desired kmap.gz file. An example could be i386/qwerty/us.kmap.gz +</para> + +<para> +Install Console-data by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install &&</userinput> + <userinput>cd /usr/share/keymaps &&</userinput> + <userinput>ln -s <path-to-kmap-file> defkeymap.kmap.gz</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/consoledata.sgml b/chapter06/consoledata.sgml new file mode 100644 index 000000000..34cb0f36d --- /dev/null +++ b/chapter06/consoledata.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-consoledata"> +<title>Installing Consoledata</title> + +&c6-in-consoledata-inst; +&aa-consoledata-desc; + +</sect1> diff --git a/chapter06/consoletools-inst.sgml b/chapter06/consoletools-inst.sgml new file mode 100644 index 000000000..364f065b7 --- /dev/null +++ b/chapter06/consoletools-inst.sgml @@ -0,0 +1,31 @@ +<sect2> +<title>Installation of Console-tools</title> + +<para> +Before you start installing Console-tools you have to unpack the +console-tools-0.2.3.patch file. +</para> + +<para> +Install Console-tools by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>patch -Np1 -i ../console-tools-0.2.3.patch + &&</userinput> + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install &&</userinput> + <userinput>cd doc/man &&</userinput> + <userinput>mv consolechars.8.in consolechars.8 + &&</userinput> + <userinput>cp *.1 /usr/share/man/man1 &&</userinput> + <userinput>cp *.4 /usr/share/man/man4 &&</userinput> + <userinput>cp *.5 /usr/share/man/man5 &&</userinput> + <userinput>cp *.8 /usr/share/man/man8</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/consoletools.sgml b/chapter06/consoletools.sgml new file mode 100644 index 000000000..819efbe58 --- /dev/null +++ b/chapter06/consoletools.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-consoletools"> +<title>Installing Consoletools</title> + +&c6-in-consoletools-inst; +&aa-consoletools-desc; + +</sect1> diff --git a/chapter06/create-password.sgml b/chapter06/create-password.sgml new file mode 100644 index 000000000..4c2aee8ab --- /dev/null +++ b/chapter06/create-password.sgml @@ -0,0 +1,16 @@ +<sect2> +<title>Creating root password</title> + +<para> +Choose a password for user root and create it by running the following +command: +</para> + +<blockquote><literallayout> + +<userinput>passwd root</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/create-utmp.sgml b/chapter06/create-utmp.sgml new file mode 100644 index 000000000..fad585278 --- /dev/null +++ b/chapter06/create-utmp.sgml @@ -0,0 +1,28 @@ +<sect2> +<title>Creating the /var/run/utmp, /var/log/wtmp and /var/log/btmp +files</title> + +<para> +Programs like login, shutdown, uptime and others want to read from and write +to the /var/run/utmp /var/log/btmp and /var/log/wtmp. These files contain +information about who is currently logged in. It also contains information +on when the computer was last booted and shutdown and a record of the +bad login attemps. +</para> + +<para> +Create these files with their proper permissions by running the +following commands: +</para> + +<blockquote><literallayout> + + <userinput>touch /var/run/utmp /var/log/wtmp /var/log/btmp + /var/log/lastlog &&</userinput> + <userinput>chmod 644 /var/run/utmp /var/log/wtmp /var/log/btmp + /var/log/lastlog</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/createdeventries.sgml b/chapter06/createdeventries.sgml new file mode 100644 index 000000000..f67390dd7 --- /dev/null +++ b/chapter06/createdeventries.sgml @@ -0,0 +1,36 @@ +<sect2> +<title>Creating the /dev entries</title> + +<para> +Create the device files by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>cd /dev &&</userinput> + <userinput>./MAKEDEV -v generic</userinput> + +</literallayout></blockquote> + +<para> +The <quote>generic</quote> parameter passed to the MAKEDEV script +doesn't create all the devices you might need, such as audio devices, +hdc, hdd and ohters. If you seem to be missing something tell MAKEDEV to +create it. To create hdc replace generic with hdc. You can also add hdc +to generic, so you would execute <userinput>./MAKEDEV -v generic +hdc</userinput> to create the generic set of devices files, plus the +files you need to be able to access hdc (and hdc1, hdc2, etc) +</para> + +<para> +Please note that this script dates back from 1997 and therefore can be +outdated and not support newer hardware. If you need device files which +aren't known by this script please read the Documentation/devices.txt +file in a Linux source tree. This file lists all the major and minor +numbers for all the device files that the kernel knows about. With this +list you can create such device files yourself. See the mknod man page +for more information on how to make device files yourself. +</para> + +</sect2> + diff --git a/chapter06/creatingdev.sgml b/chapter06/creatingdev.sgml new file mode 100644 index 000000000..8ae652d64 --- /dev/null +++ b/chapter06/creatingdev.sgml @@ -0,0 +1,10 @@ +<sect1 id="ch06-createdev"> +<title>Creating device files</title> + +&c6-in-makedev-inst; +&c6-in-createdeventries; +&c6-in-makedev-exp; +&aa-makedev-desc; + +</sect1> + diff --git a/chapter06/diffutils-inst.sgml b/chapter06/diffutils-inst.sgml new file mode 100644 index 000000000..9b2dd5587 --- /dev/null +++ b/chapter06/diffutils-inst.sgml @@ -0,0 +1,17 @@ +<sect2> +<title>Installation of Diffutils</title> + +<para> +Install Diffutils by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/diffutils.sgml b/chapter06/diffutils.sgml new file mode 100644 index 000000000..dab50cf84 --- /dev/null +++ b/chapter06/diffutils.sgml @@ -0,0 +1,7 @@ +<sect1 id="diffutils"> +<title>Installing Diffutils</title> + +&c6-in-diffutils-inst; +&aa-diffutils-desc; + +</sect1> diff --git a/chapter06/e2fsprogs-inst.sgml b/chapter06/e2fsprogs-inst.sgml new file mode 100644 index 000000000..ca3324ce7 --- /dev/null +++ b/chapter06/e2fsprogs-inst.sgml @@ -0,0 +1,24 @@ +<sect2> +<title>Installation of E2fsprogs</title> + +<para> +Install E2fsprogs by running the following commands: +</para> + +<para> +Please note that the empty --with-root-prefix= option below is supposed +to be like this. I did not forget to supply a value there. +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr --with-root-prefix= \</userinput> + <userinput> --enable-elf-shlibs &&</userinput> + <userinput>make &&</userinput> + <userinput>make install &&</userinput> + <userinput>make install-libs</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/e2fsprogs.sgml b/chapter06/e2fsprogs.sgml new file mode 100644 index 000000000..880c3c524 --- /dev/null +++ b/chapter06/e2fsprogs.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-e2fsprogs"> +<title>Installing E2fsprogs</title> + +&c6-in-e2fsprogs-inst; +&aa-e2fsprogs-desc; + +</sect1> diff --git a/chapter06/ed-inst.sgml b/chapter06/ed-inst.sgml new file mode 100644 index 000000000..9e846d210 --- /dev/null +++ b/chapter06/ed-inst.sgml @@ -0,0 +1,18 @@ +<sect2> +<title>Installation of Ed</title> + +<para> +Install Ed by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install &&</userinput> + <userinput>mv /usr/bin/ed /usr/bin/red /bin</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/ed.sgml b/chapter06/ed.sgml new file mode 100644 index 000000000..776296b75 --- /dev/null +++ b/chapter06/ed.sgml @@ -0,0 +1,9 @@ +<sect1 id="ch06-ed"> +<title>Installing Ed</title> + +&c6-in-ed-inst; +&aa-ed-desc; + +</sect1> + + diff --git a/chapter06/file-inst.sgml b/chapter06/file-inst.sgml new file mode 100644 index 000000000..bcfc90cf1 --- /dev/null +++ b/chapter06/file-inst.sgml @@ -0,0 +1,18 @@ +<sect2> +<title>Installation of File</title> + +<para> +Install File by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr + --datadir=/usr/share/misc &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/file.sgml b/chapter06/file.sgml new file mode 100644 index 000000000..f1aa45af5 --- /dev/null +++ b/chapter06/file.sgml @@ -0,0 +1,8 @@ +<sect1 id="ch06-file"> +<title>Installing File</title> + +&c6-in-file-inst; +&aa-file-desc; + +</sect1> + diff --git a/chapter06/fileutils-inst.sgml b/chapter06/fileutils-inst.sgml new file mode 100644 index 000000000..d75acf173 --- /dev/null +++ b/chapter06/fileutils-inst.sgml @@ -0,0 +1,19 @@ +<sect2> +<title>Installation of Fileutils</title> + +<para> +Install Fileutils by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr --bindir=/bin \</userinput> + <userinput> --libexecdir=/usr/bin + &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/fileutils.sgml b/chapter06/fileutils.sgml new file mode 100644 index 000000000..5d07c2b6f --- /dev/null +++ b/chapter06/fileutils.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-fileutils"> +<title>Installing Fileutils</title> + +&c6-in-fileutils-inst; +&aa-fileutils-desc; + +</sect1> diff --git a/chapter06/findutils-inst.sgml b/chapter06/findutils-inst.sgml new file mode 100644 index 000000000..860c0d5b1 --- /dev/null +++ b/chapter06/findutils-inst.sgml @@ -0,0 +1,23 @@ +<sect2> +<title>Installing Findutils</title> + +<para> +Before you install Findutils you have to unpack the findutils patch +file. +</para> + +<para> +Install Findutils by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>patch -Np1 -i ../findutils-4.1.patch &&</userinput> + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make libexecdir=/usr/bin install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/findutils.sgml b/chapter06/findutils.sgml new file mode 100644 index 000000000..bb2ea9d7a --- /dev/null +++ b/chapter06/findutils.sgml @@ -0,0 +1,8 @@ +<sect1 id="ch06-findutils"> +<title>Installing Findutils</title> + +&c6-in-findutils-inst; +&aa-findutils-desc; + +</sect1> + diff --git a/chapter06/flex-inst.sgml b/chapter06/flex-inst.sgml new file mode 100644 index 000000000..4daaa3794 --- /dev/null +++ b/chapter06/flex-inst.sgml @@ -0,0 +1,17 @@ +<sect2> +<title>Installation of Flex</title> + +<para> +Install Flex by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/flex.sgml b/chapter06/flex.sgml new file mode 100644 index 000000000..adbbec451 --- /dev/null +++ b/chapter06/flex.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-flex"> +<title>Installing Flex</title> + +&c6-in-flex-inst; +&aa-flex-desc; + +</sect1> diff --git a/chapter06/gcc-inst.sgml b/chapter06/gcc-inst.sgml new file mode 100644 index 000000000..6014560a1 --- /dev/null +++ b/chapter06/gcc-inst.sgml @@ -0,0 +1,25 @@ +<sect2> +<title>Installation of GCC</title> + +<para> +After you unpacked the gcc-2.95.2 archive don't enter the newly created +gcc-2.95.2 directory but stay in the /usr/src directory. Install GCC by +running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>mkdir /usr/src/gcc-build &&</userinput> + <userinput>cd /usr/src/gcc-build &&</userinput> + <userinput>../gcc-2.95.2/configure --prefix=/usr \</userinput> + <userinput> --with-gxx-include-dir=/usr/include/g++ + \</userinput> + <userinput> --enable-shared + --enable-languages=c,c++ &&</userinput> + <userinput>make bootstrap &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/gcc.sgml b/chapter06/gcc.sgml new file mode 100644 index 000000000..08a1d3ec2 --- /dev/null +++ b/chapter06/gcc.sgml @@ -0,0 +1,8 @@ +<sect1 id="ch06-gcc"> +<title>Installing GCC</title> + +&c6-in-gcc-inst; +&aa-gcc-desc; + +</sect1> + diff --git a/chapter06/gettext-inst.sgml b/chapter06/gettext-inst.sgml new file mode 100644 index 000000000..aaa3bc125 --- /dev/null +++ b/chapter06/gettext-inst.sgml @@ -0,0 +1,18 @@ +<sect2> +<title>Installation of Gettext</title> + +<para> +Install Gettext by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install &&</userinput> + <userinput>mv /po-mode.el /usr/share/gettext</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/gettext.sgml b/chapter06/gettext.sgml new file mode 100644 index 000000000..ff63d451e --- /dev/null +++ b/chapter06/gettext.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-gettext"> +<title>Installing Gettext</title> + +&c6-in-gettext-inst; +&aa-gettext-desc; + +</sect1> diff --git a/chapter06/grep-inst.sgml b/chapter06/grep-inst.sgml new file mode 100644 index 000000000..d461dc799 --- /dev/null +++ b/chapter06/grep-inst.sgml @@ -0,0 +1,17 @@ +<sect2> +<title>Installation of Grep</title> + +<para> +Install Grep by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/grep.sgml b/chapter06/grep.sgml new file mode 100644 index 000000000..b658c5447 --- /dev/null +++ b/chapter06/grep.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-grep"> +<title>Installing Grep</title> + +&c6-in-grep-inst; +&aa-grep-desc; + +</sect1> diff --git a/chapter06/groff-inst.sgml b/chapter06/groff-inst.sgml new file mode 100644 index 000000000..62cff4745 --- /dev/null +++ b/chapter06/groff-inst.sgml @@ -0,0 +1,17 @@ +<sect2> +<title>Installation of Groff</title> + +<para> +Install Groff by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/groff.sgml b/chapter06/groff.sgml new file mode 100644 index 000000000..89c9d70cb --- /dev/null +++ b/chapter06/groff.sgml @@ -0,0 +1,8 @@ +<sect1 id="ch06-groff"> +<title>Installing Groff</title> + +&c6-in-groff-inst; +&aa-groff-desc; + +</sect1> + diff --git a/chapter06/gzip-inst.sgml b/chapter06/gzip-inst.sgml new file mode 100644 index 000000000..9eb3acdeb --- /dev/null +++ b/chapter06/gzip-inst.sgml @@ -0,0 +1,24 @@ +<sect2> +<title>Installation of Gzip</title> + +<para> +Install Gzip by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install &&</userinput> + <userinput>cd /usr/bin &&</userinput> + <userinput>mv gzip /bin &&</userinput> + <userinput>rm gunzip /bin/gunzip &&</userinput> + <userinput>cd /bin &&</userinput> + <userinput>ln -s gzip gunzip &&</userinput> + <userinput>ln -s gzip compress &&</userinput> + <userinput>ln -s gunzip uncompress</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/gzip.sgml b/chapter06/gzip.sgml new file mode 100644 index 000000000..ad4a5d939 --- /dev/null +++ b/chapter06/gzip.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-gzip"> +<title>Installing Gzip</title> + +&c6-in-gzip-inst; +&aa-gzip-desc; + +</sect1> diff --git a/chapter06/introduction.sgml b/chapter06/introduction.sgml new file mode 100644 index 000000000..016a6d9c1 --- /dev/null +++ b/chapter06/introduction.sgml @@ -0,0 +1,14 @@ +<sect1 id="ch06-introduction"> +<title>Introduction</title> + +<para> +The installation of all the software is pretty straightforward and +you'll think it's so much easier and shorter to give the generic +installation instructions for each package and only explain how to +install something if a certain package requires an alternate installation +method. Although I agree with you on that, I, however, choose to give the +full instructions for each and every package. This is simply to avoid any +possible confusion and errors. +</para> + +</sect1> diff --git a/chapter06/ldso-inst.sgml b/chapter06/ldso-inst.sgml new file mode 100644 index 000000000..a452716d7 --- /dev/null +++ b/chapter06/ldso-inst.sgml @@ -0,0 +1,40 @@ +<sect2> +<title>Installation of Ld.so</title> + +<para> +Install Ld.so by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>cd util &&</userinput> + <userinput>make ldd ldconfig &&</userinput> + <userinput>cp ldd /bin &&</userinput> + <userinput>cp ldconfig /sbin &&</userinput> + <userinput>cd ../man &&</userinput> + <userinput>cp ldd.1 /usr/share/man/man1 &&</userinput> + <userinput>cp *.8 /usr/share/man/man8 &&</userinput> + <userinput>rm /usr/bin/ldd &&</userinput> + <userinput>hash -r</userinput> + +</literallayout></blockquote> + +<para> +The <quote>hash -r</quote> command is to make bash forget about the +locations of previously executed commands. If you have executed ldd +before, bash expects it to be found in /usr/bin. Since we moved it to +/bin, the cache needs to be purged so bash can find it in /bin when you +want to execute it again. +</para> + +<para> +You might have noticed that we don't use the compiler optimizations for +this package. The reason is that overriding the CFLAGS variable causes +compilation problems. You would have to edit the Config.mk file and add +the proper values to the CFLAGS variable and then compile the package. +If you want to do that it's up to you. I don't think it's worth the +trouble though. The ld and ldd programs usually are only rarely used. +</para> + +</sect2> + diff --git a/chapter06/ldso.sgml b/chapter06/ldso.sgml new file mode 100644 index 000000000..adc561d71 --- /dev/null +++ b/chapter06/ldso.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-ldso"> +<title>Installing Ldso</title> + +&c6-in-ldso-inst; +&aa-ldso-desc; + +</sect1> diff --git a/chapter06/less-inst.sgml b/chapter06/less-inst.sgml new file mode 100644 index 000000000..6deacf428 --- /dev/null +++ b/chapter06/less-inst.sgml @@ -0,0 +1,17 @@ +<sect2> +<title>Installation of Less</title> + +<para> +Install Less by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr --bindir=/bin &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/less.sgml b/chapter06/less.sgml new file mode 100644 index 000000000..021f5746a --- /dev/null +++ b/chapter06/less.sgml @@ -0,0 +1,8 @@ +<sect1 id="ch06-less"> +<title>Installing Less</title> + +&c6-in-less-inst; +&aa-less-desc; + +</sect1> + diff --git a/chapter06/libtool-inst.sgml b/chapter06/libtool-inst.sgml new file mode 100644 index 000000000..1a651a38b --- /dev/null +++ b/chapter06/libtool-inst.sgml @@ -0,0 +1,17 @@ +<sect2> +<title>Installation of Libtool</title> + +<para> +Install Libtool by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/libtool.sgml b/chapter06/libtool.sgml new file mode 100644 index 000000000..36f65b72e --- /dev/null +++ b/chapter06/libtool.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-libtool"> +<title>Installing Libtool</title> + +&c6-in-libtool-inst; +&aa-libtool-desc; + +</sect1> diff --git a/chapter06/lilo-inst.sgml b/chapter06/lilo-inst.sgml new file mode 100644 index 000000000..7777ab547 --- /dev/null +++ b/chapter06/lilo-inst.sgml @@ -0,0 +1,30 @@ +<sect2> +<title>Installation of Lilo</title> + +<para> +Install Lilo by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +<para> +It appears that compilation of this package fails on certain machines +when the -g compiler flag is being used. If you can't compile Lilo at +all, please try removing the -g value from the CFLAGS variable in the +<filename>Makefile</filename> file. +</para> + +<para> +At the end of the installation the make install process will print a +message stating that you have to execute /sbin/lilo to complete the +update. Don't do this as it has no use. The /etc/lilo.conf isn't present +yet. We will complete the installation of lilo in chapter 8. +</para> + +</sect2> + diff --git a/chapter06/lilo.sgml b/chapter06/lilo.sgml new file mode 100644 index 000000000..363cae699 --- /dev/null +++ b/chapter06/lilo.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-lilo"> +<title>Installing Lilo</title> + +&c6-in-lilo-inst; +&aa-lilo-desc; + +</sect1> diff --git a/chapter06/m4-inst.sgml b/chapter06/m4-inst.sgml new file mode 100644 index 000000000..ef29a5d65 --- /dev/null +++ b/chapter06/m4-inst.sgml @@ -0,0 +1,57 @@ +<sect2> +<title>Installation of M4</title> + +<para> +Install M4 by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +<para> +If you're base system is running a 2.0 kernel and your Glibc version is +2.1 then you will most likely get problems executing M4 in the +chroot'ed environment due to incompatibilities between the M4 program, +Glibc-2.1 and the running 2.0 kernel. If you have problems executing the +m4 program in the chroot'ed environment (for example when you install +the autoconf and automake packages) you'll have to exit the chroot'ed +environment and compile M4 statically. This way the binary is linked +against Glibc 2.0 (if you run kernel 2.0 you're Glibc version is 2.0 as +well on a decent system. Kernel 2.0 and Glibc-2.1 don't mix very well) +and won't give you any problems. +</para> + +<para> +To create a statically linked version of M4, execute the following +commands: +</para> + +<blockquote><literallayout> + +<userinput>logout</userinput> +<userinput>cd $LFS/usr/src/m4-1.4</userinput> +<userinput>./configure --prefix=/usr --disable-nls</userinput> +<userinput>make LDFLAGS=-static</userinput> +<userinput>make prefix=$LFS/usr install</userinput> + +</literallayout></blockquote> + +<para> +Now you can re-enter the chroot'ed environment and continue with the +next package. If you wish to recompile M4 dynamically, you can do that +after you have rebooted into the LFS system rather than chroot'ed into it. +</para> + +<blockquote><literallayout> + + <userinput>chroot $LFS env -i HOME=/root bash --login</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/m4.sgml b/chapter06/m4.sgml new file mode 100644 index 000000000..9dd46d242 --- /dev/null +++ b/chapter06/m4.sgml @@ -0,0 +1,8 @@ +<sect1 id="ch06-m4"> +<title>Installing M4</title> + +&c6-in-m4-inst; +&aa-m4-desc; + +</sect1> + diff --git a/chapter06/make-inst.sgml b/chapter06/make-inst.sgml new file mode 100644 index 000000000..1f7e4e3d0 --- /dev/null +++ b/chapter06/make-inst.sgml @@ -0,0 +1,17 @@ +<sect2> +<title>Installation of Make</title> + +<para> +Install Make by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/make.sgml b/chapter06/make.sgml new file mode 100644 index 000000000..f69b8ce19 --- /dev/null +++ b/chapter06/make.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-make"> +<title>Installing Make</title> + +&c6-in-make-inst; +&aa-make-desc; + +</sect1> diff --git a/chapter06/makedev-exp.sgml b/chapter06/makedev-exp.sgml new file mode 100644 index 000000000..f3d4ff980 --- /dev/null +++ b/chapter06/makedev-exp.sgml @@ -0,0 +1,18 @@ +<sect2> +<title>Command explanations</title> + +<para> +<userinput>sed "s/# 9/9/" MAKEDEV >/dev/MAKEDEV:</userinput> By +default the Makedev script only creates the hda1-hda8 and hdb1-hdb8 +devices. By replacing "# 9" by "9"'s in the MAKEDEV script, it will +create hda1-hda20, hdb1-hdb20 and possible others (like hdc and hdd) +</para> + +<para> +<userinput>chmod 754 /dev/MAKEDEV:</userinput> This sets the permissions +of the MAKEDEV script to mode 754 which makes it executable only for +owner and group and readable by everybody. +</para> + +</sect2> + diff --git a/chapter06/makedev-inst.sgml b/chapter06/makedev-inst.sgml new file mode 100644 index 000000000..582598dbc --- /dev/null +++ b/chapter06/makedev-inst.sgml @@ -0,0 +1,16 @@ +<sect2> +<title>Installation of MAKEDEV</title> + +<para> +Install MAKEDEV by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>sed "s/# 9/9/" MAKEDEV >/dev/MAKEDEV &&</userinput> + <userinput>chmod 754 /dev/MAKEDEV</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/man-exp.sgml b/chapter06/man-exp.sgml new file mode 100644 index 000000000..396c47b6d --- /dev/null +++ b/chapter06/man-exp.sgml @@ -0,0 +1,21 @@ +<sect2> +<title>Command explanations</title> + +<para> +<userinput>-default:</userinput> This configures the man package with +default settings. +</para> + +<para> +<userinput>sed s/AWK=/"AWK=\/usr\/bin\/mawk"/ /usr/sbin/makewhatis > +makewhatis-new:</userinput> This modifies /usr/sbin/makewhatis's AWK +variable and fills in the location of the mawk program. +</para> + +<para> +<userinput>chmod 755 /usr/sbin/makewhatis:</userinput> This makes the +makewhatis script executable again. +</para> + +</sect2> + diff --git a/chapter06/man-inst.sgml b/chapter06/man-inst.sgml new file mode 100644 index 000000000..f2f3b3b63 --- /dev/null +++ b/chapter06/man-inst.sgml @@ -0,0 +1,22 @@ +<sect2> +<title>Installation of Man</title> + +<para> +Install Man by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure -default &&</userinput> + <userinput>make &&</userinput> + <userinput>make install &&</userinput> + <userinput>sed s/AWK=/"AWK=\/usr\/bin\/mawk"/ /usr/sbin/makewhatis + > makewhatis-new &&</userinput> + <userinput>mv makewhatis-new /usr/sbin/makewhatis && + </userinput> + <userinput>chmod 755 /usr/sbin/makewhatis</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/man.sgml b/chapter06/man.sgml new file mode 100644 index 000000000..ad1c1b563 --- /dev/null +++ b/chapter06/man.sgml @@ -0,0 +1,9 @@ +<sect1 id="ch06-man"> +<title>Installing Man</title> + +&c6-in-man-inst; +&c6-in-man-exp; +&aa-man-desc; + +</sect1> + diff --git a/chapter06/manpages-inst.sgml b/chapter06/manpages-inst.sgml new file mode 100644 index 000000000..9a03eb9d1 --- /dev/null +++ b/chapter06/manpages-inst.sgml @@ -0,0 +1,15 @@ +<sect2> +<title>Installation of Man-pages</title> + +<para> +Install Man-pages by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/manpages.sgml b/chapter06/manpages.sgml new file mode 100644 index 000000000..b86139c43 --- /dev/null +++ b/chapter06/manpages.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-manpages"> +<title>Installing Man-pages</title> + +&c6-in-manpages-inst; +&aa-manpages-desc; + +</sect1> diff --git a/chapter06/mawk-inst.sgml b/chapter06/mawk-inst.sgml new file mode 100644 index 000000000..735294010 --- /dev/null +++ b/chapter06/mawk-inst.sgml @@ -0,0 +1,21 @@ +<sect2> +<title>Installation of Mawk</title> + +<para> +Install Mawk by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure &&</userinput> + <userinput>make &&</userinput> + <userinput>make BINDIR=/usr/bin \</userinput> + <userinput> MANDIR=/usr/share/man/man1 install + &&</userinput> + <userinput>cd /usr/bin &&</userinput> + <userinput>ln -s mawk awk</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/mawk.sgml b/chapter06/mawk.sgml new file mode 100644 index 000000000..10e478342 --- /dev/null +++ b/chapter06/mawk.sgml @@ -0,0 +1,8 @@ +<sect1 id="ch06-mawk"> +<title>Installing Mawk</title> + +&c6-in-mawk-inst; +&aa-mawk-desc; + +</sect1> + diff --git a/chapter06/modutils-inst.sgml b/chapter06/modutils-inst.sgml new file mode 100644 index 000000000..d682fd2ab --- /dev/null +++ b/chapter06/modutils-inst.sgml @@ -0,0 +1,17 @@ +<sect2> +<title>Installation of Modutils</title> + +<para> +Install Modutils by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/modutils.sgml b/chapter06/modutils.sgml new file mode 100644 index 000000000..dbf94efd9 --- /dev/null +++ b/chapter06/modutils.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-modutils"> +<title>Installing Modutils</title> + +&c6-in-modutils-inst; +&aa-modutils-desc; + +</sect1> diff --git a/chapter06/ncurses-exp.sgml b/chapter06/ncurses-exp.sgml new file mode 100644 index 000000000..c9dc1c85a --- /dev/null +++ b/chapter06/ncurses-exp.sgml @@ -0,0 +1,21 @@ +<sect2> +<title>Command explanations</title> + +<para> +<userinput>--with-shared:</userinput> This enables the build of the +shared ncurses library files. +</para> + +<para> +<userinput>--disable-termcap:</userinput> Disabled the compilation of +termcap fallback support. +</para> + +<para> +<userinput>ln -s libncurses.a libcurses.a:</userinput> This creates the +/lib/libcurses.a symlink that for some reason isn't created during the +libncurses installation. +</para> + +</sect2> + diff --git a/chapter06/ncurses-inst.sgml b/chapter06/ncurses-inst.sgml new file mode 100644 index 000000000..4dd204e30 --- /dev/null +++ b/chapter06/ncurses-inst.sgml @@ -0,0 +1,21 @@ +<sect2> +<title>Installation of Ncurses</title> + +<para> +Install Ncurses by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr --libdir=/lib \</userinput> + <userinput> --with-shared + --disable-termcap &&</userinput> + <userinput>make &&</userinput> + <userinput>make install &&</userinput> + <userinput>cd /lib &&</userinput> + <userinput>ln -s libncurses.a libcurses.a</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/ncurses.sgml b/chapter06/ncurses.sgml new file mode 100644 index 000000000..2add05899 --- /dev/null +++ b/chapter06/ncurses.sgml @@ -0,0 +1,9 @@ +<sect1 id="ch06-ncurses"> +<title>Installing Ncurses</title> + +&c6-in-ncurses-inst; +&c6-in-ncurses-exp; +&aa-ncurses-desc; + +</sect1> + diff --git a/chapter06/patch-inst.sgml b/chapter06/patch-inst.sgml new file mode 100644 index 000000000..a63f77030 --- /dev/null +++ b/chapter06/patch-inst.sgml @@ -0,0 +1,17 @@ +<sect2> +<title>Installation of Patch</title> + +<para> +Install Patch by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/patch.sgml b/chapter06/patch.sgml new file mode 100644 index 000000000..682e14915 --- /dev/null +++ b/chapter06/patch.sgml @@ -0,0 +1,8 @@ +<sect1 id="ch06-patch"> +<title>Installing Patch</title> + +&c6-in-patch-inst; +&aa-patch-desc; + +</sect1> + diff --git a/chapter06/perl-inst.sgml b/chapter06/perl-inst.sgml new file mode 100644 index 000000000..ba8df4e61 --- /dev/null +++ b/chapter06/perl-inst.sgml @@ -0,0 +1,33 @@ +<sect2> +<title>Installation of Perl</title> + +<para> +Install Perl by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./Configure -Dprefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +<para> +If you don't want to answer all those questions Perl asks you, you can +add the -d option to the configure script and Perl will use all the +default settings. To avoid the Configure script asking you questions +after the config.sh file has been created you can pass the -e parameter +to perl as well. The commands with these parameters included will be: +</para> + +<blockquote><literallayout> + + <userinput>./Configure -Dprefix=/usr -d -e &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/perl.sgml b/chapter06/perl.sgml new file mode 100644 index 000000000..f85fbd948 --- /dev/null +++ b/chapter06/perl.sgml @@ -0,0 +1,8 @@ +<sect1 id="ch06-perl"> +<title>Installing Perl</title> + +&c6-in-perl-inst; +&aa-perl-desc; + +</sect1> + diff --git a/chapter06/procinfo-exp.sgml b/chapter06/procinfo-exp.sgml new file mode 100644 index 000000000..f08fe8383 --- /dev/null +++ b/chapter06/procinfo-exp.sgml @@ -0,0 +1,14 @@ +<sect2> +<title>Command explanations</title> + +<para> +<userinput>sed "s/XConsole/#XConsole/" Makefile | make -f -:</userinput> +This will comment out the XConsole variable in the Makefile and pipe the +output of sed (the modified Makefile) directly to the make program. This +is an alternate and more efficient way to direct the output to a file +and tell make to use that alternate file. The XConsole build is disabled +because it can't be build yet because we don't have X installed yet. +</para> + +</sect2> + diff --git a/chapter06/procinfo-inst.sgml b/chapter06/procinfo-inst.sgml new file mode 100644 index 000000000..e491563e8 --- /dev/null +++ b/chapter06/procinfo-inst.sgml @@ -0,0 +1,17 @@ +<sect2> +<title>Installation of Procinfo</title> + +<para> +Install Procinfo by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>sed "s/-ltermcap/-lncurses/" Makefile | make -f - + &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/procinfo.sgml b/chapter06/procinfo.sgml new file mode 100644 index 000000000..ebd030d9c --- /dev/null +++ b/chapter06/procinfo.sgml @@ -0,0 +1,8 @@ +<sect1 id="ch06-procinfo"> +<title>Installing Procinfo</title> + +&c6-in-procinfo-inst; +&c6-in-procinfo-exp; +&aa-procinfo-desc; + +</sect1> diff --git a/chapter06/procps-inst.sgml b/chapter06/procps-inst.sgml new file mode 100644 index 000000000..917def8c5 --- /dev/null +++ b/chapter06/procps-inst.sgml @@ -0,0 +1,19 @@ +<sect2> +<title>Installation of Procps</title> + +<para> +Install Procps by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>sed "s/XConsole/#XConsole/" Makefile | make -f - + &&</userinput> + <userinput>sed "s/XConsole/#XConsole/" Makefile | make -f - install + &&</userinput> + <userinput>mv /usr/bin/kill /bin</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/procps.sgml b/chapter06/procps.sgml new file mode 100644 index 000000000..188ce8a2a --- /dev/null +++ b/chapter06/procps.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-procps"> +<title>Installing Procps</title> + +&c6-in-procps-inst; +&aa-procps-desc; + +</sect1> diff --git a/chapter06/psmisc-inst.sgml b/chapter06/psmisc-inst.sgml new file mode 100644 index 000000000..bb827be7f --- /dev/null +++ b/chapter06/psmisc-inst.sgml @@ -0,0 +1,17 @@ +<sect2> +<title>Installation of Psmisc</title> + +<para> +Install Psmisc by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>sed "s/-ltermcap/-lncurses/" Makefile | make -f - + &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/psmisc.sgml b/chapter06/psmisc.sgml new file mode 100644 index 000000000..fd01ed448 --- /dev/null +++ b/chapter06/psmisc.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-psmisc"> +<title>Installing Psmisc</title> + +&c6-in-psmisc-inst; +&aa-psmisc-desc; + +</sect1> diff --git a/chapter06/removeoldnss.sgml b/chapter06/removeoldnss.sgml new file mode 100644 index 000000000..2a78aa25d --- /dev/null +++ b/chapter06/removeoldnss.sgml @@ -0,0 +1,17 @@ +<sect1 id="ch06-removeoldnss"> +<title>Removing old NSS library files</title> + +<para> +If you have copied the NSS Library files from your normal Linux system to the +LFS system (because your normal system runs glibc-2.0) it's time to remove +them now by running: +</para> + +<blockquote><literallayout> + + <userinput>rm /lib/libnss*.so.1 /lib/libnss*2.0*</userinput> + +</literallayout></blockquote> + +</sect1> + diff --git a/chapter06/sed-inst.sgml b/chapter06/sed-inst.sgml new file mode 100644 index 000000000..ef0146123 --- /dev/null +++ b/chapter06/sed-inst.sgml @@ -0,0 +1,17 @@ +<sect2> +<title>Installation of Sed</title> + +<para> +Install Sed by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr --bindir=/bin &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/sed.sgml b/chapter06/sed.sgml new file mode 100644 index 000000000..6de99ba4c --- /dev/null +++ b/chapter06/sed.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-sed"> +<title>Installing Sed</title> + +&c6-in-sed-inst; +&aa-sed-desc; + +</sect1> diff --git a/chapter06/shadowpwd-exp.sgml b/chapter06/shadowpwd-exp.sgml new file mode 100644 index 000000000..6db3fe8d4 --- /dev/null +++ b/chapter06/shadowpwd-exp.sgml @@ -0,0 +1,12 @@ +<sect2> +<title>Command explanations</title> + +<para> +<userinput>cp limits login.access and others:</userinput> These files +were not installed during the installation of the package so we copy +them manually as those files are used to configure authentication +details on your system. +</para> + +</sect2> + diff --git a/chapter06/shadowpwd-inst.sgml b/chapter06/shadowpwd-inst.sgml new file mode 100644 index 000000000..60650a5dd --- /dev/null +++ b/chapter06/shadowpwd-inst.sgml @@ -0,0 +1,22 @@ +<sect2> +<title>Installation of Shadow Password Suite</title> + +<para> +Install the Shadow Password Suite by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install &&</userinput> + <userinput>cd etc &&</userinput> + <userinput>cp limits login.access \</userinput> + <userinput> login.defs.linux shells suauth + /etc &&</userinput> + <userinput>mv /etc/login.defs.linux /etc/login.defs</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/shadowpwd.sgml b/chapter06/shadowpwd.sgml new file mode 100644 index 000000000..6f2f7d658 --- /dev/null +++ b/chapter06/shadowpwd.sgml @@ -0,0 +1,8 @@ +<sect1 id="ch06-shadow"> +<title>Installing Shadowpwd</title> + +&c6-in-shadowpwd-inst; +&c6-in-shadowpwd-exp; +&aa-shadowpwd-desc; + +</sect1> diff --git a/chapter06/shellutils-inst.sgml b/chapter06/shellutils-inst.sgml new file mode 100644 index 000000000..c3aa812f6 --- /dev/null +++ b/chapter06/shellutils-inst.sgml @@ -0,0 +1,20 @@ +<sect2> +<title>Installation of Sh-utils</title> + +<para> +Install Shellutils by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install &&</userinput> + <userinput>cd /usr/bin &&</userinput> + <userinput>mv date echo false pwd stty /bin &&</userinput> + <userinput>mv su true uname hostname /bin</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/shellutils.sgml b/chapter06/shellutils.sgml new file mode 100644 index 000000000..7fa710e07 --- /dev/null +++ b/chapter06/shellutils.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-shutils"> +<title>Installing Shellutils</title> + +&c6-in-shellutils-inst; +&aa-shellutils-desc; + +</sect1> diff --git a/chapter06/sysklogd-inst.sgml b/chapter06/sysklogd-inst.sgml new file mode 100644 index 000000000..8cab2809b --- /dev/null +++ b/chapter06/sysklogd-inst.sgml @@ -0,0 +1,18 @@ +<sect2> +<title>Installation of Sysklogd</title> + +<para> +Install Sysklogd by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>patch -Np1 -i ../sysklogd-1.4.patch + &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/sysklogd.sgml b/chapter06/sysklogd.sgml new file mode 100644 index 000000000..aabe1cb32 --- /dev/null +++ b/chapter06/sysklogd.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-sysklogd"> +<title>Installing Sysklogd</title> + +&c6-in-sysklogd-inst; +&aa-sysklogd-desc; + +</sect1> diff --git a/chapter06/sysvinit-inst.sgml b/chapter06/sysvinit-inst.sgml new file mode 100644 index 000000000..c8c581e95 --- /dev/null +++ b/chapter06/sysvinit-inst.sgml @@ -0,0 +1,37 @@ +<sect2> +<title>Installation of Sysvinit</title> + +<para> +When you change run levels (for example when you are going to shutdown +your system) the init program is going to send the TERM and KILL signals +to all the processes that init started. But init prints a message to the +screen saying "sending all processes the TERM signal" and the same for the +KILL signal. This implies that init sends this signal to all the currently +running processes, which isn't the case. To avoid this confusion you can +apply the sysvinit patch found on the LFS FTP site to sysvinit that changes +the sentence in the shutdown.c file and have it print "sending all +processes started by init the TERM signal". +</para> + +<para> +Apply the patch by running the following command: +</para> + +<blockquote><literallayout> + <userinput>patch -Np1 -i ../sysvinit-2.78.patch</userinput> +</literallayout></blockquote> + +<para> +Install Sysvinit by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>cd src &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/sysvinit.sgml b/chapter06/sysvinit.sgml new file mode 100644 index 000000000..c0b834d02 --- /dev/null +++ b/chapter06/sysvinit.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-sysvinit"> +<title>Installing Sysvinit</title> + +&c6-in-sysvinit-inst; +&aa-sysvinit-desc; + +</sect1> diff --git a/chapter06/tar-inst.sgml b/chapter06/tar-inst.sgml new file mode 100644 index 000000000..32ed15cd1 --- /dev/null +++ b/chapter06/tar-inst.sgml @@ -0,0 +1,39 @@ +<sect2> +<title>Installation of Tar</title> + +<para> +If you want to be able to directly use bzip2 files with tar, use the tar +patch avaiable from the LFS FTP site. This patch will add the -y option +to tar which works the same as the -z option to tar (which you can use +for gzip files). +</para> + +<para> +Apply the patch by running the following command: +</para> + +<blockquote><literallayout> + + <userinput>cd src &&</userinput> + <userinput>patch -i ../../gnutarpatch.txt &&</userinput> + <userinput>cd ..</userinput> + +</literallayout></blockquote> + +<para> +Install Tar by running the following commands from the toplevel +directory: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr --libexecdir=/usr/bin + &&</userinput> + <userinput>make &&</userinput> + <userinput>make install &&</userinput> + <userinput>mv /usr/bin/tar /bin</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/tar.sgml b/chapter06/tar.sgml new file mode 100644 index 000000000..d35c925ba --- /dev/null +++ b/chapter06/tar.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-tar"> +<title>Installing Tar</title> + +&c6-in-tar-inst; +&aa-tar-desc; + +</sect1> diff --git a/chapter06/texinfo-inst.sgml b/chapter06/texinfo-inst.sgml new file mode 100644 index 000000000..540f438a5 --- /dev/null +++ b/chapter06/texinfo-inst.sgml @@ -0,0 +1,17 @@ +<sect2> +<title>Installation of Texinfo</title> + +<para> +Install Texinfo by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/texinfo.sgml b/chapter06/texinfo.sgml new file mode 100644 index 000000000..77486cfdd --- /dev/null +++ b/chapter06/texinfo.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-texinfo"> +<title>Installing Texinfo</title> + +&c6-in-texinfo-inst; +&aa-texinfo-desc; + +</sect1> diff --git a/chapter06/textutils-inst.sgml b/chapter06/textutils-inst.sgml new file mode 100644 index 000000000..5ab867a01 --- /dev/null +++ b/chapter06/textutils-inst.sgml @@ -0,0 +1,18 @@ +<sect2> +<title>Installation of Textutils</title> + +<para> +Install Textutuils by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install &&</userinput> + <userinput>mv /usr/bin/cat /bin</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/textutils.sgml b/chapter06/textutils.sgml new file mode 100644 index 000000000..16a4f328f --- /dev/null +++ b/chapter06/textutils.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-textutils"> +<title>Installing Textutils</title> + +&c6-in-textutils-inst; +&aa-textutils-desc; + +</sect1> diff --git a/chapter06/utillinux-exp.sgml b/chapter06/utillinux-exp.sgml new file mode 100644 index 000000000..98633466e --- /dev/null +++ b/chapter06/utillinux-exp.sgml @@ -0,0 +1,14 @@ +<sect2> +<title>Command explanations</title> + +<para> +<userinput>HAVE_SLN=yes:</userinput> We don't build this program because +it already was installed by Glibc. +</para> + +<para><userinput>HAVE_TSORT=yes:</userinput> We don't build this program +either becuase it already was installed by Textutils. +</para> + +</sect2> + diff --git a/chapter06/utillinux-inst.sgml b/chapter06/utillinux-inst.sgml new file mode 100644 index 000000000..d75e3387f --- /dev/null +++ b/chapter06/utillinux-inst.sgml @@ -0,0 +1,23 @@ +<sect2> +<title>Installation of Util-Linux</title> + +<para> +Install Util-Linux by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>sed -e s/HAVE_SLN=no/HAVE_SLN=yes/ \</userinput> + <userinput> -e s/HAVE_TSORT=no/HAVE_TSORT=yes/ + \</userinput> + <userinput> MCONFIG > MCONFIG~ + &&</userinput> + <userinput>mv MCONFIG~ MCONFIG &&</userinput> + <userinput>./configure &&</userinput> + <userinput>make &&</userinput> + <userinput>make install</userinput> + +</literallayout></blockquote> + +</sect2> + diff --git a/chapter06/utillinux.sgml b/chapter06/utillinux.sgml new file mode 100644 index 000000000..cef9a71e5 --- /dev/null +++ b/chapter06/utillinux.sgml @@ -0,0 +1,8 @@ +<sect1 id="ch06-utillinux"> +<title>Installing Utillinux</title> + +&c6-in-utillinux-inst; +&c6-in-utillinux-exp; +&aa-utillinux-desc; + +</sect1> diff --git a/chapter06/vim-inst.sgml b/chapter06/vim-inst.sgml new file mode 100644 index 000000000..15e8158eb --- /dev/null +++ b/chapter06/vim-inst.sgml @@ -0,0 +1,39 @@ +<sect2> +<title>Installation of Vim</title> + +<para> +If you don't like vim to be installed as an editor on your LFS system, +you may want to download an alternative and install an editor you +prefer. There are a few hints how to install different editors +available at <ulink +url="http://cvs.linuxfromscratch.org/index.cgi/hints/editors/"> +http://cvs.linuxfromscratch.org/index.cgi/hints/editors/</ulink> +</para> + +<para> +You need to unpack both the vim-rt and vim-src packages to install Vim. +Both packages will unpack their files into the vim-5.7 directory. This +won't overwrite any files from the other package. So it doesn't mattter +in which order you do it. Install Vim by running the following commands: +</para> + +<blockquote><literallayout> + + <userinput>./configure --prefix=/usr &&</userinput> + <userinput>make &&</userinput> + <userinput>make install &&</userinput> + <userinput>cd /usr/bin &&</userinput> + <userinput>ln -s vim vi</userinput> + +</literallayout></blockquote> + +<para> +If you are planning on installing the X Window system on your LFS +system, you might want to re-compile Vim after you have installed X. Vim +comes with a nice GUI version of the editor which requires X and a few +other libraries to be installed. For more information read the Vim +documentation. +</para> + +</sect2> + diff --git a/chapter06/vim.sgml b/chapter06/vim.sgml new file mode 100644 index 000000000..4d20df4c3 --- /dev/null +++ b/chapter06/vim.sgml @@ -0,0 +1,7 @@ +<sect1 id="ch06-vim"> +<title>Installing Vim</title> + +&c6-in-vim-inst; +&aa-vim-desc; + +</sect1> |