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

Sed 在RPM安装期间是否重写脚本文件中的路径?,sed,build,path,installation,rpm,Sed,Build,Path,Installation,Rpm,我遇到了以下问题: 为了将我的规范构建到RPM中,我必须在脚本文件中设置正确的路径: sed -i -- "s|/opt/my_app_folder|$RPM_BUILD_ROOT/opt/my_app_folder|g" ./bin/startup.sh 如果没有,则生成的%install部分将失败,因为脚本找不到/opt/my_app_文件夹,实际上生成是在$RPM_build_ROOT/opt/my_app_文件夹中完成的。然而,我担心这种“sed”方式是一种可怕的方式 此外,安装内置R

我遇到了以下问题:

为了将我的规范构建到RPM中,我必须在脚本文件中设置正确的路径:

sed -i -- "s|/opt/my_app_folder|$RPM_BUILD_ROOT/opt/my_app_folder|g" ./bin/startup.sh
如果没有,则生成的%install部分将失败,因为脚本找不到/opt/my_app_文件夹,实际上生成是在$RPM_build_ROOT/opt/my_app_文件夹中完成的。然而,我担心这种“sed”方式是一种可怕的方式

此外,安装内置RPM时,脚本文件中的路径不会被重写,因此我必须手动将/home/user001/rpmbuild/BUILDROOT/my_app-1.0.0-0.x86_64/opt/my_app_文件夹替换为/opt/my_app_文件夹

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

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

  • 在RPM安装过程中是否有重写文件的规范选项

  • < L> > P>是否应将这些文件视为CONF文件,并在安装后手动重写?

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


    • 这个问题在20年前就解决了;您的脚本可以使用GNU标准。在正常运行期间,应将其取消设置。
      %make\u install
      宏正确使用它