aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06/bash.xml
blob: 7050853ff81d442c6b29b4a3fa243dd8da0f4996 (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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE sect1 PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
  <!ENTITY % general-entities SYSTEM "../general.ent">
  %general-entities;
]>
<sect1 id="ch-system-bash" xreflabel="Bash" role="wrap">
<title>Bash-&bash-version;</title>
<?dbhtml filename="bash.html"?>

<indexterm zone="ch-system-bash"><primary sortas="a-Bash">Bash</primary></indexterm>

<sect2 role="package"><title/>
<para>The Bash package contains the Bourne-Again SHell.</para>

<segmentedlist>
<segtitle>&buildtime;</segtitle>
<segtitle>&diskspace;</segtitle>
<seglistitem><seg>1.2 SBU</seg><seg>27 MB</seg></seglistitem>
</segmentedlist>

<segmentedlist>
<segtitle>Bash installation depends on</segtitle>
<seglistitem><seg>Binutils, Coreutils, Diffutils, Gawk,
GCC, Glibc, Grep, Make, Ncurses, Sed.</seg></seglistitem>
</segmentedlist>
</sect2>

<sect2 role="installation">
<title>Installation of Bash</title>

<para>Bash has a number of bugs in it that cause it to not behave the 
way it is expected at times. Fix this behavior with the following
patch:</para>

<screen><userinput>patch -Np1 -i ../bash-&bash-version;-gnu-fixes-2.patch</userinput></screen>

<para>Now prepare Bash for compilation:</para>

<screen><userinput>./configure --prefix=/usr --bindir=/bin \
    --without-bash-malloc --with-installed-readline</userinput></screen>

<para>Compile the package:</para>

<screen><userinput>make</userinput></screen>

<para>To test the results, issue:
<userinput>make tests</userinput>.</para>

<para>Install the package:</para>

<screen><userinput>make install</userinput></screen>

<para>Now run the newly compiled <command>bash</command> program (replacing the one you are currently executing):</para>

<screen><userinput>exec /bin/bash --login +h</userinput></screen>

<para>Note that the parameters used make it an interactive login instance
(so /etc/profile is read, if it exists, and the first found
~/.bash_profile, ~/.bash_login or and ~/.profile) and continue to
disable hashing so that new programs are found as they become
available.</para>

</sect2>


<sect2 id="contents-bash"><title>Contents of Bash</title>

<para><emphasis>Installed programs</emphasis>: bash, sh (link to bash) and
bashbug</para>

</sect2>


<sect2><title>Short descriptions</title>

<indexterm zone="ch-system-bash bash"><primary sortas="b-bash">bash</primary></indexterm>
<para id="bash"><command>bash</command> is a widely-used command interpreter. It
performs many kinds of expansions and substitutions on a given command line
before executing it, thus making this interpreter a powerful tool.</para>

<indexterm zone="ch-system-bash bashbug"><primary sortas="b-bashbug">bashbug</primary></indexterm>
<para id="bashbug"><command>bashbug</command> is a shell script to help the user
compose and mail bug reports concerning bash in a standard format.</para>

<indexterm zone="ch-system-bash sh"><primary sortas="b-sh">sh</primary></indexterm>
<para id="sh"><command>sh</command> is a symlink to the bash program. When invoked
as sh, bash tries to mimic the startup behavior of historical versions of sh as
closely as possible, while conforming to the POSIX standard as well.</para>

</sect2>



</sect1>