news 2026/4/23 16:06:43

如何升级Bash

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何升级Bash

本文描述如何将Bash版本从5.1.8升级到最新的5.3。

💡 Bash 5.1.8 是系统默认安装版本,可以理解为是稳定和成熟的版本。本文只探讨升级过程,对于生产环境,不建议升级。

我的Linux环境为Oracle Linux 9.7, Bash版本5.1.8:

$echo$MACHTYPEx86_64-redhat-linux-gnu $cat/etc/redhat-release Red Hat Enterprise Linux release9.7(Plow)$bash--version GNU bash, version5.1.8(1)-release(x86_64-redhat-linux-gnu)Copyright(C)2020Free Software Foundation, Inc. License GPLv3+: GNU GPL version3or later<http://gnu.org/licenses/gpl.html>This isfreesoftware;you arefreeto change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

从安装包中查看当前Bash的版本信息:

$ yum list installed|grepbashbash.x86_645.1.8-9.el9 @System $ yum infobashLast metadata expiration check:0:01:51 ago on Fri16Jan202606:48:42 AM UTC. Installed Packages Name:bashVersion:5.1.8 Release:9.el9 Architecture:x86_64 Size:7.4M Source:bash-5.1.8-9.el9.src.rpm Repository:@System Summary:The GNU Bourne Again shell URL:https://www.gnu.org/software/bash License:GPLv3+ Description:The GNU Bourne Again shell(Bash)is a shell orcommandlanguage:interpreter that is compatible with the Bourne shell(sh). Bash:incorporates useful features from the Korn shell(ksh)and the C shell:(csh). Mostshscripts can be run bybashwithout modification. Available Packages Name:bashVersion:5.1.8 Release:9.el9 Architecture:src Size:10M Source:None Repository:ol9_baseos_latest Summary:The GNU Bourne Again shell URL:https://www.gnu.org/software/bash License:GPLv3+ Description:The GNU Bourne Again shell(Bash)is a shell orcommandlanguage:interpreter that is compatible with the Bourne shell(sh). Bash:incorporates useful features from the Korn shell(ksh)and the C shell:(csh). Mostshscripts can be run bybashwithout modification.

试图自动升级:

$ sudo yum update bash Last metadata expiration check: 0:35:33 ago on Fri 16 Jan 2026 06:15:31 AM UTC. Dependencies resolved. Nothing to do. Complete!

以上输出表示,基于已配置的官方repository,此bash已是最新版。

实际上5.1这个小版本中,最新的是5.1.16。系统认为5.1.8是最新,应该是处于稳定性的考虑。因为Bash是核心组件,官方通常不会通过 yum update 将其进行升级,最多只会推送同一个小版本系列的安全补丁。

由于不能自动升级,只能下载源码手工安装了。以下安装过程参考 GNU Bash手册 10.1 Basic Installation。

目前Bash版本最新为5.3。首先从GNU官网下载Bash源码:

$wgethttps://ftp.gnu.org/gnu/bash/bash-5.3.tar.gz $ls-lh --time-style=long-iso total 11M -rw-r--r--.1root root 11M2025-07-3014:07 bash-5.3.tar.gz

可以看到源码的日期为25年7月30日,大小11M。

解压,展开后近40M:

$tar-zxf bash-5.3.tar.gz $lsbash-5.3 bash-5.3.tar.gz $du-sh bash-5.3 39M bash-5.3

然后进入标准的安装过程,中间的大量输出省略:

$cdbash-5.3/# configure 耗时 38秒$ ./coechnfigure# make 耗时1分12秒$make# tests耗时2分10秒,报了很多警告,但$?仍是0$maketests# install 耗时12秒$makeinstall

整个过程不到5分钟,还是挺快的。没想到最慢的是下载源码。

💡 默认安装目录为 /usr/local/lib/bash,不会覆盖系统的 /bin/bash。

查看安装的版本:

$ /usr/local/bin/bash --version GNU bash, version5.3.0(1)-release(x86_64-pc-linux-gnu)Copyright(C)2025Free Software Foundation, Inc. License GPLv3+: GNU GPL version3or later<http://gnu.org/licenses/gpl.html>This isfreesoftware;you arefreeto change and redistribute it. There is NO WARRANTY, to the extent permitted by law.

重新登录终端,发现默认的路径已经指向新版本bash:

$whichbash/usr/local/bin/bash $bash--version GNU bash, version5.3.0(1)-release(x86_64-pc-linux-gnu)...

其实是因为PATH中,/usr/local/bin在/usr/bin之前(如果不是,就自己改一下):

$echo$PATH/home/vagrant/.local/bin:/home/vagrant/bin:/usr/share/Modules/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin $ls-lh --time-style=long-iso /usr/bin/bash -rwxr-xr-x.1root root1.4M2024-05-01 05:59 /usr/bin/bash $ls-lh --time-style=long-iso /usr/local/bin/bash -rwxr-xr-x.1root root4.4M2026-01-16 07:26 /usr/local/bin/bash

但是man page还是老版本的:

$man-Pcatbash|tail-1 GNU Bash5.12020October29BASH(1)$find/ -name bash.1.gz /usr/share/man/man1/bash.1.gz

就下来就有两种方式供选择,一个是新老Bash共存,一个是只想用新版本。

稳妥起见,建议新老版本共存。此时可以用符号链接和别名方式。

例如:

# cd /usr/bin# ls -l bash*-rwxr-xr-x.1root root1389064May12024bash# ln -s /usr/local/bin/bash bash52# ls -l bash*-rwxr-xr-x.1root root1389064May12024bashlrwxrwxrwx.1root root19Jan1608:25 bash52 ->/usr/local/bin/bash# bash52# echo $BASH_VERSION5.3.0(1)-release# echo $MANPATH/usr/share/man:# alias man52="MANPATH=/usr/local/share/man man"# man52 -P cat bash| tail -1GNU Bash5.32025April7BASH(1)

如果想用新版本彻底替代老版本,以下是一些标准的方法:

sudobash-c'echo /usr/local/bin/bash >> /etc/shells'chsh -s /usr/local/bin/bash

我并没有执行,因为chsh还未安装。

不过以下给出了一种方式,例如只让某个用户(例如vagrant)使用最新的Bash:

# usermod -s /usr/local/bin/bash vagrant# grep vagrant /etc/passwdvagrant:x:1000:1000::/home/vagrant:/usr/local/bin/bash

其实就是把用户的login shell改了。用putty试了一下,可以的:

Using username"vagrant".Authenticating with public key"vagrant"Welcome to Oracle Linux Server release9.5(GNU/Linux5.15.0-206.153.7.el8uek.x86_64)The Oracle Linux End-User License Agreement can be viewed here: * /usr/share/eula/eula.en_US For additional packages, updates, documentation and community help, see: * https://yum.oracle.com/ Last login: Fri Jan1607:57:302026from10.0.2.2[vagrant@ol9-vagrant ~]$echo$VERSION_INFO[vagrant@ol9-vagrant ~]$echo$BASH_VERSION5.3.0(1)-release
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 14:43:36

入门必看:ESP32固件库下载前需了解的依赖项和配置

从零开始搞懂 ESP32 固件开发&#xff1a;你真正需要先配好的那些“地基”你是不是也遇到过这种情况&#xff1f;兴致勃勃想给手里的 ESP32 烧个程序&#xff0c;结果刚敲下idf.py build就报错——不是找不到xtensa-esp32-elf-gcc&#xff0c;就是提示 Python 包缺失。折腾半天…

作者头像 李华
网站建设 2026/4/23 16:06:00

用IndexTTS-2-LLM打造AI主播,效果远超预期

用IndexTTS-2-LLM打造AI主播&#xff0c;效果远超预期 1. 引言&#xff1a;AI语音合成进入“拟人化”时代 在内容创作自动化、虚拟主播兴起的背景下&#xff0c;高质量的文本转语音&#xff08;Text-to-Speech, TTS&#xff09;技术正成为关键基础设施。传统的TTS系统虽然能完…

作者头像 李华
网站建设 2026/4/23 13:18:57

Vite-Vue3-Lowcode低代码平台:可视化开发的终极解决方案

Vite-Vue3-Lowcode低代码平台&#xff1a;可视化开发的终极解决方案 【免费下载链接】vite-vue3-lowcode vue3.x vite2.x vant element-plus H5移动端低代码平台 lowcode 可视化拖拽 可视化编辑器 visual editor 类似易企秀的H5制作、建站工具、可视化搭建工具 项目地址: …

作者头像 李华
网站建设 2026/4/23 15:51:32

MediaPipe TouchDesigner:重新定义创意交互的视觉艺术引擎

MediaPipe TouchDesigner&#xff1a;重新定义创意交互的视觉艺术引擎 【免费下载链接】mediapipe-touchdesigner GPU Accelerated MediaPipe Plugin for TouchDesigner 项目地址: https://gitcode.com/gh_mirrors/me/mediapipe-touchdesigner 当实时生成艺术遇见人工智…

作者头像 李华
网站建设 2026/4/23 11:27:27

终极游戏手柄映射指南:5步搞定所有PC游戏兼容

终极游戏手柄映射指南&#xff1a;5步搞定所有PC游戏兼容 【免费下载链接】antimicrox Graphical program used to map keyboard buttons and mouse controls to a gamepad. Useful for playing games with no gamepad support. 项目地址: https://gitcode.com/GitHub_Trendi…

作者头像 李华
网站建设 2026/4/23 11:38:43

AI智能证件照制作工坊避坑指南:常见上传失败问题解决教程

AI智能证件照制作工坊避坑指南&#xff1a;常见上传失败问题解决教程 1. 引言 1.1 项目背景与使用价值 随着远程办公、在线求职和电子政务的普及&#xff0c;高质量证件照的需求日益增长。传统照相馆流程繁琐、成本高&#xff0c;而AI技术的发展为自助化、标准化证件照生成提…

作者头像 李华