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

22 將源代碼回移

SUSE 廣泛使用了向後移植,例如,將目前軟體修補程式和功能移轉到過去發行的 SUSE Linux Enterprise 套件中。本章中的資訊解釋為何透過比較版本號碼來判斷 SUSE Linux Enterprise 軟體套件的功能和安全性的方法有誤導性。本章還會說明 SUSE 如何在確保系統軟體安全且最新的同時,保持 SUSE Linux Enterprise 產品上所執行應用程式軟體的相容性。您還將瞭解如何查看 SUSE Linux Enterprise 系統軟體中實際解決了哪些公眾安全性問題,以及軟體的目前狀態。

22.1 回移的原因

上游開發人員主要關注所開發軟體的進度。通常情況下,他們會在修正錯誤的同時,引入未經廣泛測試且可能引發新錯誤的新功能。

對於套裝作業系統開發人員,務必要區分清楚︰

  • 對功能可能造成有限中斷的錯誤修正;以及

  • 可能會中斷現有功能的變更。

通常,當某套件成為已發行套裝作業系統的一部分時,套裝作業系統開發人員不會遵循所有上游變更。通常,他們會繼續使用最初發行的上游版本,並根據上游變更建立修補程式來修正錯誤。此做法稱為回移

只有在下列兩種情況下,套裝作業系統開發人員一般才會引入較新版本的軟體︰

  • 套件與上游版本之間的變更過多,以致於回移操作不再可行,或者

  • 軟體本身已嚴重老化,例如防惡意程式軟體。

我們致力於在多種企業軟體考量因素之間取得良好平衡,SUSE 廣泛使用了向後移植。其中,最重要的考量因素有︰

  • 提供穩定的介面 (API),軟體廠商在建立 SUSE 的企業產品上使用的產品時可以依賴於這些介面。

  • 確保 SUSE 企業產品版本中使用的套件 (不論是套件本身還是做為整個企業產品的一部分) 都擁有最高品質且已經過全面測試。

  • 維護其他廠商提供之 SUSE 企業產品的各種證書,例如 Oracle 或 SAP 產品的證書。

  • 允許 SUSE 的開發人員竭盡所能提高下一版本產品的品質,而不是狹隘地把精力分散於推出各種版本。

  • 讓特定企業版本所含內容清楚可見,使得我們的支援人員可以提供有關該版本的準確及時的資訊。

22.2 反對回移的原因

企業產品中不引入套件的任何新上游版本是一項基本政策規則。但這並不是絕對的規則。針對某些套件類型,特別是防毒軟體,安全性是我們考慮更多的因素,而不是優先考慮品質保證方面的保守作法。對於該類別的套件,偶爾會將較新的版本引入到企業產品線的已發行版本中。

對於其他類型的套件,有時還會選擇引入新版本,而不是執行回移。當產生回移在經濟上不可行時,或者存在極其相關的技術原因而需要引入較新版本時,便會這麼做。

22.3 解譯版本號碼時產生的回移問題

由於採取了回移的做法,使用者無法僅透過比較版本號碼來判斷 SUSE 套件是否包含特定問題的修正程式或其中已新增了特定功能。使用回移時,SUSE 套件版本號碼的上游部分僅表示 SUSE 套件所基於的上游版本。它可能包含相應上游版本中沒有但已回移至 SUSE 套件中的錯誤修正程式和功能。

在涉及回移時,版本號碼的這種限制值可能會導致問題的一個特定方面就是使用安全性掃描工具時。某些安全性弱點掃描工具 (或在此類工具中進行的特定測試) 僅針對版本資訊操作。因此,在涉及向後移植時,這些工具和測試很容易產生誤判 (將某個軟體錯誤地識別為有弱點)。評估安全性掃描工具產生的報告時,請務必檢查其中的項目是以版本號碼為依據,還是以實際的弱點測試為依據。

22.4 如何檢查哪些錯誤已修正以及哪些功能已回移且可用

有多個位置用於儲存已向後移植錯誤修補程式和功能的相關資訊︰

  • 套件的變更記錄︰

    rpm -q --changelog name-of-installed-package
    rpm -qp --changelog packagefile.rpm

    輸出簡要記錄套件的變更歷程。

  • 套件變更記錄可能包含類似於參考 SUSE Bugzilla 追蹤系統中錯誤的 bsc#1234 (Bugzilla Suse.Com) 之類的項目,或者包含指向其他錯誤追蹤系統的連結。由於機密性規則,您可能無法存取所有此類資訊。

  • 套件中可能包含 /usr/share/doc/PACKAGENAME/README.SUSE 檔案,該檔案包含 SUSE 套件特定的一般高階資訊。

  • RPM 來源套件包含的修補程式可在將一般二進位 RPM 建立為獨立檔案期間加以套用;如果您熟悉如何讀取源代碼,可以解譯這些獨立檔案。有關 SUSE Linux Enterprise 軟體的安裝來源請參閱第 6.1.2.5 節 「安裝或下載來源套件」,有關 SUSE Linux Enterprise 上的建構套件請參閱第 6.2.5 節 「安裝與編譯來源套件」,有關 SUSE Linux Enterprise 軟體套件建構的內部工作方式請參閱《Maximum RPM》(最大 RPM) 一書。

  • 如需瞭解安全性錯誤修正程式,請參閱 SUSE 安全性通告。這些修正程式通常適用於由通用弱點披露 (CVE) 專案維護之以 CAN-2005-2495 等標準名稱顯示的錯誤。