![yum:安装本地 RPM 和所有本地依赖项](https://linux22.com/image/777861/yum%EF%BC%9A%E5%AE%89%E8%A3%85%E6%9C%AC%E5%9C%B0%20RPM%20%E5%92%8C%E6%89%80%E6%9C%89%E6%9C%AC%E5%9C%B0%E4%BE%9D%E8%B5%96%E9%A1%B9.png)
我的主目录中有本地生成的rpm
包(主包及其依赖项)。该spec
文件定义了依赖项。我想使用单个yum
或dnf
命令安装它,并让它在我的目录中找到依赖项并相应地安装它们。我试过yum
:
% yum -y localinstall ~/rpms/mypackage-2.1.1-2.1.x86_64.rpm
然而它抱怨道:
Error:
Problem: conflicting requests
- nothing provides mypackage-libs(x86-64) = 2.1.1-2.1 needed by mypackage-2.1.1-2.1.x86_64
(try to add '--skip-broken' to skip uninstallable packages or '--nobest' to use not only best candidate packages)
我是不是做错了什么,或者这说明我的spec
文件中有一个错误?
答案1
mypackage
yum 的错误与需要子包mypackage-libs
(完全相同的版本)一致。这是一种可以用于包的模式。
但是您需要libs
先安装,或者同时安装两者。对于松散的 rpm,请提供两个文件。由于文件名按照惯例非常相似,因此这里有用的 shell 技巧是括号扩展:
yum localinstall ~/rpms/mypackage{,-libs}-2.1.1-2.1.x86_64.rpm
我想使用单个 yum 或 dnf 命令来安装它,并让它在我的目录中找到依赖项并相应地安装它们。
yum 需要一个 repo 来使用依赖项解决中的软件包目录(或远程服务器)。这将启用只需yum install mypackage
考虑创建自定义镜像,使用createrepo
(又名createrepo_c
)或更高级别的软件内容管理解决方案。