我正在尝试为我的Java代码构建RPM.RPM构建和安装部分工作正常。但是,后来我在%post部分中添加了一个Shell脚本来运行创建一些文件并启动Java应用程序的Shell脚本文件。复制得很好。但是,在%post部分中,我得到了失败的依赖项bin / sh错误。我在linux机器上构建rpm,目标机器是centOS。我也尝试了AutoReqProv:在spec文件中没有。我没有运行安装作为root用户。此外,目标计算机不应在其上具有ANT(iam使用它来构建Java代码-这可能与问题无关)。我将代码附加在下面。默认安装位置在tmp文件夹。(用于测试)。

Summary: test           Summary: test
        Name: test
        Version: 1
        Release: 1
        License: Restricted
        Group: Applications/System
        BuildRoot: ~/rpm/BUILD/helloworld-root
        URL: http://mycompany.net/helloworld.tar
        Vendor: Mycompany
        Packager: Mycompany
        Prefix: /tmp
        BuildArchitectures: x86_64

        %description
         Hello World

        %prep
        pwd
        %build
        pwd
        echo "changing directory"
        echo $RPM_BUILD_ROOT
        cd %{_sourcedir}
        pwd
        ant -f testbuild.xml
        %install
        pwd
        echo "in install"
        echo $RPM_BUILD_ROOT
        rm -rf $RPM_BUILD_ROOT
        mkdir -p $RPM_BUILD_ROOT/tmp/test/
        cd $RPM_BUILD_ROOT/tmp/test/
        tar -xf %{_builddir}/test.tar

        %post
        sh /tmp/test/createdb.sh
        %clean
        %files
        /tmp/test
        %changelog


我也在谷歌上搜索,但找不到如何从spec.with被驱逐后节中运行shell脚本,我试图通过命令行运行它执行的很好。如果有人可以指出问题所在,我感谢您的帮助?

最佳答案

%post -p /bin/bash


这将使您的发布脚本有一个终端可以运行bash命令以及您在其中执行的所有操作。

关于java - 安装RPM时出错-规范失败的依赖项/bin/sh的%post脚本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9058063/

10-11 22:56
查看更多