【发布时间】:2017-03-08 12:02:46
【问题描述】:
我创建安装到 /opt/mypackage 的 RPM,其中 /opt/mypackage 是使用“前缀:/opt/mypackage”前缀在 RPM 规范文件中设置的重定位
如果在 RHEL5(RPM 版本 4.4.2.3)上构建并安装了 RPM,则以下命令有效:
rpm -i --relocate /=`pwd`/ mypackage.rpm
rpm -i --relocate /opt=`pwd`/opt mypackage.rpm
rpm -i --relocate /opt/mypackage=`pwd`/opt/mypackage mypackage.rpm
但是,如果 RPM 是基于安装在 RHEL7(RPM 版本 4.11.3)上构建的,那么就会出现问题:
path / in package <mypackage> is not relocatable
path /opt in package <mypackage> is not relocatable
但是重新定位 /opt/mypackage 可以正常工作。
注意:rpm -i --prefix=/opt/mkpackage 在这两种情况下都可以正常工作。
那么我认为 RPM sec 中的“前缀:”应该允许重定位路径的任何前缀是否正确?例如前缀:/opt/mypackage 允许重定位 /opt/mypackage /opt 或 /
我可能做错了什么或者这可能是一个错误?
我注意到,如果我使用 --badreloc 一切正常。为什么这里需要 badreloc?
【问题讨论】: