distutils setup.pyおよび%post%postun
-
05-07-2019 - |
質問
私は初心者です。 私は自分のアプリ用にrpmパッケージを構築しており、distutilsを使用してそれを実現することにしました。このWebサイトからのアドバイスを使用して、%postの代替物を作成することができました。本当に感謝していますが、%postunで問題が発生しています。 私がやったことを説明しましょう。 setup.pyで、アプリケーションの実行に必要なシンボリックリンクを作成するコマンドを実行します。それはうまく機能しますが、問題はrpmを削除したいとき、リンクがそこにとどまることです。だから私はspecファイルで%postunを使用する必要があると考えました。私の質問は:setup.pyでこれを行う方法はありますか、それとも仕様ファイルを手動で編集する必要がありますか? いくつかのマニュアルなどを教えてください。 ありがとう
解決
はい、インストール後のスクリプトを指定できます。必要なのは、使用するファイルをオプションargのbdist_rpmで宣言することです:
setup(
...
options = {'bdist_rpm':{'post_install' : 'post_install',
'post_uninstall' : 'post_uninstall'}},
...)
post_uninstallファイルに、リンクを削除するために必要なコードを入力します。次のように考えます:
rm -f /var/lib/mylink
他のヒント
distutilsもsetuptoolsにもアンインストール機能はありません。
ある時点で、Pythonコミュニティは、アンインストールをパッケージングシステムで処理することに同意しました。この場合、rpmを使用するため、おそらくrpmシステム内でパッケージを削除する方法がありますが、distutilsやsetuptoolsにはありません。
@ pycon2009、distutilsとsetuptoolsのプレゼンテーションがありました。ここですべてのビデオを見つけることができます
Linuxディストリビューションがパッケージ化するアプリケーションの構築方法というビデオがあります。見たことはありませんが、適切なようです。