P2接触点chmod不工作?
我使用Eclipse 3.5.2,我已经创建了以下信息的p2.inf:P2接触点chmod不工作?
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没有执行权限。
把我的头发拉出来后,我尝试了一个p2.inf引用一个不存在的* .so,但似乎没有发生。没有任何类型的错误消息,例外或警告指示P2接触点操作失败...
这是怎么回事?有任何想法吗?
一对夫妇的事情,我注意到:
- 的“touchpoint.natives.chmod”动作看起来并不像它支持
@artifact
。尝试使用org.eclipse.equinox.p2.touchpoint.eclipse.chmod
来代替。 -
os
似乎不是安装时替换的参数。另外,看看p2源代码,如果“os”是一个参数,看起来语法实际上是${os}
。 (见ParameterizedProvisioningAction#processVariables)
注意,$version$
和`$预选赛$”上wiki提到的参数在元数据生成/发布时间更换,而不是在安装时。
在Eclipse 3.6(不知道以前的版本)中,要使用的变量而不是@artifact是$ {artifact.location}。我不得不深入p2源代码才能找到它,但在targetDir参数中使用它就像魅力一样。
导入线应该org.eclipse.equinox.p2.touchpoint.eclipse.chmod
(即蚀而非当地人),根据从org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.ChmodAction
// This basically a copy of the chmod action in the native touchpoint,
// only it provides @artifact support.
以下注释(为进行比较,请参阅'natives' chmod action)
我还没有不支持插入像'os'这样的变量。
我知道这个问题已经有一年了。我刚刚添加了这个答案,所以我可以再次找到它。 :) – 2011-07-12 14:00:07
好!一年后的一天,我还需要找到它! – giZm0 2012-10-05 12:13:26
我在他们的文档中找不到org.eclipse.equinox.p2.touchpoint.eclipse.chmod ...? – Michael 2010-04-06 22:25:00
不幸的是,上述建议都没有解决...... – Michael 2010-04-07 16:00:38