RPM Build Spec文件我想检查rpm正在安装或更新

时间:2012-12-06 09:11:12

标签: rpm rpmbuild rpm-spec rpm-maven-plugin

我想检查我创建的rpm是否由用户(客户端)安装或更新 喜欢

rpm -ivh abc.rpm

rpm -Uvh abc.rpm

是spec文件中的任意%命令,用于获取有关此命令的信息。

我的要求是如果我有一个名为abc-0.1-2.rpm的rpm,现在用户想要在安装abc.0.1-1.rpm之前安装它 rpm -ivh abc.0.1-2.rpm然后它允许安装 或者用户在安装旧版本之前使用命令rpm -Uvh abc.0.1-2直接更新rpm,然后停止执行此操作。

2 个答案:

答案 0 :(得分:7)

扩展上述内容:

%post[un]%pre[un]部分中,您可以检查一个变量,以查看系统上是否已存在此程序包(正在升级/正在升级)(第一次安装/最终卸载)。

看起来像这样:

%post
if [ $1 -eq 1 ]; then
    echo "First install complete"
else
    echo "Upgrade complete"
fi

答案 1 :(得分:1)

您的%pre[un]%post[un]脚本被赋予“一个数字,表示当前安装或删除当前软件包后系统上当前安装的软件包的实例数”,以便告诉您如果当前安装了RPM。请参阅this section of Maximum RPM