6.31.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
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.