5

tar.gzRPM を作成したい があり、現在仕様ファイルに取り組んでいます。%files.specのセクションにファイルを含めるための規則が何であるかを理解できなかったようです。Mytar.gzは 2 つの python パッケージで構成され、makefile を介してインストールされます。makefile は、それらをインストールするためにsetup.pywhich usesを呼び出すだけです。distutils setup()

現在、自分のドキュメントが含まれていますが、他に何を含めるかを選択する方法がわかりませんでした:

%files
%doc README changelog
...

また、この makefilemanはアプリケーションのページを生成します。これを.specファイルのどこに/どのように含める必要がありますか?

私はredhatでこれをやっています。

4

1 に答える 1

6

この%filesセクションには、バイナリ パッケージに含まれ、ターゲット マシンにインストールされるすべてのファイルをリストする必要があります。

本に従って RPM を作成している場合、仕様ファイルは 2 つの多少異なる目的を果たします。これは、ソース コードをビルド アーティファクトに変換する方法を詳述するビルド スクリプトと、ターゲット マシンにインストールする必要があるビルド製品を詳述するパッケージング スクリプトです。あなたの場合、ビルドの側面は非常に軽量です。

この従来のアプローチでは、makefile はビルド フェーズで実行され、%filesディレクティブは結果のビルド アーティファクトのどれをインストールする必要があるかをリストします。明確にするためmake installに、従来のアプローチでは使用しないかDESTDIR、RPM ビルド ディレクトリ (つまり、ではなく、または何か) にインストールするために/usr/lib/python/foo使用し~/rpmbuild/BUILD/usr/lib/python/foo、そこから でファイルを選択します%files

そのため、前のセクション (おそらく%install) で makefile を実行してビルド領域にインストールし、その%filesセクションを使用して結果を取得する必要があります。セクションではワイルドカードを使用できるため、%files個々のファイルごとに明示的に名前を付ける必要はありません。

それは理にかなっていますか?私はあなたの質問を誤解しましたか?

于 2012-12-09T11:37:45.293 に答える