aboutsummaryrefslogtreecommitdiffstats
path: root/chapter05/bash-exp.xml
blob: c4343c27d0944ca2d221349f09bf8c2884a7de46 (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
<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 you need and will want to have bash available (it will be hard to 
execute the boot scripts without a shell for instance).</para>

<para><userinput>ln -sf 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>