protectbase

你應該在 protectbase 或 priorities 插件中 選其一,但它們不應同時被使用。由於 priorities 與 protectbase 可以做同樣的事情,但擁有多於兩於組別,我們只推薦 protectbase 給最基本的設定。

protectbase 的用處就是保護某些軟件庫被其它軟件庫的更新所取替。受保護的軟件庫不會被未受保護的軟件庫內較新的檔案更新。我們推薦這個插件給任何經常啟用第三方軟件庫的人們,因為這些非 CentOS 的軟件庫可能會更新某些系統檔案,有機會導致你的 CentOS 安裝不穩定。

首先,你必須在 /etc/yum.conf 檔案內啟用插件,詳情見「Yum 插件」。由 CentOS 5 起插件已經預設被啟用。

要安裝 protectbase 插件,請確定 CentOS 的 extras 軟件庫已經被啟用(它預設是被啟用的),然後執行這個指令:

yum install yum-plugin-protectbase

在 CentOS 5 上這個套件的名稱被更改了,你可以用這個指令:

yum install yum-protectbase

完成插件的安裝後,請確定它已被啟用。請編輯 /etc/yum/pluginconf.d/protectbase.conf 並確保它擁有下列內容:

[main]
enabled = 1

之後,你須要編輯 /etc/yum.repos.d/ 內所有 .repo 檔案,並選擇為每個軟件庫加入:

protect=1

protect=0

下面是一個在 CentOS-Base.repo 檔案內只保護 [base] 及 [update] 軟件庫的範例:

[base]
name=CentOS-$releasever - Base
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os
#baseurl=http://mirror.centos.org/centos/$releasever/os/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
protect=1

#released updates 
[update]
name=CentOS-$releasever - Updates
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates
#baseurl=http://mirror.centos.org/centos/$releasever/updates/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
protect=1 

#packages used/produced in the build but not released
[addons]
name=CentOS-$releasever - Addons
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=addons
#baseurl=http://mirror.centos.org/centos/$releasever/addons/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
protect=0 

#additional packages that may be useful
[extras]
name=CentOS-$releasever - Extras
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/
gpgcheck=1
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
protect=0 

#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-$releasever - Plus
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=centosplus
#baseurl=http://mirror.centos.org/centos/$releasever/centosplus/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
protect=0 

#contrib - packages by Centos Users
[contrib]
name=CentOS-$releasever - Contrib
mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=contrib
#baseurl=http://mirror.centos.org/centos/$releasever/contrib/$basearch/
gpgcheck=1
enabled=0
gpgkey=http://mirror.centos.org/centos/RPM-GPG-KEY-centos4
protect=0 


註:必須/etc/yum.conf 中的 .repo 檔裡每個不想受保護的軟件庫加上 protect=0,否則它們屬於 protect=1 的組別。


當你在完成編輯後進行更新,只有那些擁有 protect=1 的軟件庫才能更新來獲 protect=1 保護的軟件庫的軟件。就我們的範例而言,yum 只會用 [base] 或 [update] 軟件庫內的 RPM 來更新屬於 [base] 或 [update] 的套件。假如 [addons] 軟件庫為來自 [base] 的套件提供了更新,升級亦不會進行。

Translation of revision 38

zh-tw/PackageManagement/Yum/ProtectBase (last edited 2012-06-11 06:15:38 by TimothyLee)