昨日、ようやくプログラムを Fedora 14 の RPM にパッケージ化しました。CentOS 4.8 ボックスでも同じようにビルドするのは簡単だと思いました。古いバージョンの rpm と distutils にはいくつかの制限があることがわかりました。
基本的な問題は、Python 2.7 の distutils が、スクリプトを指定できる「--post-install」というオプションをサポートしていることです。スクリプトが含まれており、yum または rpm でインストールすると実行されます。すべてが素晴らしいです。ただし、Python 2.3 には --post-install オプションがありません (実際には RPM では使用できません)。とにかく、.spec ファイルの "%install" セクションに追加するだけです。だから私はRPM構築プロセスを開始します
python setup.py bdist_rpm --spec-only
私の.specを作成します。それを編集して、スクリプトを .spec に貼り付けます。次に、ソースをビルドします
python setup.py bdist_rpm --source-only
ここから問題が発生し始めます。distutils は、次のサブディレクトリ ./build/bdist.linux-i686/rpm/ を作成します。その中にSPECS/netinfo.specというフォルダがあります(私のプログラムはnetinfoと呼ばれています)。ただし、作成したばかりのカスタム .spec は使用されません。生成された .spec を使用する必要があるため、これは奇妙です。デフォルトの .spec でビルドしようとすると、予想どおりスクリプトが RPM に含まれません。それをカスタム .spec で上書きしても、まだ機能しません。すべてのコマンドの .spec を再作成するようなものです。
bdist_rpm にはさまざまなコマンドがあり、次のコマンドで一覧表示できます。
python setup.py bdist_rpm --help
使用する .spec ファイルを指定できるオプションを見つけることを期待していました。しかし、Python 2.3 と 2.7 にはオプションがありません。
distutils でカスタム .spec ファイルを使用するには、簡単な方法が必要です。これを指定する方法を知っている人はいますか?
ありがとう、