Red Hat Training
A Red Hat training course is available for Red Hat Enterprise Linux
4.4.6. RPM 套件管理程式(RPM)更新
Red Hat Enterprise Linux 7 提供了更新版本的 RPM Package Manager。此更新帶來了數項可能會影響遷移的特性變更。
- 衝突偵測現在已較為嚴格且正確。基於此提升的衝突敏感度,部分能安裝在 Red Hat Enterprise Linux 6 上的套件可能無法安裝在 Red Hat Enterprise Linux 7 上。
- 自行衝突的套件現在已能安裝,允許使用者在替代項目之間建立單一特性。
- 已被既有、已安裝之套件淘汰的套件將不會被安裝。
- 淘汰規則現在已包含了所有相符的套件,不論其它屬性為何(例如架構)。
- 相依性計算已不再考量未安裝的檔案,或是已透過像是
--nodocs
、--noconfig
或--force
這類選項替換的檔案。 - 現在當您在重新建立一個發生異常情況(
DB_RUNRECOVER
)的 RPM 套件管理程式資料庫時,您已無需手動式執行rm -f /var/lib/rpm/__db.
。 - 透過 OpenPGP 3 建立的公共金鑰已不再受到支援。
--info
選項現在會在每一行上輸出個別的 tag-value 配對,以改善可讀性。任何依賴先前--info
格式的 script 皆需要重新編寫。- spec parser 現在已更加嚴格且正確,因此部分先前接受的 spec 檔案可能會無法叵析,或是顯示警告。
%license
現在已能使用來在規格檔案的%files
部分中,將檔案標記為必須安裝的使用權限(儘管--nodocs
已指定)。- 版本比較現在支援了 dpkg 形式的波狀符號(
~
)運算子,以更有效地處理預發行的軟體。比方說,foo-2.0~beta1
會被視為比foo-2.0
還要舊的版本,如此一來便無需「發行版」的欄位亦可處理這些常見的上游版本做法。 - 自動相依性產生器已被重新編寫為一個可延伸、可自訂、基於規則的系統,搭配內建式的篩選機制。
這項更新亦包含了下列功能增強:
- 您現在已能查詢安裝的套件中包含的檔案(
INSTFILENAMES
)、檔案的硬連結數量(FILENLINKS
)、套件版本控制系統詳細資料(VCS
),以及格式化的相依性字串捷徑(PROVIDENEVRS
、REQUIRENEVRS
、CONFLICTNEVRS
、OBSOLETENEVRS
)。 - 已提供了幾項新的指令,包括:
rpmkeys
rpmdb
rpmspec
rpmsign
- RPM 套件管理程式現在已包含了新的程式碼片段切換選項,以啟用 runtime 巨集擴展或是 runtime queryformat 擴展。
- 交易前與交易後的程式碼片段相依性現在已能正確以
Requires(pretrans)
和Requires(posttrans)
顯示。 - RPM 套件管理程式現在包含了
OrderWithRequires
標籤,以允許使用者提供額外的排序資訊。這個新標籤使用了與 Requires 標籤相同的語法,不過卻不會產生相依性。若提及的套件存在相同的交易中,當計算交易排序時,排序提示(ordering hint)將會被視為「Requires
」。 - 規格檔案中的行接續符號和巨集擴展已不再受到指定的限制。
- RPM 套件管理程式現在已允許使用者指定上游版本的控制軟體庫資訊。
- RPM 套件管理程式現在包含了一個
%autosetup
巨集,以協助自動化套用更新的程序。