我需要安装一个具有 4 个依赖项的应用程序(来自 .spec 文件):
Requires: PA-KBU-KBUONE-SHARED
Requires: PA-KBU-KBUONE-PLI-CONF
Requires: PA-KBU-KBUONE-PLA-CONF
Requires: PA-KBU-KBUONE-PLA-BIN
这 4 个依赖项必须按该顺序安装(第一个 SHARED,第二个 PLI-CONF 等),但是当我执行 yum install app 时,yum 会对该列表进行排序:
Installing:
app noarch 10.0.0-1 localrepo 1.4 k
Installing for dependencies:
PA-KBU-KBUONE-PLA-BIN noarch 10.0.0-1 localrepo 20 M
PA-KBU-KBUONE-PLA-CONF noarch 10.0.0-1 localrepo 2.5 M
PA-KBU-KBUONE-PLI-CONF noarch 10.0.0-1 localrepo 10 k
PA-KBU-KBUONE-SHARED noarch 10.0.0-1 localrepo 7.1 k
有没有办法控制 yum 安装依赖项的顺序?
答案1
据我所知,SPEC 文件和 yum 都没有任何(命令行)开关来确定依赖项的安装顺序。我认为它们通常按字典顺序排列。
关于依赖项的唯一要求通常是,必须先满足依赖项,然后才能安装依赖于它们的包。如果顺序是 所需及事项你可能做错了什么,这不是依赖问题在应用程序包中。
要强制自动订购,您实际上只有一个选择:
- 在这些包中包含正确的依赖项,这些依赖项本身也是依赖项,即
PA-KBU-KBUONE-PLI-CONF 需要 PA-KBU-KBUONE-SHARED
PA-KBU-KBUONE-PLA-CONF 需要 PA-KBU-KBUONE-PLI-CONF 等等,
并以此方式生成依赖链。
当然,您总是手动按照正确的顺序排列它们,或者按顺序安装软件包,并且通常当在单个 yum 命令行上选择多个软件包时,它们也会按照该顺序安装。
答案2
我可以说你实际上并没有安装这些软件包,否则你就不会问这个问题了。
通常,yum 已经做到了这一点,在需要依赖项的包之前先安装依赖项。只有在列出要安装的包时,才会对它们进行排序,以方便使用。