3

私は Eclipse 3.5.2 を使用しており、次の情報で p2.inf を作成しました。

instructions.install = \
chmod(targetDir:@artifact,targetFile:$os$/libfoo.so,permissions:755);

instructions.install.import= \
org.eclipse.equinox.p2.touchpoint.natives.chmod

フラグメントの META-INF フォルダー内に p2.inf を配置しましたが、更新サイトをインストールすると、libfoo.so に実行権限がありません。

髪を抜いた後、存在しない *.so を参照する p2.inf を試しましたが、何も起こらないようです。P2 タッチポイント アクションが失敗したことを示すエラー メッセージ、例外、または警告はありません...

どうしたんだ?何か案は?

4

3 に答える 3

3

org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.ChmodActionからの次のコメントによると、インポート行はorg.eclipse.equinox.p2.touchpoint.eclipse.chmod(つまり、ネイティブではなくeclipse ) にする必要があります。

// This basically a copy of the chmod action in the native touchpoint,
// only it provides @artifact support.

(比較については、「ネイティブ」の chmod アクションを参照してください)

「os」などの補間変数のサポートについては確認していません。

于 2011-07-12T13:57:51.877 に答える
3

Eclipse 3.6 (以前のバージョンについては不明) では、@artifact の代わりに使用する変数は ${artifact.location} です。それを見つけるために p2 ソース コードを掘り下げる必要がありましたが、それを targetDir パラメーターで使用するのは魅力的でした。

于 2010-07-31T06:23:23.517 に答える
1

私が気付くいくつかのこと:

  1. 「touchpoint.natives.chmod」アクションはサポートしていないよう@artifactです。org.eclipse.equinox.p2.touchpoint.eclipse.chmod代わりに使用してみてください。
  2. osインストール時に置き換えられるパラメーターではないようです。また、p2 のソース コードを見ると、「os」がパラメーターである場合、構文は実際には${os}. (ParameterizedProvisioningAction#processVariables を参照)

wiki$version$で言及されている および `$qualifier$' パラメータは、インストール時ではなく、メタデータの生成/公開時に置き換えられることに注意してください。

于 2010-04-05T21:36:43.067 に答える