以下程序提供了一種以無人管理的方式從 SUSE Linux Enterprise 11 SP2 至 SUSE Linux Enterprise 11 SP3 的大量升級方法。建立合適的 AutoYaST 設定檔前,需要先執行幾個準備步驟。最終將由 AutoYaST 來執行升級程序。
適用於自動升級的 AutoYaST 設定檔使用與 AutoYaST 安裝相同的檔案格式。如需 AutoYaST 的詳細資訊,請參閱第 21 章「自動安裝」和AutoYaST (↑AutoYaST)。
不過,顯而易見的是,在升級期間設定系統的某些組態 (例如磁碟分割) 是沒有意義的。而另一方面,透過 AutoYaST 設定檔設定升級專屬選項則很有用。
升級選項用於定義升級期間相依性解析程式的行為︰
<upgrade>
<only_installed_packages
config:type="boolean">false</only_installed_packages>
<stop_on_solver_conflict
config:type="boolean">true</stop_on_solver_conflict>
</upgrade>only_installed_packages
對於以套件為基礎的升級 (建議在升級至同一產品的下一 Service Pack 時採用此方式),請設定為 true;對於以模式為基礎的升級 (建議在進行產品不同版本間的升級時採用此方式,例如,從 SLES10 升級至 SLES11),請設定為 false。
stop_on_solver_conflict
定義在無法解析套件相依性時是否以互動方式顯示建議 (建議設定為 true,但如此可能會引發互動程序,在此期間使用者必須手動解決衝突)。
軟體選項用於定義解析程式的執行結果以及要選取或取消選取的元件。
<software>
<packages config:type="list">
<package>autoyast2-installation</package>
<package>apparmor-profile-editor</package>
</packages>
<patterns config:type="list">
<pattern>base</pattern>
</patterns>
<remove-packages config:type="list"/>
<remove-patterns config:type="list"/>
</software>
為了在解決套件衝突時免去使用者互動干預的麻煩,設定要選取或取消選取的套件或模式就顯得尤為重要。升級完成後,新建立的 autoupg_updated.xml 檔案會包含這些套件和模式,以及之前基於任何原因選取或取消選取的套件和模式。
升級前的備份選項與升級建議中的下列功能相對應。
<backup> <sysconfig config:type="boolean">true</sysconfig> <modified config:type="boolean">true</modified> <remove_old config:type="boolean">false</remove_old> </backup>
sysconfig
定義是否在升級前備份 sysconfig。
modified
定義是否在升級前備份修改過的組態檔案。
remove_old
定義是否移除先前的升級過程遺留的舊備份。
若要啟動自動升級,請從安裝媒體開機,然後將 AutoYaST 設定檔傳送至該媒體。有兩種方法可將設定檔傳送至系統︰
與進行 AutoYaST 安裝時一樣,將設定檔傳送至核心指令行 (使用 autoupgrade=1 autoyast=http://host/path/profile.xml 參數)。對於系統 z 而言,這是唯一可行的方法。
將 autoupgrade=1 參數傳送至核心指令行。開始升級前,將設定檔複製到 /root/autoupg.xml。這樣就無需設定任何其他核心參數。
若採用後一種方法,即使有多部不同的機器,也只需使用一個安裝核心指令行,只要將適當的設定檔複製到對應的檔案系統即可。
在下列情況下,整個升級過程將不需要使用者的互動︰機器上只安裝了一個 SUSE Linux Enterprise 系統、不存在套件衝突、未將設定檔設為在出現升級建議時停止。如果您進入升級建議,則可以修改其升級設定。
升級完成後,YaST 會寫入 /root/autoupg-updated.xml 檔案,該檔案包含套用了建議中完成的軟體選項變更的設定檔。這種方式特別適用於以相同套件選項進行大批量升級的情況。如此,一部機器上採用的解決衝突的方法可以輕鬆套用至其他機器,從而自動解決這些機器上的衝突,同時,升級過程本身也不需要使用者的互動。
如果機器上安裝了多個 SUSE Linux Enterprise 系統,系統必定會詢問您要升級哪個系統,而且您無法提前選取該系統。
另外一種將系統開機的方法是在 GRUB 功能表中建立另一個區段 (對於其他開機載入程式和其他結構,可使用類似方式)。這個功能表可啟動安裝。下面的範例假定系統中有一個獨立的 /boot 分割區,在 GRUB 中稱為 (hd0,0)︰
title Upgrade
root (hd0,0)
kernel /upgrade/linux
install=inst_source_url autoupgrade=1
autoyast=autoyast_profile_url vga=0x314
initrd /upgrade/initrd
上面的範例假定安裝核心與安裝 initrd 位於 /boot/upgrade 目錄。
在系統 z 上,您必須向 PARM 檔案新增該參數 — 使用與執行 AutoYaST 導向安裝時所採用的相同方法繼續。
依預設,自動升級不會在升級的第二個階段執行組態變更。唯一的例外是網路組態,此階段需要對其進行設定以便保留在 AutoYaST 升級設定檔中。
如果需要在升級後對一些系統區域進行組態調整 (例如,設定一項新服務),請將相關區段新增至 AutoYaST 升級設定檔,這樣所選系統區域的組態便會在升級期間儲存起來。
![]() | AutoYaST 提供的組態會取代現有組態 |
|---|---|
請注意,該系統區域的現有組態將被 AutoYaST 組態取代,進而損毀。 | |
通常情況下,唯一的組態調整 (AutoYaST 設定檔中應會保留) 就是將系統註冊到訂閱管理工具 (SMT) 或 Novell Customer Center (NCC)。如果未進行此調整,系統將無法獲取更新儲存庫,更新也就無法進行,除非您以後重新設定。
如果使用 NetworkManager 管理網路裝置與網路連接,在升級的第二個階段將無法取得網路連接。這會阻止系統進行註冊。
如果您為了觸發升級程序,在系統中進行了任何變更 (例如,將新的區段新增至開機載入程式功能表),您可能希望在升級完成後將這些變更移除。
可以使用安裝後程序檔來自動執行此項操作。範例請見Section “Custom User Scripts” (Chapter 4, Configuration and Installation Options, ↑AutoYaST)。autoupg.xml 範例檔案中包含了用於清理 GRUB 的 menu.lst 的範例程序檔。請確定該程序檔與您特定的設定相符,並且不會移除您不想移除的內容!
Linuxrc 文件︰http://en.opensuse.org/SDB:Linuxrc