1.13 获取Linux版的bash
1.13.1 问题
你想要获取 Linux 系统下的 bash,或确认已安装的 bash 是否为最新版。
1.13.2 解决方案
几乎所有的现代 Linux 发行版都包含了 bash。可以用发行版自带的打包工具来确认安装的是否为最新版。要想升级或安装应用程序,你必须是 root 身份、使用 sudo,或知道 root 密码。
有些 Linux 发行版(尤其是 Debian 家族)用 Debian Almquist shell 或 dash 作为 /bin/sh2,因为这两种 shell 更为小巧,而且运行速度比 bash 更快。对于那些假定 /bin/sh 指向 bash 的脚本,这种切换会造成很严重的混乱,因为凡是用到 bash 特性的地方全都会失效。更多细节参见 15.3 节。
2在这类发行版中,/bin/sh 是指向 Debian Almquist shell 或 dash 的符号链接。——译者注
对于 Debian 及其衍生出的系统(如 Ubuntu 和 Linux Mint),可以使用图形用户界面工具或命令行工具(如 apt-get、aptitude、apt)来确定 bash 的安装情况:
apt-get update && apt-get install bash bash-completion bash-doc
对于包括 Fedora、Community OS(CentOS)、Red Hat Enterprise Linux(RHEL)在内的 Red Hat 发行版,可以使用图形用户界面的 Add/Remove Application 工具。如果只有命令行,则可以使用下列命令:
yum update bash
对于 SUSE,可以使用 YaST 的图形用户界面或终端版本。你也可以使用命令行工具 rpm。
1.13.3 讨论
我们不可能涵盖所有的 Linux 发行版,甚至连主流发行版都很难全部讲到,因为它们的发展速度实在是太快了。好在这方面的多数发展是为了提高易用性,搞明白如何在所选用的发行版上安装软件应该不是难事。
如果用的是 LiveCD,鉴于其所采用的只读介质,软件更新和安装基本上不可能成功。如果这种发行版安装到了硬盘上,那么应该可以更新。
要是不确定特定 Linux 发行版中安装的是哪个版本的 bash,可以到 DistroWatch 网站上搜索该发行版并查询相关的软件包表格。例如,DistroWatch 网站中显示了表 1-1 中的内容。
表1-1:Linux Mint中的bash版本
软件包 |
18 sarah |
17.3 rosa |
16 petra |
15 olivia |
14 nadia |
13 maya |
12 lisa |
11 katya |
10 julia |
…… |
---|---|---|---|---|---|---|---|---|---|---|
bash (4.4) |
4.3 |
4.3 |
4.2 |
4.2 |
4.2 |
4.2 |
4.2 |
4.2 |
4.1 |
…… |
1.13.4 参考
- Debian 说明文档
- Wikipedia 中的 Almquist shell 页面和 Ubuntu Wiki 中的 DashAsBinSh 页面
- Fedora Project Wiki 中的 EPEL 页面
- SuSE 文档
- OpenSuSE 文档
- 1.11 节
- 1.12 节