
跟進我其他人的建議問題我已經在電腦上設定了本機 RPM 儲存庫Red Hat 8
,將我的私人軟體包放在那裡,現在可以安裝、更新等。
然而,有一個問題:我在我的私人儲存庫中新增的一個套件實際上是官方 RedHat 儲存庫中可用的套件的修改版本,並且具有相同的名稱。所以yum search
或者yum install
會從官方鏡像中提取包,而不是我的包。我試圖解決這個問題yum --repo=my_private_repo ...
,但這也會嘗試從我的私人倉庫而不是官方的。
解決這個問題的正確方法是什麼?可能更好的選擇是重命名該包(我在存儲庫中修改並添加的包),這樣它就不會與官方包衝突?
如有任何建議,將不勝感激!
答案1
從 EL baseos 或 appstream 儲存庫替換軟體包很棘手。當您用其他東西替換發行版所期望的東西時,可能會發生噩夢般的依賴問題。這就是 EL 社群不喜歡某些特定內容的原因之一第三方回購協議。
找到一個做正常事情的倉庫並檢查他們對包包做了什麼。子宮內避孕系統就是一個例子。所有這些都必須真實才能安全:
大多數 IUS 包都是安全的替換包。我們用這個術語來描述具有以下屬性的套件。
- 替換庫存包的功能。
- 使用與庫存包不同的名稱以防止意外升級。
- 提供庫存包名稱以滿足其他包的依賴關係。
- 與庫存包衝突。
- 不得廢棄任何庫存包。
例如,您可以安裝的不僅僅是“haproxy”“haproxy22”。這是僅 IUS 提供的名稱,但取代了 appstream 名稱:
Name: haproxy22
Provides: haproxy = %{version}-%{release}
Provides: haproxy%{?_isa} = %{version}-%{release}
Conflicts: haproxy < %{version}-%{release}
注意你做想要 rpm 與stock包衝突,所以dnf不會考慮。
此方案需要比庫存更高的版本號。考慮大量增加版本號。
也可以看看Fedora 打包指南為了資源。