现在这个问题有多种变体,但没有一种适用于我。
我想自动安装本地下载的.rpm
文件以及运行此安装时所需的任何其他依赖项。
这个问题非常特定于本地下载,因此请不要建议运行 yum-downloader 以获取已知的软件包名称。什么都不知道。我发现了一个不错的.rpm
,下载了它,现在想安装它。
详细示例:
我的系统已经有polycoreutils-python-2.5-11
.如果我使用 yum 安装,这是我得到的最高版本。但是,我得到了一个本地下载的升级文件,该文件的版本更高polycoreutils-python-2.5-24 ... .rpm
当然,当我尝试安装它时,它会抱怨新的缺失部门,即polycore-utils
和setools-lib
.我也安装了它们,但版本较旧。所以我可以去下载所需的新.rpm
文件。
但是我不能对逐步发现的尽可能多的依赖项重复此过程。安装本地下载的包及其所需依赖项的最佳方法是什么。
您需要使用yum
来安装您下载的软件包。 然后,yum
将为您管理依赖项:
Yum install /path/to/downloaded.rpm
如果yum
找不到你需要的依赖项,你应该告诉yum
他在哪里可以找到它们:添加他可以找到它们的存储库。
编辑有关安装外部下载的软件包的多个备注。
- 如果可以的话,坚持使用官方仓库中可用的版本;或者相关仓库(如 centos 的
epel
或 opensuse 的packman
)。 - 一旦你开始从互联网上下载自己的
rpms
;尽量靠近你的操作系统和你的操作系统版本。您离操作系统版本越远;您获得依赖项错误的可能性就越大。您很可能必须开始升级如此多的软件包,以至于您接近进行手动分发升级;这显然是相当危险的。 - 如果你发现一个软件包被某人重新打包为你的操作系统和操作系统版本;你可以简单地将他的仓库添加到你的
yum
;即使只是为了安装你的rpm(你可以禁用或删除该仓库)。添加此存储库时要小心,不要在不需要的情况下开始升级太多软件包;因为如果这不是官方维护的存储库,您可能会再次遇到问题。 - 如果您没有找到可以临时添加到
yum
的存储库,剩下的唯一解决方案是手动将所有依赖项下载到本地目录中,然后运行yum install directory/*rpm
。请注意,如果幸运的话,您可能会在下载要安装的 rpm 的位置旁边找到您所依赖的 rpm。否则 http://rpm.pbone.net/index.php3 是一个开始搜索的好地方。