我想检查 rpm 正在安装或更新的 RPM 构建规范文件

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

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

rpm -ivh abc.rpm

或者
rpm -Uvh abc.rpm

是他们在规范文件中的任何 %command 以获取有关此命令的信息。

我的要求是,如果我有一个名为 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在安装旧版本之前,请停止这样做。

最佳答案

扩展上述内容:

在您的 %post[un]%pre[un]部分有一个变量,您可以检查该软件包是否已存在于系统上(正在更新/从升级中清除)或不存在(第一次安装/最终卸载)。

它看起来像这样:

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

关于我想检查 rpm 正在安装或更新的 RPM 构建规范文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13740254/

相关文章:

linux - 在 CentOS 上从 .tar.gz 文件批量安装 RPM 包

python-2.7 - 如何创建一个安装 python 依赖项的 RPM?

linux - 如何动态定义子包

python - setuptools中有 "python_sitelib"宏吗?

gradle - 从 Gradle 将 RPM 上传到 Artifactory

linux - rpm.spec 文件中的多个 tar(源文件)文件

dependencies - 尝试为 PCRE-8.31 制作 RPM

centos - 规范文件中的 pkgconfig(alsa) 无法识别已安装的 alsa、alsa-devel

Rpmbuild - 创建的 .rpm 的设置名称

linux - spec 文件中的 rpm -e {rpmName} 不起作用