aboutsummaryrefslogtreecommitdiffstats
path: root/chapter05/bash-static-exp.sgml
blob: 8d627237e755dba3f8770c3ca289be033470aced (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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
<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 you chroot into $LFS or when you reboot 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: your /usr partition might be on a seperate 
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>--disable-nls:</userinput> This disables the build of NLS 
(National Language Support). It's only a waste of time for now as Bash 
will be reinstalled in the next chapter.
</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'; sh
being a symlink to the default system shell. Because programs and
scripts don't know what shell you use by default (could be bash, ksh,
korn, tch, csh and others) they use the common symlink sh which, if the 
system is properly setup, always points to the system's default shell.
</para>

<para>
The <userinput>&amp;&amp;</userinput>'s at the end of every line cause 
the next command only to be executed when the previous command exists 
with a return value of 0 indicating success. In case you copy&amp;paste 
all of these commands on the shell you want 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>