听取其他问题我已经在机器上设置了本地 RPM 存储库Red Hat 8
,并将我的私人包放在其中,现在可以安装、更新等。
但是,有一个问题:我在我的私有存储库中添加的一个包实际上是官方 RedHat 存储库中可用的包的修改版本,并且具有相同的名称。因此,yum search
或yum install
将从官方镜像中提取包,而不是我的。我尝试使用来解决这个问题,yum --repo=my_private_repo ...
但这也会尝试从我的私人仓库而不是官方的。
解决这个问题的正确方法是什么?也许更好的选择是重命名包(我修改并添加到存储库中的包),以便它不会与官方包冲突?
如有任何建议我将不胜感激!
答案1
从 EL baseos 或 appstream repos 替换软件包很棘手。当您用其他东西替换发行版所期望的东西时,可能会发生噩梦般的依赖问题。这是 EL 社区不喜欢某些第三方存储库。
找到一个做着合理事情的仓库并检查他们对他们的包裹做了什么。宫内节育器就是一个例子。所有这些都需要满足以下条件才能确保安全:
大多数 IUS 套件都是安全替代套件。我们用这个术语来描述具有以下属性的套件。
- 取代库存包的功能。
- 使用与库存包不同的名称,以防止意外升级。
- 提供库存包名称以满足其他包的依赖关系。
- 与库存包冲突。
- 不得淘汰任何库存包装。
例如,除了“haproxy”,您还可以安装“haproxy22”。这是仅 IUS 提供的名称,但取代了 appstream 名称:
Name: haproxy22
Provides: haproxy = %{version}-%{release}
Provides: haproxy%{?_isa} = %{version}-%{release}
Conflicts: haproxy < %{version}-%{release}
注意你做因为rpm跟库存包有冲突,所以dnf不会考虑。
此方案要求版本号高于库存。考虑大幅增加版本号。
也可以看看Fedora 打包指南获取资源。