aboutsummaryrefslogtreecommitdiffstats
path: root/chapter06/bash.xml
blob: f2fcf435a452c9c920af1ef4d9648270ae2b9abc (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
95
96
97
98
99
100
101
102
103
104
105
106
107
<?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" role="content"><title>Contents of Bash</title>

<segmentedlist>
<segtitle>Installed programs</segtitle>
<seglistitem><seg>bash, sh (link to bash) and bashbug</seg></seglistitem>
</segmentedlist>

<variablelist><title>Short descriptions</title>

<varlistentry id="bash">
<term><command>bash</command></term>
<listitem>
<indexterm zone="ch-system-bash bash"><primary sortas="b-bash">bash</primary></indexterm>
<para>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>
</listitem>
</varlistentry>

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

<varlistentry id="sh">
<term><command>sh</command></term>
<listitem>
<indexterm zone="ch-system-bash sh"><primary sortas="b-sh">sh</primary></indexterm>
<para>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>
</listitem>
</varlistentry>
</variablelist>

</sect2>

</sect1>