linux - 是否有另一种方法来识别与 rpm 规范文件中的 rpm 命令一起使用的参数或参数
问题描述
在 rpm 规范文件中,我需要识别用户使用过rpm -ivh
或rpm -Uvh
. 一般来说,$1
值将在%pre
. 但在我的新 rpm 中,我们正在修改安装位置。在这种情况下,when is check$1
显示 和 的值-ivh
相同-Uvh
。
%pre
if [ "$1" -ge 2 ]; then
legacy_exist=true
if legacy_exist; then
rm -rf *.txt
else
mkdir xxx
fi
pre
%pre
if [ "$1" -ge 2 ]; then
legacy_exist=false
if legacy_exist; then
rpm -e xxx
else
mkdir xxx
fi
pre
我希望仅在使用 -Uvh 的情况下删除文件,但在我的情况下,当我在两种情况下都设置为 true 时更改了 rpm 路径并且$1
值仅显示 2。如果 rpm 没有更改安装路径,则代码可以正常工作。
解决方案
您不应该检查命令行参数。行为与没有安装该名称的包时rpm -U
完全相同。rpm -i
$1
变量是操作完成时将留在系统中的具有此名称的包的数量。有关完整的可能值集,请参阅:
https ://docs.fedoraproject.org/en-US/packaging-guidelines/Scriptlets/#_syntax
并且请不要从 scriptlet 调用 rpm。RPM 不可重入。迟早你会破坏 rpmdb。
推荐阅读
- python - Azure 容器实例部署失败
- java - 使用 @ConfigurationProperties 解析的属性的要求
- excel - 在 VBA 函数中使用 Round 函数
- openmodelica - OmSimulator 与 Python(如何在 OmSimulator Python 上禁用输出文件更新)
- pug - 创建一个带有跨度的 li 和文本
- javascript - 如何从 forEach 调用一些全局变量
- corda - NodeRPCConnection.java 而不是 NodeRPCConnection.kt
- python - 字符串格式 - 法国口音
- javascript - 在 Flow 中声明一个通用形状的对象
- python - python 2.7 搜索和替换文件中的多行