为什么在修补 shellshock bash bug 时需要更新 readline?

为什么在修补 shellshock bash bug 时需要更新 readline?

SLES 官方网站:

https://download.suse.com/Download?buildid=nNXClbWqawg~

除了更新的 bash 包之外,还提供包含“readline”包的 TAR 文件。

问题: 为什么需要 readline 包?仅更新 bash 包是否可以解决 shellshock 问题?

$ cd ssbash9SP4-i386-rev2
$ ls -1
bash-2.05b-305.21.7408.1.PTF.898762.i586.rpm
readline-4.3-306.19.7408.1.PTF.898762.i586.rpm
readline-devel-4.3-306.19.7408.1.PTF.898762.i586.rpm
$ rpm -qip bash-2.05b-305.21.7408.1.PTF.898762.i586.rpm 2>/dev/null | grep -i source
Source RPM  : bash-2.05b-305.21.7408.1.PTF.898762.src.rpm
$ rpm -qip readline-4.3-306.19.7408.1.PTF.898762.i586.rpm 2>/dev/null | grep -i source
Source RPM  : bash-2.05b-305.21.7408.1.PTF.898762.src.rpm
$ rpm -qip readline-devel-4.3-306.19.7408.1.PTF.898762.i586.rpm 2>/dev/null | grep -i source
Source RPM  : bash-2.05b-305.21.7408.1.PTF.898762.src.rpm
$

答案1

rpm -qip输出中您可以看到所有三个二进制 RPM 包都是从同一个源包构建的:bash-2.05b-305.21.7408.1.PTF.898762.src.rpm

这意味着当更新其中任何一个的源时,该.src.rpm文件将有一个新版本。然后,新.src.rpm文件用于构建所有三个二进制包。因此,这三个版本都会有更新版本(可能还有更多二进制包,这些包未安装在您的系统上。)

如果您确切知道更改的内容并且它不会影响软件包readline,您可以避免更新readline软件包。然而,即使这些readline包恰好与以前的版本相同(除了版本号),如果任何版本号检查对于所需版本有点过于迂腐,那么您仍然可能因混合版本而导致损坏。

因此,我的建议是更新所有三个,即使可能不是严格要求的。如果您在更新中进行选择,那么维护系统的工作量往往会更大;如果您只是安装适用于您所选发行版的所有更新,那么维护系统的工作量就会减少。

相关内容