在RPM安装期间重写脚本文件中的路径?

时间:2017-05-15 12:57:58

标签: sed build path install rpm

我遇到了以下问题:

为了将我的SPEC内置到RPM中,我必须在我的脚本文件中放置正确的路径:

sed -i -- "s|/opt/my_app_folder|$RPM_BUILD_ROOT/opt/my_app_folder|g" ./bin/startup.sh

如果不这样做,则构建的%install部分失败,因为脚本找不到/ opt / my_app_folder,实际上构建是在$ RPM_BUILD_ROOT / opt / my_app_folder中完成的。但是,我担心这种“sed”方式是一种可怕的方式。

此外,在安装构建的RPM时,脚本文件中的路径不会被重写,因此我必须手动将/home/user001/rpmbuild/BUILDROOT/my_app-1.0.0-0.x86_64/opt/my_app_folder替换为/选择/ my_app_folder。

所以我想知道什么是正确的方式:

  • 我应该只在文件中使用相对路径吗?

  • 是否有SPEC选项可以在RPM安装期间重写文件?

  • 我应该将这些文件视为配置文件并在安装后手动重写吗?

  • 或者我应该在安装过程中不使用脚本,因为它不是RPM的用途?

1 个答案:

答案 0 :(得分:0)

这个问题在20年前解决了;您的脚本可以使用GNU标准DESTDIR。在正常操作期间应该未设置。 %make_install宏正确使用它。