【问题标题】:post install dependencies order in spec files在规范文件中发布安装依赖项顺序
【发布时间】:2018-07-07 04:17:11
【问题描述】:

是否可以在 Centos /RHEL 7 的规范文件中发布安装需要依赖项? 我试过 Requires: somepackage = 1.0.0.0 问题是我需要在安装依赖项之前运行一个脚本。 我试图在 %pre 部分中运行它,但它似乎在运行所需的 %pre 部分之前没有执行,并且由于缺少许可证文件而失败。

spec 文件如下所示:

  Name:   MyClient
  Requires:    MyServerPackage = 1.0.0.0

  %pre
  echo "Write license that is needed by MyServerPackage prior to install" > /tmp/mylicense

问题是我得到一个错误:%pre(MyServerPackage) scriptles failed, exit status 1 因为 /tmp/mylicense 在 MyServerPackages %pre 脚本运行时不存在。 我还尝试添加一个名为 mylicense 的包并添加一个 PreReq:mylicense。但无论我尝试什么,我都会从 MyServerPackage %pre 中的检查中得到该错误。

【问题讨论】:

标签: centos7 rpmbuild rpm-spec rhel7


【解决方案1】:

我需要在安装依赖项之前运行一个脚本。

那是不可能的;据您所知,该依赖项可能已在两年前安装。

要回答我认为你要去的地方,你可以指定特定部分需要一些东西:

Requires: MyServerPackage
Requires(pre,preun): MyServerPackage

这将告诉它(第 1 行)要安装,MyServerPackage 应该始终存在。然后第 2 行明确表示如果您同时安装它们,它应该在安装或尝试卸载此软件包之前。例如,如果其他包设置了用户名等,这很有用。

【讨论】:

  • 我将此标记为正确答案。因为它是:) 但是我实际上问错了这个问题。关键是它实际上是关于一个包装器包。所以依赖项肯定不会更早安装。但是我可以通过使用 %pretrans 宏来解决我的问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-01
  • 1970-01-01
  • 2018-12-04
  • 2021-02-02
  • 2019-05-19
  • 2023-03-25
  • 1970-01-01
相关资源
最近更新 更多