我有一个 RPM
- 文件副本(例如 123.so )
- 在 %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 访问权限(不执行)。