RPM %post% 脚本和从 bash 执行此脚本有什么区别?

RPM %post% 脚本和从 bash 执行此脚本有什么区别?

我有一个 RPM

  1. 文件副本(例如 123.so )
  2. 在 %post 中,运行

/etc/init.d/VontuMonitor 重新启动

如果手动复制相同的文件(用户是 root)并手动启动相同的命令,则一切正常。如果我创建一个完全相同的 RPM,则脚本会失败并出现“文件未找到”异常(尽管指定的文件确实存在)。

RPM 和复制并执行命令有什么区别?我认为 RPM 做了一些事情,阻止了脚本正常工作,但这可能是什么?有什么方法可以跟踪 RPM 安装程序执行的操作吗?

我有CentOS,/etc/init.d/VontuMonitor是第3方脚本。

[UPD] 这是我的 RPM,我确信除了文件复制和规范文件中的此命令之外什么都没有。

答案1

这意味着您没有执行完全相同的命令;它还取决于你的rpm之前做了什么;它安装了哪些文件等...您可以通过执行以下命令来查看 rpm 执行的脚本:

rpm -qp <your.rpm> --scripts

然后你可以与你手动执行的命令进行比较

答案2

问题超出了描述。 .spec 文件包含 %defattr 命令,该命令已将 /opt /* 设置为 644 访问权限(不执行)。

相关内容