Bash 软件包包含 Bourne-Again Shell。
首先,安装下面的补丁修复上游解决的一些 bug:
patch -Np1 -i ../bash-4.3.30-upstream_fixes-1.patch
准备编译 Bash:
./configure --prefix=/usr \ --bindir=/bin \ --docdir=/usr/share/doc/bash-4.3.30 \ --without-bash-malloc \ --with-installed-readline
新配置选项的含义:
--with-installed-readline
该选项告诉 Bash 使用系统中已经安装的 readline
库而不是使用自带的 readline 版本。
编译软件包:
make
如果不需要运行测试套件的话跳转到 “安装软件包 ”。
准备测试,确保 nobody
用户可以写源文件树:
chown -Rv nobody .
现在,以 nobody
用户身份运行测试:
su nobody -s /bin/bash -c "PATH=$PATH make tests"
安装软件包:
make install
运行新编译的 bash 程序(替换正在运行的那个):
exec /bin/bash --login +h
参数使 bash 进程成为一个可交互的登录 shell 并停用散列使得新程序可用的时候就能发现。