如何通过自动下载/安装其他依赖项来安装本地 .rpm 文件

Posted

技术标签:

【中文标题】如何通过自动下载/安装其他依赖项来安装本地 .rpm 文件【英文标题】:How to Install a local .rpm file by automatically downloading/installing other dependencies 【发布时间】:2019-10-15 11:46:34 【问题描述】:

现在这个问题有多种变体,但没有一个适用于我。

我想自动安装本地下载的.rpm 文件和运行此安装时所需的任何其他依赖项。

这个问题是针对本地下载的,所以请不要建议为已知的包名运行 yum-downloader。什么都不知道。我发现了一个不错的.rpm,下载了它,现在想安装它。

详细示例:

我的系统已经有polycoreutils-python-2.5-11。如果我使用 yum 安装,这是我得到的最高版本。但是,我得到了一个本地下载的升级文件,它的版本更高polycoreutils-python-2.5-24 ... .rpm

当然,当我尝试安装它时,它会抱怨缺少新的部门,即polycore-utilssetools-lib。我也安装了它们,但版本较旧。所以我可以去下载所需的新.rpm 文件。

但是对于逐步发现的许多依赖项,我无法重复此过程。安装本地下载的包及其所需依赖项的最佳方式是什么。

【问题讨论】:

【参考方案1】:

你必须使用yum 来安装你下载的那个包。然后yum 将为您管理依赖项:

Yum install /path/to/downloaded.rpm

如果yum 找不到您需要的依赖项,您应该告诉yum 他在哪里可以找到它们:添加他可以找到它们的存储库。

编辑 关于安装外部下载包的多处备注。

如果可以的话;坚持使用官方存储库中可用的版本;或在相关存储库中(如epel 用于centos 或packman 用于opensuse)。 一旦您开始从互联网上下载自己的rpms;尽量靠近你的操作系统和你的操作系统版本。你离你的操作系统版本越远;你越有可能得到依赖错误。很有可能您将不得不开始升级如此多的软件包,以至于您即将进行手动分发升级;这显然是相当冒险的。 如果您发现有人为您的操作系统和操作系统版本重新打包的软件包;您可以简单地将他的存储库添加到您的yum;即使只是为了安装 rpm(之后您可以禁用或删除该存储库)。添加此存储库时要小心,不要在不需要的情况下开始升级太多软件包;因为如果这不是官方维护的存储库,您可能会再次遇到问题。 如果找不到可以临时添加到yum 的存储库,唯一剩下的解决方案是将所有依赖项手动下载到本地目录,然后运行yum install directory/*rpm。请注意 - 如果幸运的话 - 您可能会在下载要安装的 rpm 的位置旁边找到您依赖的 rpm。否则http://rpm.pbone.net/index.php3 是一个非常好的开始搜索的地方。

【讨论】:

不,它没有。它说:error: Failed dependencies: xyz > 1.2.3 needed by downloaded @KingJulian 我用多条评论编辑了我的答案,这些评论可能会对您有所帮助。祝你好运。

以上是关于如何通过自动下载/安装其他依赖项来安装本地 .rpm 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何在没有 root 用户的情况下在 Linux (CentOS) 中安装软件包并进行自动依赖处理?

从 CRAN 镜像安装具有依赖项的本地 R 包

rpm包安装时发现缺少其他依赖

离线安装rpm包并解决依赖(升级vsftpd为例)

如何编辑通过 npm 安装的节点模块?

如何将其他依赖项安装到容器中?