rpm 规范文件的安装后脚本中的 yum/rpm install 命令

Posted

技术标签:

【中文标题】rpm 规范文件的安装后脚本中的 yum/rpm install 命令【英文标题】:yum/rpm install command in post install script of rpm spec file 【发布时间】:2015-05-20 22:18:02 【问题描述】:

我想创建带有可选依赖项的 .rpm 文件。即,如果由于缺少文件/网络问题而未安装“依赖项”,则整个 rpm 安装不应停止。 而在http://www.rpm.org/wiki/PackagerDocs/Dependencies 的“弱依赖”部分中声明它不受RPM 规范的支持。所以我想通过将可选的依赖包放在“post”安装脚本中来做周转方法。当我在后记中包含“yum install”时,在执行时它会进入等待状态(没有消息),当我杀死进程时它会给出这样的消息..

Non-fatal POSTIN scriptlet failure in rpm package
Another app is currently holding the yum lock; waiting for it to exit...
  The other application is: yum
    Memory :  71 M RSS (365 MB VSZ)
    Started: Wed Mar 18 13:17:45 2015 - 00:16 ago
    State  : Sleeping, pid: 3870

必需的软件包正在正确安装,但可选依赖项中出现此错误。 我认为这将陷入僵局,因为两个yum 进程都在等待其他进程的完成。 有没有更好的方法来解决 RPM 标准中这种类型的可选依赖问题?

【问题讨论】:

您应该包含当前的 SPEC 文件或至少包含 %post 部分。 这里我的 rpm 依赖于 Python,而我希望它弱依赖于 python-pip。 Requires: python %post yum install python-pip 我相信您遇到了这个问题:***.com/questions/20989908/… -- 不知道如何解决它。会再看一遍。 【参考方案1】:

由于这个问题 (package installtion issue , rpm spec file , which include yum to install dependence),我将创建一个 shell 脚本来满足您的需求,并在您的规范文件中保留“yum”。

在 shell 脚本(类似于任何 install.sh 脚本)中,让它检查可选依赖项,并在需要时将它们与您帖子中描述的 RPM 一起安装。

【讨论】:

以上是关于rpm 规范文件的安装后脚本中的 yum/rpm install 命令的主要内容,如果未能解决你的问题,请参考以下文章

Linux软件安装卸载(yum+rpm)

linux中系统的软件安装 yum/rpm

MySQL官网下载安装yum/rpm步骤

yum rpm总线错误总线错误(吐核)如何解决

Linux命令安装命令(yum,rpm)

linux无网络情况下安装rpm包