次のエラーが発生するrpmパッケージをビルドしようとしました
- /usr/lib/rpm/find-debuginfo.sh /usr/src/redhat/BUILD/RPMS find: 無効な述語 `' エラー: /var/tmp/rpm-tmp.86590 (%install) からの終了ステータスが正しくありません理由があります.誰かがこれで私を助けることができます...ありがとう
BuildRoot
仕様ファイルで変数を定義してみてください。find-debuginfo スクリプトはそのディレクトリを数回調べますが、それがないと終了します。
これは通常、次のようになります。BuildRoot: %{_tmpdir}/%{name}-%{version}-%{release}
2 番目の質問については、スペック ファイルとソースを直接見ないと何とも言えません。私は決して RPM の専門家ではありません。Maximum RPM の第 13 章 (オンラインで無料で入手できるコピーがあります) をお勧めします。また、Tom Callaway のプレゼンテーション (良い RPM パッケージの作成方法) からのメモも参照してください。ここにある仕様の例は、過去に非常に役立つことがわかりました。
仕様では、上部でこれを行うことができます:
%define debug_package %{nil}
これはこの問題を回避するはずです
RedHat 5.3 サーバーでビルドしようとしたときに、これと同じ問題が発生しました。これが私が見つけたものです。エラーは、空のRPM_BUILD_ROOT
変数が原因のようです。以下は、問題のある行の 1 つです。
find "$RPM_BUILD_ROOT" ! -path "${debugdir}/*.debug" -type f \
\( -perm -0100 -or -perm -0010 -or -perm -0001 \) \
-print |
が定義されていない場合RPM_BUILD_ROOT
、find の最初の引数は空の文字列 "" であり、このエラーが発生します。興味深いことに、周りから引用符を削除する$RPM_BUILD_ROOT
と、最初の引数が「!」になるため、コマンドは正常に機能します。spec ファイルで「:」を定義する必要がないためBuildRoot
、これは確かにバグのように見えます。