6.29. Bash-4.1

Bash 软件包包含 Bourne-Again SHell.

预计编译时间: 1.4 SBU
所需磁盘空间: 35 MB

6.29.1. 安装 Bash

为编译 Bash 做准备:

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

配置选项的含义:

--htmldir

这个选项指定HTML格式的文档将被安装到哪个目录。

--with-installed-readline

这个选项是告诉 Bash 使用已经安装的系统的 readline 库,而不是它自己的 readline 版本。

编译这个软件包:

make

如果不执行测试,请直接跳到 “安装软件包” 。

要准备测试,请确保使用LFS环境的locale设置, 并且nobody 用户可以读取标准输入设备和写入源目录:

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

现在,以nobody 用户执行测试:

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

安装这个软件包:

make install

运行新编译的 bash 程序 (代替当前正在运行的):

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

注意

上面命令里使用的参数指示 bash 产生一个交互式的登陆 shell 并且继续禁用哈希功能, 以便新的程序一旦被安装就立即投入使用。

6.29.2. Bash 的内容

安装的程序: bash, bashbug, and sh (link to bash)

简要描述

bash

一个广泛使用的命令解释器; 它能在执行命令前解释非常复杂的命令行参数, 这使它成为一个强大的工具。

bashbug

帮助用户用标准格式编写和提交有关 bash的bug报告的脚本。

sh

指向 bash 的符号连接。当运行 sh的时候,bash会尽量模仿老的sh历史环境来运行,同时遵循 POSIX 标准。