Chapter 6 cleanup after conversions.

git-svn-id: http://svn.linuxfromscratch.org/LFS/trunk/BOOK@2392 4aa44e1e-78dd-0310-a6d2-fbcd4c07a689
This commit is contained in:
Timothy Bauscher 2003-01-19 15:36:47 +00:00
parent 25ef3c3d77
commit 99302877e2
18 changed files with 144 additions and 207 deletions

View File

@ -4,8 +4,7 @@
<para>Prepare Autoconf to be compiled:</para>
<para><screen><userinput>
./configure --prefix=/usr</userinput></screen></para>
<para><screen><userinput>./configure --prefix=/usr</userinput></screen></para>
<para>Continue with compiling the package:</para>

View File

@ -5,16 +5,14 @@
<para>Prepare Automake to be compiled:</para>
<para><screen><userinput>
./configure --prefix=/usr</userinput></screen></para>
<para><screen><userinput>./configure --prefix=/usr</userinput></screen></para>
<para>Continue with compiling and installing the package:</para>
<para><screen><userinput>make install</userinput></screen></para>
<para>Create necessary symbolic link:</para>
<para>Create a necessary symbolic link:</para>
<para><screen><userinput>
ln -s automake-1.7 /usr/share/automake</userinput></screen></para>
<para><screen><userinput>ln -s automake-1.7 /usr/share/automake</userinput></screen></para>
</sect2>

View File

@ -5,8 +5,7 @@
<para>Prepare Bash to be compiled:</para>
<para><screen><userinput>
./configure --prefix=/usr --bindir=/bin</userinput></screen></para>
<para><screen><userinput>./configure --prefix=/usr --bindir=/bin</userinput></screen></para>
<para>Continue with compiling the package:</para>

View File

@ -20,8 +20,7 @@ you decide to skip this.</para>
<para>And finish off installing the package:</para>
<para><screen><userinput>
make PREFIX=/usr install</userinput></screen></para>
<para><screen><userinput>make PREFIX=/usr install</userinput></screen></para>
</sect2>

View File

@ -3,38 +3,34 @@
<sect2>
<title>Installation of Bzip2</title>
<para>Compile the package:</para>
<para><screen><userinput>
make -f Makefile-libbz2_so &amp;&amp;
make
</userinput></screen></para>
<para>Begin compiling the package:</para>
<para>And finish off installing the package:</para>
<para><screen><userinput>make -f Makefile-libbz2_so</userinput></screen></para>
<para><screen><userinput>
make install</userinput></screen></para>
<para>The <emphasis>-f</emphasis> flag will cause bzip2 to be built
using a different <filename>Makefile</filename> file, in this case the
<filename>Makefile-libbz2_so</filename> file, which creates a dynamic
<filename>libbz2.so</filename> library and links the bzip2 utilities
against it.</para>
<para>Copy the Bzip2 binary into the /bin directory, make some
neccessary symbolic links and clean up.</para>
<para>Continue compiling the package:</para>
<para><screen><userinput>
cp bzip2-shared /bin/bzip2 &amp;&amp;
<para><screen><userinput>make</userinput></screen></para>
<para>Install the package:</para>
<para><screen><userinput>make install</userinput></screen></para>
<para>Copy the Bzip2 binary into the <filename
class="directory">/bin</filename> directory, make some
neccessary symbolic links and clean up.</para>
<para><screen><userinput>cp bzip2-shared /bin/bzip2 &amp;&amp;
cp -a libbz2.so* /lib &amp;&amp;
ln -s ../../lib/libbz2.so.1.0 /usr/lib/libbz2.so &amp;&amp;
rm /usr/bin/{bunzip2,bzcat,bzip2} &amp;&amp;
mv /usr/bin/{bzip2recover,bzless,bzmore} /bin &amp;&amp;
ln -s bzip2 /bin/bunzip2 &amp;&amp;
ln -s bzip2 /bin/bzcat
</userinput></screen></para>
</sect2>
<sect2>
<title>Command explanations</title>
<para><userinput>make -f Makefile-libbz2_so:</userinput> This will cause bzip2
to be built 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>
ln -s bzip2 /bin/bzcat</userinput></screen></para>
</sect2>

View File

@ -5,8 +5,7 @@
<para>Prepare Diffutils to be compiled:</para>
<para><screen><userinput>
./configure --prefix=/usr</userinput></screen></para>
<para><screen><userinput>./configure --prefix=/usr</userinput></screen></para>
<para>Continue with compiling the package:</para>

View File

@ -3,49 +3,54 @@
<sect2>
<title>Installation of E2fsprogs</title>
<para>It is recommended to build E2fsprogs outside of the
source tree. Create the build directory:</para>
<para><screen><userinput>mkdir ../e2fsprogs-build &amp;&amp;
cd ../e2fsprogs-build</userinput></screen></para>
<para>Prepare E2fsprogs to be compiled:</para>
<para><screen><userinput>
mkdir ../e2fsprogs-build &amp;&amp;
cd ../e2fsprogs-build &amp;&amp;
../e2fsprogs-&e2fsprogs-version;/configure --prefix=/usr --with-root-prefix="" \
&nbsp;&nbsp;&nbsp;&nbsp;--enable-elf-shlibs
</userinput></screen></para>
<para><screen><userinput>../e2fsprogs-&e2fsprogs-version;/configure --prefix=/usr --with-root-prefix="" \
&nbsp;&nbsp;&nbsp;&nbsp;--enable-elf-shlibs</userinput></screen></para>
<para>The meaning of the configure options are:</para>
<itemizedlist>
<listitem><para><userinput>--with-root-prefix="":</userinput> This option
is used because of the e2fsprogs Makefile. Some programs are essential for
system use when, for example, <filename class="directory">/usr</filename>
isn't mounted (like the e2fsck program). These programs and libraries,
therefore, belong in directories like <filename
class="directory">/lib</filename> and <filename
class="directory">/sbin</filename>. If this option isn't passed to
E2fsprogs's configure, the programs are placed in the <filename
class="directory">/usr</filename> directory, which is not what we
want.</para></listitem>
<listitem><para><userinput>--enable-elf-shlibs:</userinput> This creates
the shared libraries which some programs in this package make use
of.</para></listitem>
</itemizedlist>
<para>Continue with compiling the package:</para>
<para><screen><userinput>make</userinput></screen></para>
<para>And finish off installing the package:</para>
<para>Begin installing the package:</para>
<para><screen><userinput>
make install &amp;&amp;
make install-libs &amp;&amp;
install-info /usr/share/info/libext2fs.info /usr/share/info/dir
</userinput></screen></para>
<para><screen><userinput>make install</userinput></screen></para>
</sect2>
<para>Install the shared libraries:</para>
<sect2>
<title>Command explanations</title>
<para><screen><userinput>make install-libs</userinput></screen></para>
<para><userinput>--with-root-prefix="":</userinput> The
reason for supplying this option is because of the setup of the
e2fsprogs Makefile. Some programs are essential for system use when,
for example, /usr isn't mounted (like the e2fsck program). These
programs and libraries, therefore, belong in directories like /lib and
/sbin. If this option isn't passed to E2fsprogs's configure, it places
these programs in /usr, which is not what we want.</para>
<para>Update the <filename>/usr/share/info/dir</filename> file to
include E2fsprogs' info pages in the index:</para>
<para><userinput>--enable-elf-shlibs:</userinput> This creates shared
libraries that some programs in this package can make use of.</para>
<para><userinput>make install-libs:</userinput> This installs the shared
libraries that are built.</para>
<para><userinput>install-info...:</userinput> This updates the
<filename>/usr/share/info/dir</filename> file to include this package's
info pages to the index.</para>
<para><screen><userinput>install-info /usr/share/info/libext2fs.info /usr/share/info/dir</userinput></screen></para>
</sect2>

View File

@ -9,16 +9,20 @@ file. This happens rarely because diff-based patches are preferred these
days.</para></note>
<para>This package requires its patch to be applied before you can
install it.</para>
install it. This patch fixes a symlink vulnerability in
<userinput>ed</userinput>. The <userinput>ed</userinput> executable
creates files in <filename class="directory">/tmp</filename> with
predictable names. By using various symlink attacks, it is possible
to have ed write to files it should not, change the permissions of
files, etc.</para>
<para><screen><userinput>
patch -Np1 -i ../ed-&ed-patch-version;.patch
</userinput></screen></para>
<para>Apply the patch:</para>
<para><screen><userinput>patch -Np1 -i ../ed-&ed-patch-version;.patch</userinput></screen></para>
<para>Prepare Ed to be compiled:</para>
<para><screen><userinput>
./configure --prefix=/usr</userinput></screen></para>
<para><screen><userinput>./configure --prefix=/usr</userinput></screen></para>
<para>Continue with compiling the package:</para>
@ -28,25 +32,12 @@ patch -Np1 -i ../ed-&ed-patch-version;.patch
<para><screen><userinput>make install</userinput></screen></para>
<para>Move the Ed binaries to the root partition.</para>
<para>We need to move the Ed binaries to the <filename
class="directory">/bin</filename> directory so they may be used in
the event that the <filename class="directory">/usr</filename>
partition is unavailable.</para>
<para><screen><userinput>mv /usr/bin/{ed,red} /bin
</userinput></screen></para>
</sect2>
<sect2>
<title>Command explanations</title>
<para><userinput>patch -Np1 -i ../ed-&ed-version;.patch:</userinput> This
patch fixes a symlink vulnerability in ed. The ed executable creates files
in /tmp with predictable names. By using various symlink attacks, it is
possible to have ed write to files it should not, change the permissions
of files, etc.</para>
<para><userinput>mv /usr/bin/{ed,red} /bin:</userinput>
The Ed binaries are moved to the /bin directory so they may be used in
the event that the /usr partition is unavailable.</para>
<para><screen><userinput>mv /usr/bin/{ed,red} /bin</userinput></screen></para>
</sect2>

View File

@ -5,9 +5,7 @@
<para>Prepare File to be compiled:</para>
<para><screen><userinput>
./configure --prefix=/usr --datadir=/usr/share/misc
</userinput></screen></para>
<para><screen><userinput>./configure --prefix=/usr --datadir=/usr/share/misc</userinput></screen></para>
<para>Continue with compiling the package:</para>

View File

@ -5,9 +5,7 @@
<para>Prepare Grep to be compiled:</para>
<para><screen><userinput>
./configure --prefix=/usr --bindir=/bin
</userinput></screen></para>
<para><screen><userinput>./configure --prefix=/usr --bindir=/bin</userinput></screen></para>
<para>Continue with compiling the package:</para>

View File

@ -3,46 +3,38 @@
<sect2>
<title>Installation of Gzip</title>
<para>A buffer overflow may occur if <userinput>gzip</userinput>
encounters a filename over 1020 characters in length. Apply the
patch to fix this problem:</para>
<para><screen><userinput>patch -Np1 -i ../gzip-&gzip-patch-version;.patch</userinput></screen></para>
<para>Prepare Gzip to be compiled:</para>
<para><screen><userinput>
patch -Np1 -i ../gzip-&gzip-patch-version;.patch &amp;&amp;
./configure --prefix=/usr &amp;&amp;
cp gzexe.in{,.backup} &amp;&amp;
sed 's%"BINDIR"%/bin%' gzexe.in.backup &gt; gzexe.in
</userinput></screen></para>
<para><screen><userinput>./configure --prefix=/usr</userinput></screen></para>
<para>Change the default installation directory for Gzip so it will
be installed in the <filename class="directory">/bin</filename>
directory:</para>
<para><screen><userinput>cp gzexe.in{,.backup} &amp;&amp;
sed 's%"BINDIR"%/bin%' gzexe.in.backup &gt; gzexe.in</userinput></screen></para>
<para>Continue with compiling the package:</para>
<para><screen><userinput>make</userinput></screen></para>
<para>And finish off installing the package:</para>
<para>Install the package:</para>
<para><screen><userinput>make install</userinput></screen></para>
<para>Move the Gzip binaries to the root partition:</para>
<para>Move the Gzip binaries to the <filename
class="directory">/bin</filename> directory:</para>
<para><screen><userinput>
mv /usr/bin/gzip /bin &amp;&amp;
<para><screen><userinput>mv /usr/bin/gzip /bin &amp;&amp;
rm /usr/bin/{gunzip,zcat} &amp;&amp;
ln -s gzip /bin/gunzip &amp;&amp;
ln -s gzip /bin/zcat &amp;&amp;
ln -s gunzip /bin/uncompress</userinput></screen></para>
</sect2>
<sect2>
<title>Command explanations</title>
<para><userinput>patch -Np1 -i ../gzip-1.2.4b.patch:</userinput>
This patch fixes a buffer overflow that occurs when a filename is
longer than 1020 characters.</para>
<para><userinput>
cp gzexe.in{,.backup} &amp;&amp;
sed 's%"BINDIR"%/bin%' gzexe.in.backup &gt; gzexe.in</userinput>
Change the default installation directory for Gzip so it will be
installed on the root partition.</para>
</sect2>

View File

@ -5,16 +5,13 @@
<para>Kbd doesn't install some of its utilities (setlogcons, setvesablank
and getunimap) by default. The kbd patch enables the compilation of these
utilities.</para>
<para>Apply the patch by running the following command:</para>
utilities. Apply the patch:</para>
<para><screen><userinput>patch -Np1 -i ../kbd-&kbd-patch-version;.patch</userinput></screen></para>
<para>Prepare Kbd to be compiled:</para>
<para><screen><userinput>
./configure</userinput></screen></para>
<para><screen><userinput>./configure</userinput></screen></para>
<para>Continue with compiling the package:</para>
@ -26,12 +23,3 @@ utilities.</para>
</sect2>
<sect2>
<title>Command explanations</title>
<para><userinput>patch -Np1 -i ../kbd-&kbd-patch-version;.patch</userinput>:
This patch changes a Makefile so some utilities that are not installed by
default (setlogcons, setvesablank and getunimap) are installed.</para>
</sect2>

View File

@ -3,17 +3,9 @@
<sect2>
<title>Installation of Libtool</title>
<para>This package requires its patch to be applied before you can
install it. Issue the following command to apply the patch:</para>
<para><screen><userinput>
patch -Np1 -i ../libtool-&libtool-patch-version;.patch &amp;&amp;
</userinput></screen></para>
<para>Prepare Libtool to be compiled:</para>
<para><screen><userinput>
./configure --prefix=/usr</userinput></screen></para>
<para><screen><userinput>./configure --prefix=/usr</userinput></screen></para>
<para>Continue with compiling the package:</para>
@ -24,12 +16,3 @@ patch -Np1 -i ../libtool-&libtool-patch-version;.patch &amp;&amp;
<para><screen><userinput>make install</userinput></screen></para>
</sect2>
<sect2>
<title>Command explanations</title>
<para><userinput>patch -Np1 -i ../libtool-&libtool-patch-version;.patch</userinput>:
This patch fixes an incompatibility between Autoconf 2.53 and Libtool 1.4.x.
Specifically, the deprecated m4 macro AC_PROVIDE_AC_LIBTOOL is replaced by
AC_PROVIDE_ELSEIF.</para>
</sect2>

View File

@ -16,14 +16,14 @@ GRUB, which is available at <ulink url="&hints-root;grub-howto.txt"/>.</para>
<para><screen><userinput>make install</userinput></screen></para>
<para>It appears that compilation of this package fails on certain machines
when the -g compiler flag is used. If you can't compile Lilo at
all, you should try to remove the -g value from the CFLAGS variable in the
<filename>Makefile</filename> file.</para>
when the <emphasis>-g</emphasis> compiler flag is used. If you can't compile
Lilo at all, you should try to remove the <emphasis>-g</emphasis> 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 /sbin/lilo has to be executed 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>
<para>At the end of the installation, a message will appear stating that
<filename>/sbin/lilo</filename> has to be executed. This is pointless because
the <filename>/etc/lilo.conf</filename> file isn't present yet. We will
complete the installation of lilo in Chapter 8.</para>
<para>The standard LILO prompt, or menu, may be replaced by the
LFS logo or any logo you like. Martin Imobersteg has written a

View File

@ -15,11 +15,11 @@
<para><screen><userinput>make install</userinput></screen></para>
<para>By default <filename>/usr/bin/make</filename> is installed setgid
<para>By default, <filename>/usr/bin/make</filename> is installed setgid
kmem. This is needed on some systems so it can check the load average by
using <filename>/dev/kmem</filename>. However, on Linux systems, setgid
kmem is not needed, so we remove this from our <filename>make</filename>
binary. This also fixes problems with the <filename>make</filename>
binary. This also fixes problems with <filename>make</filename>
ignoring certain variables like <emphasis>LD_LIBRARY_PATH</emphasis>.</para>
<para><screen><userinput>chgrp root /usr/bin/make &amp;&amp;

View File

@ -3,17 +3,37 @@
<sect2>
<title>Installation of Man</title>
<para>There are three patches for Man. The first patch comments out one of the
lines in the <filename>man.conf</filename> file (MANPATH /usr/man) to
prevent redundant results when using programs such as
<userinput>whatis</userinput>:</para>
<para><screen><userinput>patch -Np1 -i ../man-&man-manpath-patch-version;-manpath.patch</userinput></screen></para>
<para>The second patch adds the <emphasis>-R</emphasis> option to the
<emphasis>PAGER</emphasis> variable so that escape sequences are
handled properly:</para>
<para><screen><userinput>patch -Np1 -i ../man-&man-pager-patch-version;-pager.patch</userinput></screen></para>
<para>The last patch prevents problem when man pages not formatted
with more than 80 columns are used in conjunction with recent releases
of <userinput>groff</userinput>:</para>
<para><screen><userinput>patch -Np1 -i ../man-&man-80cols-patch-version;-80cols.patch</userinput></screen></para>
<para>The paths to some programs are written into man's files.
Unfortunately, the configure script picks the last location in PATH
rather than the first place a program is found. By appending
<emphasis>/usr/bin:/bin</emphasis> to PATH for the
<userinput>./configure</userinput> command, we ensure that man doesn't
use the programs in the <filename class="directory">/static</filename>
directory.</para>
<para>Prepare Man to be compiled:</para>
<para><screen><userinput>
patch -Np1 -i ../man-&man-80cols-patch-version;-80cols.patch &amp;&amp;
patch -Np1 -i ../man-&man-manpath-patch-version;-manpath.patch &amp;&amp;
patch -Np1 -i ../man-&man-pager-patch-version;-pager.patch &amp;&amp;
PATH=$PATH:/usr/bin:/bin \
&nbsp;&nbsp;&nbsp;&nbsp;./configure -default -confdir=/etc
</userinput></screen></para>
<para><screen><userinput>PATH=$PATH:/usr/bin:/bin \
&nbsp;&nbsp;&nbsp;&nbsp;./configure -default -confdir=/etc</userinput></screen></para>
<para>Continue with compiling the package:</para>
@ -33,24 +53,3 @@ and compression issues for man pages.</para>
</sect2>
<sect2>
<title>Command explanations</title>
<para><userinput>patch...:</userinput>
These three patches comment out one of the lines in the
<filename>man.conf</filename> file (MANPATH /usr/man) because it will create
redundant results when using programs like <userinput>whatis</userinput>.
It also adds the <emphasis>-R</emphasis> option to the
<emphasis>PAGER</emphasis> variable so man pages are displayed properly.
Lastly, the patch fixes the problem where man pages are not formatted with
more than 80 columns when used with the recent groff versions.</para>
<para><userinput>PATH=$PATH:/usr/bin:/bin ./configure -default</userinput>:
The paths to some programs get written into man's files. Unfortunately, the
configure script picks the last location in PATH rather than the first
where a program is found. By appending /usr/bin:/bin to PATH for the
./configure command, we make sure that man doesn't use the /static versions
of our programs.</para>
</sect2>

View File

@ -5,27 +5,20 @@
<para>Prepare Texinfo to be compiled:</para>
<para><screen><userinput>
./configure --prefix=/usr</userinput></screen></para>
<para><screen><userinput>./configure --prefix=/usr</userinput></screen></para>
<para>Continue with compiling the package:</para>
<para><screen><userinput>make</userinput></screen></para>
<para>And finish off installing the package:</para>
<para>Install the package:</para>
<para><screen><userinput>make install</userinput></screen></para>
<para><screen><userinput>
make TEXMF=/usr/share/texmf install-tex </userinput></screen></para>
</sect2>
<sect2>
<title>Command explanations</title>
<para>Install the texinfo components which belong in a TeX
installation:</para>
<para><userinput>make TEXMF=/usr/share/texmf install-tex:</userinput>
This installs the texinfo components that belong in a TeX
installation. Although TeX isn't installed on LFS, it's installed here
to complete the texinfo installation. </para>
<para><screen><userinput>make TEXMF=/usr/share/texmf install-tex</userinput></screen></para>
</sect2>

View File

@ -4,8 +4,8 @@
<!ENTITY book SYSTEM "book/book.xml">
<!ENTITY version "20030118">
<!ENTITY releasedate "January 18th, 2003">
<!ENTITY version "20030119">
<!ENTITY releasedate "January 19th, 2003">
<!ENTITY ftp-root "ftp://ftp.linuxfromscratch.org">
<!ENTITY http-root "http://ftp.linuxfromscratch.org">