安装RPM时出错 - spec-failed dependencies / bin / sh的%post脚本

时间:2012-01-30 00:17:14

标签: java shell rpm rpm-spec

我正在尝试为我的java代码构建RPM .RPM构建和安装部分工作正常。但是,后来我在%post部分添加了一个shell脚本来运行创建一些文件并启动java应用程序的shell脚本文件。该文件被复制正常。但是,在%post部分我得到失败的依赖bin / sh error.I我在linux机器上构建rpm并且目标机器是centOS.I也尝试了 AutoReqProv:没有在spec文件中。我没有以root用户身份运行安装。此外,目标计算机不应该有ANT(使用它来构建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 oust post部分运行shell脚本,我试图通过命令行运行它执行正常。我很感激帮助,如果有人可以指出问题出在哪里是什么?

1 个答案:

答案 0 :(得分:1)

%post -p /bin/bash

这将为你的帖子脚本提供一个终端来运行bash命令以及你正在做的所有事情。