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

mee*_*tel 3 rpm rpmbuild rpm-spec rpm-maven-plugin

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

rpm -ivh abc.rpm
Run Code Online (Sandbox Code Playgroud)

要么

rpm -Uvh abc.rpm
Run Code Online (Sandbox Code Playgroud)

是他们在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 版本然后停止这样做.

lig*_*ike 7

为了扩展上述内容:

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

它看起来像这样:

%post
if [ $1 -eq 1 ]; then
    echo "First install complete"
else
    echo "Upgrade complete"
fi
Run Code Online (Sandbox Code Playgroud)


Aar*_*sco 1

您的%pre[un]%post[un]脚本将被赋予“一个数字,表示在当前软件包安装或删除后,当前安装在系统上的软件包实例的数量”,以便告诉您当前是否安装了 RPM。请参阅最大 RPM 的这一部分