バックグラウンド
いくつかの Web アプリのソース ファイルをインストール ディレクトリにコピーするだけの単純な rpm を構築しようとしています。Web アプリケーションは Java で作成され、ベンダーによって提供されます (つまり、私が作成したものではありません)。
以下のエラーにより、rpm のビルドに失敗します。しかし、同じベンダーの別の Java ベースの Web アプリ用にほぼ同じ rpm を構築することに成功しました。スペック ファイルは、インストール パスやソース ファイル名などの名前を除いて同じです。
問題
rpmbuild -v -bb --clean SPECS/web-app.spec
Permission denied
内のいくつかのファイルを削除しようとすると、 で失敗します{BUILDROOT}/web-app-1.0/tmp
。
rpmbuild
削除できなかったファイルのアクセス許可を確認しました。以下にいくつかの例を示します。
-r--r--r--. 1 signer signer 1203 Jan 13 2006 Adler32.class
-r--r--r--. 1 signer signer 19498 Jan 13 2006 Deflate.class
-r--r--r--. 1 signer signer 628 Jan 13 2006 Deflate$Config.class
-r--r--r--. 1 signer signer 8673 Jan 13 2006 InfBlocks.class
彼らは私のビルド ユーザー ( signer
) の正しい所有権とグループを持っていますが、書き込み権限はありません。
これらのファイルは、rpm 仕様で明示的に定義したプロセスの一部ではありません。私の仕様ファイルは run %setup
、ディレクトリを作成し、そこにファイルをコピーするだけです。抽出されたソース tarball に%setup
は、そのすべてのファイルに対する適切なアクセス許可があります。作成したツリーを抽出して削除できます。これらのファイルは、ソース tarball の一部ではありません。tmp
ファイルは Java ファイル処理に関連していると思います。rpmbuild
ビルドの終わり近くでjarファイルを「再圧縮」するのに長い時間がかかりました。それが何の目的なのかわからないし、私が展開しているアプリにそれが必要かどうかも疑わしい.
質問
これを修正するために、jar ファイルの再圧縮を無効にすることはできますか? 他のアイデアはありますか?