web-dev-qa-db-ja.com

ディストリビューションメタパッケージの依存関係を満たすようにPPAパッケージを強制する

ターゲットディストリビューション(正確)で提供されているものよりも新しいlibboostの実装を必要とするppaのパッケージを構築しています。 libboost1.55を boost ppa から自分のppaにコピーしました。 pbuilder-distを使用してパッケージビルドをテストしています。 this の質問への回答を使用して、pbuilderにlibboostパッケージをppaからchroot環境に取得させることに成功しました。

残念ながら、すべての依存関係はppaからlibboost-libname1.55-devとしてインストールできますが、メタパッケージlibboost-libname-devを満たすものはなく、依存関係が満たされないためにpbuilder-distビルドが失敗します。

したがって、この質問は必ずしもpbuilder-distに関連付けられているだけでなく、pbuilderに依存関係のパッケージを無視させるか(依存関係が満たされていると確信しているため)、apt-getにメタパッケージの依存関係を考慮させるにはどうすればよいですか?満足?他に方法がない限り、debian/controlをいじりたくないです。

1
crasic

Boost 1.55ライブラリに依存するように更新されたメインメタパッケージはPPAを介して提供されないため、依存関係エラーが発生します。ビルダー(pbuilderまたはsbuild)またはパッケージマネージャー(_apt-get_)は、依存関係が満たされていないパッケージのビルド/インストールを許可しません。これは、パッケージが失敗することを示しているためです。構築または動作します。したがって、_debian/control_に移動する必要があります。エラーを回避するには、依存関係の代替を使用して、メインメタパッケージが十分なバージョンであるか代替バージョンであるかを指定してみてください。

これを行うには、nameというBoostモジュールの場合、そのモジュールの依存関係はlibboost-name-dev (>= 1.55.0) | libboost-name1.55-devのようになります。この場合、バージョン1.55以上であれば_libboost-name-dev_が使用されます。それ以外の場合は、_libboost-name1.55-dev_を使用します。

pbuilderで代替を使用して手動で有効にする必要がある場合があることに注意してください。

1
saiarcot895