web-dev-qa-db-ja.com

debパッケージの条件付き更新を実装する方法

一部がオープンソースで一部がプロプライエタリな製品のdebパッケージを作成しています。 Ubuntuのようないくつかのディストリビューションの組み込み機能を再利用してリポジトリのリストを監視し、新しいバージョンが利用可能になったときにパッケージを更新するために、おそらくそのようなリポジトリを作成します。

問題は、パッケージの専有部分が、限られた間隔のバージョンで有効なライセンスに依存していることです(1年の間にすべてのバージョンで有効です)。つまり、新しいバージョンが利用可能になった時点で、少なくともユーザーにライセンスが新しいバージョンでは無効になることを警告するのは良いことです。

そのチェックを行い、ユーザーと対話する方法はありますか? debパッケージ自体に、インストール前に実行できるスクリプトがあるようですが、それらがユーザーと対話してパッケージのインストールを中止できるかどうかはわかりません。

1
flipm0de

必要なのはdebconfです。 http://www.fifi.org/doc/debconf-doc/tutorial.html を参照してください

2
jmtd

これが可能かどうかは、特定のLinuxディストリビューションのパッケージ管理によって異なります。通常、パッケージのインストール前後と呼ばれる独自のスクリプトを含めることができます。

Debianポリシーマニュアル-第6章パッケージメンテナスクリプト などを参照してください。

とにかく、少しの経験を持つすべてのユーザーは、この「保護」をバイパスすることができます。

そのような種類の保護を本当に含めたい場合(IMHOは役に立たず、害を及ぼすよりも害を及ぼす)、ファイルのバイナリでそれを行います。

1
echox

Debconfの質問をし、答えが肯定的な場合は、source.list.dとの間でファイルをコピー/削除することで、リポジトリをセットアップおよび削除できます。ユーザーは通常、更新の取得元を高度に制御することを期待しており、ソースを追加すると、現在のパッケージのセキュリティを超えたセキュリティ上の影響があるため、これを簡単に無効にできます。

0
Tobu