2017-05-15 101 views
0

我遇到以下问题:RPM安装期间在脚本文件中重写路径?

为了让我的SPEC建成一个RPM,我已经把我的脚本文件中的正确的道路:

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

如果我不这样做,构建的%安装部分失败,因为脚本找不到/ 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安装期间重写文件?

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

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

回答

0

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