![Yum 没有使用自定义 repo 安装特定的 RPM 版本](https://linux22.com/image/635873/Yum%20%E6%B2%A1%E6%9C%89%E4%BD%BF%E7%94%A8%E8%87%AA%E5%AE%9A%E4%B9%89%20repo%20%E5%AE%89%E8%A3%85%E7%89%B9%E5%AE%9A%E7%9A%84%20RPM%20%E7%89%88%E6%9C%AC.png)
我们使用 RPMS 进行打包,并使用 yum 来更新我们的环境。
我们的生产服务器中安装了 rpm package-5.1.1-3,而 yum 存储库中有 2 个较新的版本,例如 package-5.1.3-3 和 package-5.2-27。
使用 yum,我们尝试安装 package-5.1.3-1,但 yum 安装了 package-5.2-27。
这给生产带来了严重问题。
如果我们从自定义 yum 存储库中删除 5.2-27 包并尝试安装 5.1.3-1,它将按预期安装。
我认为 yum 应该允许安装特定版本的 RPMS,我记得这样做过几次。我尝试调试但没有成功。
已安装的软件包:
root@snelloru]# rpm -qa|grep package
pacakge-database-5.1.1-3
package-5.1.1-3
安装更高版本(5.1.3-1)
yum install package-5.1.3-1
Loaded plugins: rhnplugin, security
Excluding Packages in global exclude list
Finished
Setting up Install Process
Package matching package-5.1.3-1.x86_64 already installed. Checking for update.
Resolving Dependencies
--> Running transaction check
--> Processing Dependency: package = 5.1.1-3 for package: package-database
---> Package package.x86_64 0:5.1.3-1 set to be updated
--> Running transaction check
---> Package package-database.x86_64 0:5.2-23 set to be updated
--> Processing Dependency: package = 5.2-23 for package: package-database
--> Running transaction check
---> Package package.x86_64 0:5.1.3-1 set to be updated
---> Package package.x86_64 0:5.2-23 set to be updated
--> Finished Dependency Resolution
Dependencies Resolved
===============================================================
Package Arch Version Repository Size
===============================================================
package x86_64 5.2-23 repo 22 M
package-database x86_64 5.2-23
输出yum list --showduplicates package package-database
root@snelloru]# yum list --showduplicates package package-database
Loaded plugins: allowdowngrade, security
rightscale-epel | 951 B 00:00
Installed Packages
package.x86_64 5.1.1-3 installed
package-database.x86_64 5.1.1-3 installed
Available Packages
package.x86_64 5.1-126 repo
package.x86_64 5.1.1-3 repo
package.x86_64 5.1.2-3 repo
package.x86_64 5.1.3-1 repo
package.x86_64 5.2-25 repo
package.x86_64 5.2-26 repo
package.x86_64 5.2-27 repo
package-database.x86_64 5.1-126 repo
package-database.x86_64 5.1.1-3 repo
package-database.x86_64 5.1.2-3 repo
package-database.x86_64 5.1.3-1 repo
package-database.x86_64 5.2-2 repo
package-database.x86_64 5.2-3 repo
package-database.x86_64 5.2-4 repo
package-database.x86_64 5.2-24 repo
package-database.x86_64 5.2-25 repo
package-database.x86_64 5.2-26 repo
package-database.x86_64 5.2-27 repo
我的观察:
如果我们尝试安装与服务器中已经安装的版本相同但版本号不同的软件包,它会按预期工作。
例如,如果我们在服务器上安装了 5.2-10,并且我们尝试安装 5.2-20,它将按预期工作,尽管我们在 repo 中有更高的版本,如 5.2-25..5.2-28。
仅当我们安装了不同版本的 rpm 时它才不起作用
对此有什么想法吗?