我正在尝试使用中概述的方法在domU
CentOS 下安装 fedoradom0
克森之书。我问了另一个关于一致错误消息的问题cpio:坏魔法当我尝试在 fedora-release-15.1 rpm 上运行 rpm 命令时。该教程实际上是将 CentOS 5.2 安装到逻辑卷中。如果我wget
在类似的 CentOS 安装上运行rpm
,然后运行rpm -i
命令(如概述),它可以正常工作。
那么 CentOS 5.6 下的 rpm 和 fedora 会出现什么问题呢?运行该--test
选项将返回以下内容:
[root@localhost fedRoot]# rpm -ivh --test --root /mnt/fedRoot fedora-release-15-1.noarch.rpm
warning: fedora-release-15-1.noarch.rpm: Header V3 RSA/SHA256 signature: NOKEY, key ID 069c8460
error: Failed dependencies:
fedora-release-rawhide = 15-1 is needed by fedora-release-15-1.noarch
rpmlib(FileDigests) <= 4.6.0-1 is needed by fedora-release-15-1.noarch
rpmlib(PayloadIsXz) <= 5.2-1 is needed by fedora-release-15-1.noarch
这些失败的依赖关系意味着什么?是否有可能做我想做的事情(在活动的 CentOS 系统中的单独 LV 上安装 fedora)?是否可以更新我的系统中的这些依赖项?或者是时候结束这条特定的道路了……
答案1
手动使用该rpm
工具,您将无法将此类单个软件包安装到新位置。每个包都会依赖于其他包,并且 rpm 将拒绝继续运行,直到满足所有这些依赖关系。对于这样的空白目录,您至少需要一组最小的软件包来组成一个完整的系统。
为了继续,您需要向命令行添加足够的包来满足这些依赖关系。您不是一次执行一个包,而是将一个 RPM 命令与一系列包放在一起。
这就是上层包管理器yum
发挥作用的地方。他们挖掘 rpm 元数据来查找依赖项,下载这些文件,并将它们添加到 rpm 命令链中。
我不知道 yum,但我使用的上层 rpm 包管理器能够执行这样的目标安装,并处理幕后的依赖关系。您可能会为 yum 查找“instll-dist”或“root”类型参数,并使用它而不是直接使用 rpm。