為什麼在修補 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套件恰好與以前的版本相同(除了版本號),如果任何版本號檢查對於所需版本有點過於迂腐,那麼您仍然可能因混合版本而導致損壞。

因此,我的建議是更新所有三個,即使可能不是嚴格要求的。如果您在更新中進行選擇,維護系統的工作量往往會更大;如果您只是安裝適用於您所選發行版的所有更新,那麼維護系統的工作量就會減少。

相關內容