rpm - 如何通过自动下载/安装其他依赖项来安装本地 .rpm 文件
问题描述
现在这个问题有多种变体,但没有一个适用于我。
我想自动安装本地下载的.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
他在哪里可以找到它们:在他可以找到它们的地方添加存储库。
编辑 关于安装外部下载包的多个注释。
- 如果你可以的话; 坚持使用官方存储库中可用的版本;或在相关存储库中(例如
epel
centos 或packman
opensuse)。 - 一旦您开始
rpms
从互联网下载自己;尽量靠近你的操作系统和你的操作系统版本。你离你的操作系统版本越远;你越有可能得到依赖错误。很有可能您将不得不开始升级如此多的软件包,以至于您即将进行手动分发升级;这显然是相当冒险的。 - 如果您发现有人为您的 os 和 os-version 重新打包的包;您可以简单地将他的存储库添加到您的
yum
; 即使只是为了安装 rpm(之后您可以禁用或删除该存储库)。添加此存储库时要小心,不要在不需要的情况下开始升级太多软件包;因为如果这不是官方维护的存储库,您可能会再次遇到问题。 - 如果您没有找到可以临时添加到的存储库,那么
yum
剩下的唯一解决方案是将所有依赖项手动下载到本地目录中,然后运行yum install directory/*rpm
. 请注意 - 如果幸运的话 - 您可能会在下载要安装的 rpm 的位置旁边找到您依赖的 rpm。否则http://rpm.pbone.net/index.php3是一个非常好的开始搜索的地方。
推荐阅读
- java - springboot 不会从 wsdl 生成类
- android - Xamarin Android,无法将 CG 桥设置为旧模式(MONO_GC_PARAMS=bridge-implementation)
- progress-bar - 如何在 vaadin 进度条中显示标签
- matlab - Matlab - 在逻辑数组中取第一个非零位置
- php - PHP - 当我在 isset() 中使用 $this 作为动态变量时,为什么不同版本的 PHP 返回不同的结果?
- php - 如何使用 gitlab ci 部署一个 php 网站
- ruby-on-rails - 使用输入销毁确认弹出窗口
- python - 安装python包时弹出消息
- storage - Ceph 原始存储使用与池存储使用
- arrays - 在 Perl6 中制作部分数组