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),以及格式化的相依性字串捷徑(PROVIDENEVRSREQUIRENEVRSCONFLICTNEVRSOBSOLETENEVRS)。
  • 已提供了幾項新的指令,包括:
    • rpmkeys
    • rpmdb
    • rpmspec
    • rpmsign
  • RPM 套件管理程式現在已包含了新的程式碼片段切換選項,以啟用 runtime 巨集擴展或是 runtime queryformat 擴展。
  • 交易前與交易後的程式碼片段相依性現在已能正確以 Requires(pretrans)Requires(posttrans) 顯示。
  • RPM 套件管理程式現在包含了 OrderWithRequires 標籤,以允許使用者提供額外的排序資訊。這個新標籤使用了與 Requires 標籤相同的語法,不過卻不會產生相依性。若提及的套件存在相同的交易中,當計算交易排序時,排序提示(ordering hint)將會被視為「Requires」。
  • 規格檔案中的行接續符號和巨集擴展已不再受到指定的限制。
  • RPM 套件管理程式現在已允許使用者指定上游版本的控制軟體庫資訊。
  • RPM 套件管理程式現在包含了一個 %autosetup 巨集,以協助自動化套用更新的程序。