aboutsummaryrefslogtreecommitdiffstats
path: root/chapter05/bash-exp.xml
blob: 0a6f057514cf9dad298b8165343b5e06fadace77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
<sect2>
<title>Command explanations</title>

<para><userinput>--enable-static-link:</userinput> This configure 
option causes Bash to be linked statically</para>

<para><userinput>--prefix=$LFS/usr:</userinput> This configure option installs 
all of Bash's files under the $LFS/usr directory, which becomes the /usr 
directory after the user chroot'ed into $LFS or when he rebooted 
the system into LFS.</para>

<para><userinput>--bindir=$LFS/bin:</userinput> This installs the executable 
files in $LFS/bin. We do this because we want bash to be in /bin, not in 
/usr/bin. One reason being: the /usr partition might be on a separate 
partition which has to be mounted at some point. Before that partition is 
mounted a user needs and will want to have bash available (it will be hard to 
execute the boot scripts without a shell for instance).</para>

<para><userinput>--with-curses:</userinput> This causes Bash to be linked 
against the curses library instead of the default termcap library which 
is becoming obsolete.</para>

<para><userinput>ln -s bash sh:</userinput> This command creates the sh
symlink that points to bash. Most scripts run themselves via 'sh'
(invoked by the #!/bin/sh as the first line in the scripts) which
invokes a special bash mode. Bash will then behave (as closely as
possible) as the original Bourne shell.</para>

<para>The <userinput>&amp;&amp;</userinput>'s at the end of every line cause 
the next command to be executed only if the previous command exists 
with a return value of 0 indicating success. In case all of these 
commands are copy&amp;pasted 
on the shell, is is important to be ensured that if 
./configure fails, make isn't being executed and, likewise, if make fails, 
that make install isn't being executed, and so forth.</para>

</sect2>