我的情况类似如何仅使用本地依赖 RPM 文件安装本地 RPM?或者安装一个充满 RPM 的目录,以便在依赖的 rpm 之前安装提供依赖项的 rpm?,但我使用的是 Fedora 而不是 CentOS,并且使用的是 DNF 而不是 Yum。
我有一堆.rpm
文件下载到一个目录中。我想安装其中之一(比方说foo-1.0-1.rpm
)并拥有其依赖项。我只想安装所需的内容,而不是已下载的所有其他文件,例如foo-debuginfo-1.0-1.rpm
和foo-extraplugin-that-no-one-uses-1.0-1.rpm
.如果我这样做dnf install *
,我就会得到所有额外的垃圾。如果我这样做dnf install foo-1.0-1.rpm
,我会收到有关缺少bar
和baz
的依赖项的错误foo-essential
。
我应该怎么办?
答案1
Yum 的答案建议创建一个本地存储库并将存储库配置文件添加到/etc/yum.repos.d
.你可以这样做,但有了DNF,你就不必这样做了。您可以只指向没有配置文件的本地存储库。不过,您确实需要在目录中创建存储库。
所以:
- 更改为有问题的目录。
cd ~/Downloads/RPMs
, 例如。 createrepo_c .
在该目录中运行。 (或者createrepo_c ~/Downloads/RPMs
从任何地方。)- 跑步
dnf --repofrompath local,. install foo
笔记:
createrepo_c
是 的直接且更快的替代品createrepo
。
所提供的存储库的语法是 reponame 逗号路径。所以--repofrompath "My Repository",/home/mattdm/Downloads/RPMs
如果你愿意的话你可以做。您还可以提供一个 URL——可以是一个file:///
URL,也可以是一个远程 URL。
请记住仅将要安装的包指定为包名称,例如foo
,而不是文件名,例如foo-1.0-1.rpm
.
最后,如果您有其他配置的存储库也提供foo
并且这些存储库被拉入,那么,这将在将来成为一个问题,但现在,您可以用来--disablerepo
摆脱有问题的其他存储库。