6.33. Bash-3.2

The Bash package contains the Bourne-Again SHell.

User Notes: http://wiki.linuxfromscratch.org/hlfs/wiki/bash

6.33.1. Installation of Bash

This patch applies upstream bug fixes:

patch -Np1 -i ../bash-3.2-fixes-8.patch

This patch uses arc4random for the RANDOM environment variable when it is not initialized. This patch was submitted upstream, and is pending review:

patch -Np1 -i ../bash-3.2-arc4random-1.patch

Prepare Bash for compilation:

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

The meaning of the configure options:

--with-installed-readline

This option tells Bash to use the readline library that is already installed on the system rather than using its own readline version.

Compile the package:

make

To prepare the tests, ensure that the locale setting from our environment will be used and that the nobody user can read the standard input device and write to the sources tree:

sed 's/LANG/LC_ALL/' -i.orig tests/intl.tests
sed 's@tests@& </dev/tty@' -i.orig tests/run-test
chown -Rv nobody ./

Now, run the tests as the nobody user:

su-tools nobody -s /bin/bash -c "make tests"

Install the package:

make install

Add sh and bash to /etc/shells so the chsh program can function:

cat > /etc/shells << "EOF"
/bin/sh
/bin/bash
EOF

Run the newly compiled bash program (replacing the one that is currently being executed):

exec /bin/bash --login +h
[Note]

Note

The parameters used make the bash process an interactive login shell and continue to disable hashing so that new programs are found as they become available.

6.33.2. Contents of Bash

Installed programs: bash, bashbug, and sh (link to bash)

Short Descriptions

bash

A widely-used command interpreter; it performs many types of expansions and substitutions on a given command line before executing it, thus making this interpreter a powerful tool

bashbug

A shell script to help the user compose and mail standard formatted bug reports concerning bash

sh

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