RPMでパッケージ化してCentOS 7にインストールしたアプリケーションがあります。 RPMをインストールするときは、いくつかのコンパイルされたバイナリといくつかのPythonモジュールとその依存関係をインストールしたいと思います。
私のPythonモジュールには、CentOSが提供するPythonのバージョンよりも最新のバージョンが必要なので/usr/local/lib/python2.7/site-packages
。/usr/lib
/usr/local/lib
pip
私のアプリケーションを次のようにパッケージ化する方法はありますか?
- RPMからアプリケーションをインストールできます。
/usr/local/lib
私のPythonモジュールは、アプリケーションのインストール時にインストールされます。- すべてのPython依存関係もインストールされます。
- 私はPython依存関係のRPMパッケージを維持することを避けます。
このようなことについて合意がありますか?それともいくつかの例がありますか?直接関連する内容は見えませんFedora の Python パッケージング文書。
私が考慮したオプションは次のとおりです。
私のアプリケーション、Pythonモジュール、すべてのPython依存関係を1つのRPMにまとめます。
アプリケーション全体を新しいバージョンにアップグレードしないと、クライアントシステムの個々の依存関係を更新できないため、このオプションは気に入りません。
私のアプリケーション、Pythonモジュール、およびサードパーティの依存関係に対して別々のRPMを作成します。
依存関係ツリーのすべてのサードパーティモジュールに対してRPMを維持する必要があるため、このオプションは気に入りません。
pip
私のRPMから呼び出されました。pip
RPMには変更を追跡する方法がなく、RPMを削除するときにサードパーティのPythonモジュールを安全に削除できるかどうかわからないため、このオプションは気に入りません。
答え1
ソフトウェアコレクションを使用すると、古いシステムで新しいバージョンのモジュールを保持したり、新しいシステムで古いモジュールを保持したりできます。望むより: http://www.softwarecollection.org/