跳至內容跳至頁面導覽:上一頁 [access key p]/下一頁 [access key n]
documentation.suse.com / SUSE Linux Enterprise Server 文件 / 部署指南  / 更新和升級 SUSE Linux Enterprise / 線上升級
適用範圍 SUSE Linux Enterprise Server 12 SP5

21 線上升級

SUSE 提供了直觀的圖形工具和簡單的指令行工具,供您將執行中的系統升級至新的 Service Pack。它們提供 Service Pack復原支援及其他功能。本章將分步介紹如何使用這些工具來執行 Service Pack 升級。

21.1 概念綜覽

在升級系統之前,請先閱讀第 19.3 節 「準備系統」

SUSE 會定期發佈 SUSE Linux Enterprise 系列的新 Service Pack。為了方便客戶移轉至新的 Service Pack,並最大程度減少停機時間,SUSE 支援在系統執行時進行線上移轉。

從 SLE 12 開始,YaST 移轉 (GUI) 與 Zypper 移轉 (指令行) 取代了 YaST Wagon。系統支援以下功能︰

  • 在首個 RPM 更新之前,系統始終處於已定義狀態

  • 在首個 RPM 更新之前,可以取消操作

  • 若有錯誤,可以透過簡單的方式進行復原

  • 透過系統工具進行復原;無須備份/還原

  • 使用所有有效儲存庫

  • 能夠跳過 Service Pack

重要
重要:升級 SUSE Manager 用戶端

如果要升級的系統是 SUSE Manager 用戶端,則無法使用 YaST 線上移轉或 zypper migration 進行升級。請改為使用用戶端移轉程序。https://documentation.suse.com/suma/ 上的《SUSE Manager Upgrade Guide》(SUSE Manager 升級指南) 對此進行了說明。

21.2 Service Pack 移轉工作流程

Service Pack 移轉可透過 YaST、zypper 或 AutoYaST 執行。

開始 Service Pack 移轉之前,必須在 SUSE Customer Center 或本地 SMT 伺服器中註冊您的系統。也可以使用 SUSE Manager。

不論使用哪種方式,Service Pack 移轉都包含以下步驟︰

  1. 在您的註冊系統上尋找可能的移轉目標。

  2. 選取一個移轉目標。

  3. 申請並啟用新的儲存庫。

  4. 執行移轉。

移轉目標清單取決於您已安裝和註冊的產品。如果您安裝的延伸沒有新的 SP 可用,則無法向您提供移轉目標。

您的主機可用的移轉目標清單將始終可從 SUSE Customer Center 取回,並取決於所安裝的產品或延伸。

21.3 取消 Service Pack 移轉

只能在移轉過程中的特定階段取消 Service Pack 移轉︰

  1. 在套件升級開始之前,僅對系統進行極少量的變更,例如針對服務和儲存庫的變更。還原 /etc/zypp/repos.d/* 以回復到先前的狀態。

  2. 套件升級開始後,您可以透過使用 Snapper 快照回復到先前的狀態 (請參閱第 7 章 「使用 Snapper 進行系統復原和快照管理)。

  3. 選取移轉目標後,SUSE Customer Center 會變更儲存庫資料。若要手動回復此狀態,請使用 SUSEConnect --rollback

21.4 使用線上移轉工具 (YaST) 升級

若要透過 Yast 執行 Service Pack 移轉,請使用線上移轉工具。依預設,YaST 不會從協力廠商儲存庫安裝任何套件。如果某套件是從協力廠商儲存庫安裝的,YaST 會阻止該套件取代為來自 SUSE 的相同套件。

注意
注意:減少安裝大小

執行 SP 移轉時,YaST 會安裝所有建議的套件。特別是在自訂精簡安裝的情況下,這樣會顯著增加系統的安裝大小。

若要變更此預設行為並只允許必要的套件,請調整 /etc/zypp/zypp.conf 中的 solver.onlyRequires 選項。

solver.onlyRequires = true

另外,請編輯檔案 /etc/zypp/zypper.conf 並變更 installRecommends 選項。

installRecommends=false

這會變更所有套件操作的行為,例如安裝修補程式或新套件。

若要啟動 Service Pack 移轉,請執行以下操作︰

  1. 停用註冊伺服器上所有未使用的延伸,以免將來發生相依性衝突。YaST 稍後會偵測未使用的延伸儲存庫並將其停用,以防您忘記了某個延伸。

  2. 如果您已登入要更新的機器上的某個執行中 GNOME 工作階段,請切換到文字主控台。建議不要從 GNOME 工作階段執行更新。請注意,這並不適用於從遠端機器登入的情況 (除非您正在使用 GNOME 執行 VNC 工作階段)。

  3. 如果您是 LTSS 訂閱者,則必須停用 LTSS 儲存庫。此操作無法透過 YaST 完成。請改為執行以下指令並指定已安裝儲存庫的版本號碼:

    tux > sudo SUSEConnect -d -p SLES-LTSS/12.2/x86_64
    tux > sudo zypper ref -s

    如需詳細資訊,請參閱支援公告「zypper migration with LTSS repo results in "No migration available"」(使用 LTSS 儲存庫執行 zypper migration 導致「沒有可用的移轉」錯誤),網址為 https://www.suse.com/support/kb/doc/?id=7022381

  4. 安裝套件 yast2-migration 及其相依項 (位於 YaST 中的軟體 › 軟體管理下面)。

  5. 重新啟動 YaST;如果不重新啟動,新安裝的模組將不會顯示在控制中心中。

  6. 在 YaST 中,選擇線上移轉 (根據所升級的 SUSE Linux Enterprise Server 版本,此模組會列於系統軟體類別下)。YaST 將顯示可能的移轉目標和摘要。如果您的系統有多個可用的移轉目標,請從清單中選取一個。

  7. 從清單中選取一個移轉目標,然後按一下下一步繼續操作。

  8. 若移轉工具提供更新儲存庫,則建議您按一下繼續操作。

  9. 如果「線上移轉」工具找到來自 DVD 或本地伺服器的過時儲存庫,強烈建議您將其停用。過時的儲存庫來自先前的 SP。任何來自 SCC 或 SMT 的舊儲存庫會自動移除。

  10. 下一步,查看摘要並繼續移轉過程。確認開始更新

  11. 成功移轉後,請重新啟動系統。

21.5 使用 Zypper 升級

若要使用 Zypper 執行 Service Pack 移轉,請使用指令行工具 zypper migration (來自套件 zypper-migration-plugin)。

注意
注意:減少安裝大小

執行 SP 移轉時,YaST 會安裝所有建議的套件。特別是在自訂精簡安裝的情況下,這樣會顯著增加系統的安裝大小。

若要變更此預設行為並只允許必要的套件,請調整 /etc/zypp/zypp.conf 中的 solver.onlyRequires 選項。

solver.onlyRequires = true

另外,請編輯檔案 /etc/zypp/zypper.conf 並變更 installRecommends 選項。

installRecommends=false

這會變更所有套件操作的行為,例如安裝修補程式或新套件。若要變更一次調用的 Zypper 行為,請將 --no-recommends 參數新增至指令行。

若要啟動 Service Pack 移轉,請執行以下操作︰

  1. 如果您已登入要更新的機器上的某個執行中 GNOME 工作階段,請切換到文字主控台。建議不要從 GNOME 工作階段執行更新。請注意,這並不適用於從遠端機器登入的情況 (除非您正在使用 GNOME 執行 VNC 工作階段)。

  2. 若尚未註冊 SUSE Linux Enterprise 機器,請先進行註冊︰

    sudo SUSEConnect --regcode YOUR_REGISTRATION_CODE
  3. 如果您是 LTSS 訂閱者,則必須停用 LTSS 儲存庫。請執行以下指令並指定已安裝儲存庫的版本號碼:

    tux > sudo SUSEConnect -d -p SLES-LTSS/12.2/x86_64
    tux > sudo zypper ref -s

    如需詳細資訊,請參閱支援公告「zypper migration with LTSS repo results in "No migration available"」(使用 LTSS 儲存庫執行 zypper migration 導致「沒有可用的移轉」錯誤),網址為 https://www.suse.com/support/kb/doc/?id=7022381

  4. 安裝最新的更新︰

    sudo zypper patch
  5. 安裝 zypper-migration-plugin 套件及其相依項︰

    sudo zypper in zypper-migration-plugin
  6. 執行 zypper migration

    tux > sudo zypper migration
    Executing 'zypper  patch-check'
    
    Refreshing service 'SUSE_Linux_Enterprise_Server_12_x86_64'.
    Loading repository data...
    Reading installed packages...
    0 patches needed (0 security patches)
    
    Available migrations:
    
        1 | SUSE Linux Enterprise Server 12 SP1 x86_64
        2 | SUSE Linux Enterprise Server 12 SP2 x86_64

    有關移除過程的一些說明︰

    • 如果您的系統有多個可用的移轉目標,Zypper 允許您從清單中選取一個 SP。這與跳過一個或多個 SP 相同。請記住,基本產品 (SLES、SLED) 的線上移轉僅在主要版本的 SP 之間才仍然可用。

    • 依預設,Zypper 會使用 --no-allow-vendor-change 選項,以傳送到 zypper dup。如果某套件是從協力廠商儲存庫安裝的,此選項會阻止該套件取代為來自 SUSE 的相同套件。

    • 如果 Zypper 找到來自 DVD 或本地伺服器的過時儲存庫,強烈建議您將其停用。舊的 SCC 或 SMT 儲存庫會自動移除。

  7. 檢閱所有變更,特別是即將移除的套件。輸入 y (要升級之套件的確切數量因系統而異) 繼續︰

    266 packages to upgrade, 54 to downgrade, 17 new, 8 to reinstall, 5 to remove, 1 to change arch.
    Overall download size: 285.1 MiB. Already cached: 0 B  After the operation, additional 139.8 MiB will be used.
    Continue? [y/n/? shows all options] (y):

    使用 ShiftPage ↑ShiftPage ↓ 鍵在外圍程序中捲動。

  8. 成功移轉後,請重新啟動系統。

21.6 單純使用 Zypper 升級

若您無法使用 YaST 移轉或 Zypper 移轉,仍然可以藉由純 Zypper 和一些手動互動進行移轉。若要啟動 Service Pack 移轉,請執行以下操作︰

  1. 如果您已登入要更新的機器上的某個執行中 GNOME 工作階段,請切換到文字主控台。建議不要從 GNOME 工作階段執行更新。請注意,這並不適用於從遠端機器登入的情況 (除非您正在使用 GNOME 執行 VNC 工作階段)。

  2. 更新套件管理工具和 SUSE Linux Enterprise 舊儲存庫︰

    sudo zypper patch --updatestack-only
  3. 若系統已註冊,則需要取消註冊︰

    sudo SUSEConnect --de-register
  4. 移除舊的安裝來源和儲存庫,並對協力廠商儲存庫進行調整。

  5. 新增新的安裝來源 (本地或遠端來源均可,如需預留位置儲存庫的資訊,請參閱第 18.6 節 「儲存庫模型」)︰

    sudo zypper addrepo REPOSITORY

    您也可以使用 SUSE Customer Center 或訂閱管理工具。適用於 x86-64 上的 SUSE Linux Enterprise 12 SP1 的指令為︰

    sudo SUSEConnect -p SLES/12.2/x86_64 OPTIONS

    請注意,系統不支援跨架構升級。

    Zypper 將顯示新舊核心之間的衝突。選擇解決方案 1 繼續。

    Problem: product:SLES-12.2-0.x86_64 conflicts with kernel < 4.4 provided by kernel-default-VERSION
     Solution 1: Following actions will be done:
      replacement of kernel-default-VERSION with kernel-default-VERSION
      deinstallation of kernel-default-VERSION
     Solution 2: do not install product:SLES-12.2-0.x86_64
  6. 完成移轉︰

    sudo zypper ref -f -s
    sudo zypper dup --no-allow-vendor-change --no-recommends

    第一個指令將更新所有服務和儲存庫。第二個指令將執行套裝作業系統更新。此處的最後兩個選項十分重要︰-no-allow-vendor-change 可確保協力廠商 RPM 將不會覆寫基礎系統中的 RPM。--no-recommends 選項可確保在起始安裝期間取消選取的套件不會再次新增。

21.7 復原 Service Pack

如果 Service Pack 不適用於您,SUSE Linux Enterprise 支援將系統回復到開始 Service Pack 移轉之前的狀態。前提是對 Btrfs 根分割區啟用了快照 (這是安裝 SLES 12 時的預設設定)。如需詳細資料,請參閱第 7 章 「使用 Snapper 進行系統復原和快照管理

  1. 取得所有 Snapper 快照的清單︰

    sudo snapper list

    檢閱輸出以找到在開始 Service Pack 移轉之前剛建立的快照。Description 欄包含相應的說明,Userdata 欄中會將該快照標示為 important。記住 # 欄中的快照編號,以及 Date 欄中該快照的日期。

  2. 重新啟動系統。從開機功能表中選取從唯讀快照啟動開機載入程式,然後選擇上一步中記下的日期和編號所對應的快照。此時會載入第二個開機功能表 (快照中的那個)。選取以 SLES 12 開頭的項目並將其開機。

  3. 系統會開機進入先前的狀態,並且系統磁碟分割區會以唯讀方式掛接。以 root 身分登入,並檢查您是否選擇了正確的快照。此外,請確認一切如常。請注意,由於根檔案系統以唯讀方式掛接,因此功能可能受限。

    如果出現問題,或者開機的快照不正確,請重新開機並選擇從另一個快照開機 — 到此為止,系統尚未進行任何永久變更。如果快照正確並且依預期運作,請執行以下指令使變更永久生效︰

    snapper rollback

    然後重新開機。在開機螢幕上,選擇預設開機項目以重新開機到已恢復的系統。

  4. 檢查是否已正確重設儲存庫組態。此外,檢查是否所有產品均已正確註冊。如果以上任何一項不正確,則稍後可能無法再有效地執行系統更新,或者可能會使用錯誤的套件儲存庫更新系統。

    請先確認系統可以存取網際網路,再開始此程序。

    1. 執行以下指令以重新整理服務和儲存庫︰

      sudo zypper ref -fs
    2. 執行以下指令以獲得使用中儲存庫的清單︰

      sudo zypper lr

      仔細檢查此指令的輸出。為該次更新新增的服務和儲存庫不應包含在清單中。舉例來說,如果您要對從 SLES 12 SP1 到 SLES 12 SP2 的 Service Pack 移轉進行復原,則清單得包含儲存庫 SLES12-SP2-PoolSLES12-SP2-Updates,而應包含 SP1 版本。

      如有錯誤的儲存庫列出,請將其刪除,必要時,請用與您的產品或 Service Pack 版本相符的版本取代它們。如需受支援移轉路徑的儲存庫清單,請參閱第 18.6 節 「儲存庫模型」

    3. 最後,透過執行以下指令檢查所有已安裝產品的註冊狀態︰

      SUSEConnect --status

      所有產品都應該報告為已註冊。若非如此,請執行以下指令以修復註冊︰

      SUSEConnect --rollback

現在,您已成功將系統回復到就在開始 Service Pack 移轉之前擷取的狀態。