| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 | <sect2><title> </title><para> </para></sect2><sect2><title>Installation of Bash</title><para>Before you attempt to install Bash, you have to check to make sureyour distribution has the <filename>/usr/lib/libcurses.a</filename> and<filename>/usr/lib/libncurses.a</filename> files. If your hostdistribution is an LFS system, all files will be present if you followedthe instructions of the book version you read exactly.</para><para>If both of the files are missing, you have to install the Ncursesdevelopment package. This package is often called something like <emphasis>ncurses-dev</emphasis> or <emphasis>ncurses-static</emphasis>. Ifthis package is already installed, or you just installed it, check for thetwo files again. Often the <filename>libcurses.a</filename> file is (still)missing. If so, create <filename>libcurses.a</filename> as a symlinkby running the following commands as user <emphasis>root:</emphasis></para><para><screen><userinput>ln -s libncurses.a /usr/lib/libcurses.a</userinput></screen></para><para>Now we can really start. Prepare Bash to be compiled by running thefollowing command:</para><para><screen><userinput>./configure --enable-static-link \    --prefix=$LFS/static --with-curses</userinput></screen></para><para>The meaning of the configure options are:</para><itemizedlist><listitem><para><userinput>--enable-static-link:</userinput> This optioncauses the <userinput>bash</userinput> program to be staticallylinked.</para></listitem><listitem><para><userinput>--prefix=$LFS/static</userinput> This optioninstalls all of Bash's files under the $LFS/static directory, which becomesthe /static directory when chroot'ed or reboot'ed intoLFS.</para></listitem><listitem><para><userinput>--with-curses:</userinput> This option causesbash to be linked against the curses library instead of the default termcaplibrary which is being phased out and has become obsolete. Note, on mostall Linux systems, the curses library is provided by the Ncursespackage (so in truth we link against the ncurses library).</para><para>It is not strictly necessary for the static bash to be linkedagainst libncurses (it can link against a static termcap for the timebeing just fine because we will reinstall Bash in Chapter 6 anyway,where we will use libncurses), but it's a good test to make sure thatthe Ncurses package has been installed properly. If not, you will get introuble later on in this chapter when you install the Texinfo package.That package requires ncurses, and termcap can't reliably be usedthere.</para></listitem></itemizedlist><para>Now we can continue with compiling Bash:</para><para><screen><userinput>make</userinput></screen></para><para>And finish off the installation by installing Bash:</para><para><screen><userinput>make install</userinput></screen></para><para>If the <userinput>make install</userinput> phase ends with somethingalong the lines of the following:</para><blockquote><screen>install-info: unknown option `--dir-file=/mnt/lfs/usr/info/dir' usage: install-info [--version] [--help] [--debug] [--maxwidth=nnn] 	[--section regexp title] [--infodir=xxx] [--align=nnn] 	[--calign=nnn] [--quiet] [--menuentry=xxx]	[--info-dir=xxx] 	[--keep-old] [--description=xxx] [--test]	[--remove] [--] filename make[1]: *** [install] Error 1 make[1]: Leaving directory `/mnt/lfs/usr/src/bash-&bash-version;/doc' make: [install] Error 2 (ignored)</screen></blockquote><para>then that means that you are probably using Debian-2.2 (potato), and that you have an old version of the texinfo package and the info pagescan't be installed at this time. This error is not a problem as the infopages will be installed when we recompile bash dynamically in Chapter 6, soyou can ignore it.  It is reported that the current release of Debian(3.0; also known as Woody) doesn't have this problem.</para></sect2>
 |