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
包恰好与以前的版本相同(除了版本号),如果任何版本号检查对于所需版本有点过于迂腐,那么您仍然可能因混合版本而导致损坏。
因此,我的建议是更新所有三个,即使可能不是严格要求的。如果您在更新中进行选择,那么维护系统的工作量往往会更大;如果您只是安装适用于您所选发行版的所有更新,那么维护系统的工作量就会减少。