1

サード・パーティー・ツール (すなわち、IBM Installation Manager) を使用して既存の Eclipse インストールに Eclipse 製品をインストールしようとしていますが、この種のいくつかのエラーで失敗します。

CRIMA1054E: この既存の Eclipse インストールにバンドル "org.eclipse.equinox.p2.repository.tools_2.0.1.R36x_v20100823" をインストールすると、既存のバンドル "org" の "[2.0.100,3.0.0)" のバージョン許容範囲が満たされません.eclipse.pde.ui"

残念ながら、影響を受ける製品の詳細を開示することはできません。そのため、これをより一般的な質問に変えたいと思います。

Eclipse プラットフォームに関するいくつかの調査に続いて、OSGi 仕様の重要な機能の 1 つであり、同じバンドル (≘ プラグイン?) の複数のバージョンを同じ環境にインストールできる必要があることを理解しています。バンドルorg.eclipse.pde.uiが既に存在する場合、必要なバージョンの[...].p2.repository.toolsも既に利用可能であると想定します。

私の質問:そのプラグインの別のバージョンを環境に追加するだけで問題になるのはなぜですか? Eclipse と OSGi について何かひどく間違っているのでしょうか?

副次的な質問: バージョン2.0.1.R36[...]は[2.0.100,3.0.0)の中にあるべきではありませんか? ただし、明らかに許容範囲外の例が他にもあるため、主な質問には実際には影響しません。

いくつかの最初の考えと理論

  1. Eclipse ではプラグインの並列バージョンを使用できますが、一部のプラグインは他のバージョンのプラグインと競合します。それでも、次のようなエラーがさらに増えると予想されます。

  2. インストールは Eclipse ではなく、IBM Installation Manager によってブロックされます。おそらくいくつかの内部依存関係チェックを行いますが、並列バンドル バージョンのインストールを考慮するにはあまりにも怠惰です。

再びその特定の製品について: 残念ながら、この製品は通常の Eclipse ソフトウェア インストール メカニズムでは利用できません。また、定期的な更新に依存しており、それらは IBM Installation Manager を介してのみ配信されるため、手動で Eclipse にドロップすることも避けたいと思います。

4

1 に答える 1

3

UIを提供するEclipseプラグインでは、singletonディレクティブをtrueに設定する必要があります。これは、そのシンボリック名を持つバンドルを1つだけフレームワークに含めることができることを意味します。詳細については、 http://wiki.osgi.org/wiki/Bundle-SymbolicNameを参照してください。

私のバージョンのEclipse(3.8)にあるorg.eclipse.equinox.p2.repository.toolsバンドルを調べてみたところ、実際にsingleton=trueであることがわかりました。

あなたは言った:「2.0.1.R36 [...]は[2.0.100,3.0.0)の中にある」

2.0.1は<2.0.100であるため、そうではありません。

于 2012-06-28T11:15:35.137 に答える