post 规范文件中的安装依赖项顺序

post install dependencies order in spec files

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

规范文件如下所示:

  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 脚本 运行s。 我还尝试添加一个名为 mylicense 的包并添加一个 PreReq: mylicense。但无论我尝试什么,我都会从 MyServerPackage %pre.

中的检查中得到该错误

I need to run a script prior to the dependencies being installed.

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

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

Requires: MyServerPackage
Requires(pre,preun): MyServerPackage

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