SDB:變更供應商的更新
這篇文章解釋了供應商綁定的概念,並提供關於如何變更此預設行為的資訊。
概述
版本: 11.2+
|
下列說明適用於 openSUSE 11.2 之後的發行版本。 |
套件管理員 Zypp 使用了 供應商綁定 的概念,這表示:當您更新您的系統時,若新版本的套件是由不同供應商所提供,您已安裝的套件將不會升級到新版本。
供應商綁定的好處:
- 當您更新時,不會有不小心從不同的套件庫將穩定版本更新到實驗版本的情況發生。
- 當同樣的套件存在於一個以上的套件庫時,不會發生套件在不同套件庫間升級來升級去的窘況。
供應商綁定的缺點:
- 可用的更新若需要變更供應商,將不會顯示在 YaST。
- 更新/變更套件到不同的供應商,需要多花點心思完成。
- 有時套件管理員詢問您是否要允許變更供應商,可能會讓您困擾、恐懼或迷惑。
進行變更供應商的更新
要進行變更供應商的更新,這些是您可以使用的方法。
單一套件供應商變更
使用 YaST
搜尋您想要更新的套件,然後到 版本 分頁,並選擇您要安裝的版本。
使用 zypper
使用 zypper 指定您想要安裝套件的版本,例如:
zypper install 'amarok=2.3.2'
或指定一個套件庫:
zypper install --from [套件庫] [套件]
整個套件庫供應商變更
使用 YaST
如果您想切換所有已安裝的套件到指定套件庫中的版本,開啟套件庫分頁,選擇所要的套件庫,然後按 切換系統套件到此套件庫的版本
使用 zypper
您也可以使用 zypper 來將所有在某一套件庫中的套件切換供應商:
zypper dup --from [套件庫]
允許供應商變更
針對所選擇的套件庫允許供應商變更
您可以定義一張清單,將不同的 "供應商" 視為等同的,在 /etc/zypp/vendors.d/ 目錄中建立一個檔案,內容大致如下:
[main] vendors = suse,opensuse,obs://build.suse.de,Packman,http://packman.links2linux.de
您可以用 YaST ("版本" 分頁)來找尋供應商,或用命令行 "zypper if <套件名稱>"。
- 您可以使用任何的檔案名稱,但在這目錄中的每一個檔案僅反映一組等同的供應商。
- Libzypp 進行字串比對 (像 strncmp, 不分大小寫) 然而只有字串的開頭被比較,像是,供應商 "opensuse11.0" 和 "openSUSE" 是相容的。
停用供應商綁定
如果您希望完全停用供應商綁定 - 在這種情況下,套件管理員不會針對變更套件的供應商而要求授權,而升級將會安裝最新的版本,不論套件由何而來。
在 /etc/zypp/zypp.conf 設定
solver.allowVendorChange = true
現在 zypper up 將會從任何供應商安裝可用的最新版本,且 YaST 將會用藍色的字體標示所有可以更新的套件,即使更新是從不同的供應商而來。