15 安裝多個核心版本 #
SUSE Linux Enterprise Server 支援多個核心版本的平行安裝。安裝第二個核心時,將會自動建立一個開機項目和一個 initrd,因此無需進一步的手動組態。將機器重新開機時,新增的核心可用做額外的開機選項。
使用此功能,您可以安全測試核心更新,同時,還能夠始終回復到經過驗證的前一核心。執行這種操作時,請不要使用更新工具 (例如 YaST 線上更新或更新程式 Applet),而應該遵照本章中所述的程序。
請注意,如果您安裝自行編譯的核心或協力廠商核心,則會喪失所有的支援授權。僅支援 SUSE Linux Enterprise Server 隨附的核心,以及透過官方更新通道為 SUSE Linux Enterprise Server 提供的核心。
建議在安裝其他核心後檢查您的開機載入程式組態,以設定您選擇的預設開機項目。如需相關資訊,請參閱第 12.3 節 「使用 YaST 設定開機載入器」。
15.1 啟用和設定多版本支援 #
自 SUSE Linux Enterprise Server 12 起,系統預設支援安裝套裝軟體的多個版本 (多版本支援)。若要驗證此設定,請執行下列步驟︰
以
root
身分使用所選的編輯器開啟/etc/zypp/zypp.conf
。搜尋字串
multiversion
。如果為所有支援此功能的核心套件啟用多版本,下面一行可能會取消註解︰multiversion = provides:multiversion(kernel)
若要對特定的核心類別限制多版本支援,請將逗號分隔的套件名稱清單新增到
/etc/zypp/zypp.conf
中的multiversion
選項 — 例如multiversion = kernel-default,kernel-default-base,kernel-source
儲存您所做的變更。
確定還為新更新的核心安裝了所需的廠商提供的核心模組 (核心模組套件)。核心更新程序不會發出有關最終缺少核心模組的警告,因為系統上保留的舊核心仍能滿足套件要求。
15.1.1 自動刪除未使用的核心 #
如果您經常測試已啟用多版本支援的新核心,開機功能表很快就會變得雜亂無序。由於 /boot
分割區的空間通常有限,因此,您還可能會遇到 /boot
溢位的問題。您可以使用 YaST 或 Zypper 手動刪除未使用的核心版本 (如下文所述),也可以將 libzypp
設定為自動刪除不再使用的核心。預設不會刪除核心。
以
root
身分使用所選的編輯器開啟/etc/zypp/zypp.conf
。搜尋字串
multiversion.kernels
,並透過取消註解相應的行來啟用此選項。此選項使用包含以下值的逗號分隔清單︰4.4.126-48
: 保留具有指定版本號碼的核心latest
: 保留具有最高版本號碼的核心latest-N
: 保留版本號碼排在第 N 位的核心running
: 保留執行中的核心oldest
: 保留具有最低版本號碼的核心 (SUSE Linux Enterprise Server 最初隨附的核心)oldest+N
: 保留版本號碼排在倒數第 N 位的核心以下是一些範例
multiversion.kernels = latest,running
保留最新核心以及目前正在執行的核心。這類似於不啟用多版本功能,不過,舊核心在下一次重新開機後才會移除,而不是在安裝後立即移除。
multiversion.kernels = latest,latest-1,running
保留最新的兩個核心,以及目前正在執行的核心。
multiversion.kernels = latest,running,4.4.126-48
保留最新的核心、目前正在執行的核心,以及 4.4.126-48。
提示:保留執行中的核心除非您使用的是特殊的設定,否則一律將核心標示為
執行中
。如果不保留執行中的核心,系統在更新核心時會將其刪除。而這意味著執行中核心的所有模組也會被刪除,並且無法再載入。
如果您決定不保留執行中的核心,則在升級核心後永遠要立即重新開機,以免模組發生問題。
15.1.2 使用案例︰僅在重新開機後刪除舊核心 #
您想要確認只在系統成功用新核心重新開機之後才刪除舊核心。
變更 /etc/zypp/zypp.conf
中的以下行︰
multiversion.kernels = latest,running
上面的參數告知系統要保留最新核心以及執行中的核心 (前提是兩者不同)。
15.1.3 使用案例︰保留舊核心做為後援 #
您想要保留一或多個核心版本,以便有一或多個「備用的」核心。
如果需要使用核心進行測試,則這樣做可能十分有用。如果出現了故障 (例如,您的機器不能開機),您仍可以使用一或多個已知正常的核心版本。
變更 /etc/zypp/zypp.conf
中的以下行︰
multiversion.kernels = latest,latest-1,latest-2,running
安裝新核心之後,當您將系統重新開機時,系統將保留三個核心︰目前的核心 (設定為 latest,running
),以及它的前兩任 (設定為 latest-1
和 latest-2
)。
15.1.4 使用案例︰保留特定的核心版本 #
您要執行定期系統更新和安裝新的核心版本。但是,您還要編譯自己的核心版本,並要確認系統將保留這些版本。
變更 /etc/zypp/zypp.conf
中的以下行︰
multiversion.kernels = latest,3.12.28-4.20,running
在安裝新核心後,將系統重新開機時,系統會保留兩個核心︰新的執行中核心 (設定為 latest,running
),以及您自己編譯的核心 (設定為 3.12.28-4.20
)。
15.2 使用 YaST 安裝/移除多個核心版本 #
啟動 YaST,然後透過
› 開啟軟體管理員。選擇
› › 列出可以提供多個版本的所有套件。圖 15.1︰ YaST 軟體管理員︰多版本檢視 #在底部窗格的左側選取一個套件並開啟其
索引標籤。若要安裝某個套件,請按一下它旁邊的核取方塊。綠色核取記號表示已選取相應的套件進行安裝。
若要移除某個已安裝的套件 (以白色核取記號標示),請按一下它旁邊的核取方塊,直到出現紅色的
X
,這表示已選擇移除該套件。按一下
開始安裝。
15.3 使用 Zypper 安裝/移除多個核心版本 #
使用指令
zypper se -s 'kernel*'
顯示所有可用核心套件的清單︰S | Name | Type | Version | Arch | Repository --+----------------+------------+-----------------+--------+------------------- v | kernel-default | package | 2.6.32.10-0.4.1 | x86_64 | Alternative Kernel i | kernel-default | package | 2.6.32.9-0.5.1 | x86_64 | (System Packages) | kernel-default | srcpackage | 2.6.32.10-0.4.1 | noarch | Alternative Kernel i | kernel-default | package | 2.6.32.9-0.5.1 | x86_64 | (System Packages) ...
安裝時指定確切的版本︰
zypper in kernel-default-2.6.32.10-0.4.1
解除安裝核心時,使用指令
zypper se -si 'kernel*'
可以列出安裝的所有核心,使用zypper rm
套件名稱版本可以移除該套件。