1

私は自分のJavaコード用にRPMをビルドしようとしています.RPMビルドおよびインストールセクションは正常に機能しますが、後でいくつかのファイルを作成してJavaアプリケーションを起動するシェルスクリプトファイルを実行するために%postセクションにシェルスクリプトを追加しました。正常にコピーされましたが、%postセクションで、失敗した依存関係のbin / shエラーが発生します。Linuxマシンでrpmをビルドしており、ターゲットマシンはcentOSです。AutoReqProvも試しました。スペックファイルにありません。インストールを実行していません。ルートユーザーとして、また、ターゲットマシンにANT(Javaコードをビルドするためにそれを使用するiam-これは問題に関連していない可能性があります)がインストールされていることは期待されていません。以下のコードを添付しています。デフォルトのインストール場所は次のとおりです。 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

私もグーグルで検索しましたが、仕様からシェルスクリプトを実行する方法を見つけることができませんでした.oust postセクションで、コマンドラインを実行しようとしましたが、問題がどこにあるかを指摘できれば助かりますか?

4

1 に答える 1

2
%post -p /bin/bash

これにより、ポスト スクリプトにターミナルが与えられ、bash コマンドとそのすべての操作が実行されます。

于 2012-02-13T07:19:42.493 に答える