2014-12-03 70 views
5

我正在构建一个基于Eclipse RCP的产品,我遇到了一个问题,当我尝试使用内置的p2 UI安装产品更新时,在对话框中出现错误消息“访问权限不足应用此更新的权限。“为什么我的eclipse RCP产品被锁定,无法更新?

我已经调试到Eclipse中,发现“病根”是不存在具有XML包括该片段在P2 .profile文件:

<iuProperties id='com.datical.db.ui.product' version='1.33.0.201412032223'> 
    <properties size='4'> 
    <property name='org.eclipse.equinox.p2.internal.inclusion.rules' value='STRICT'/> 
    <property name='org.eclipse.equinox.p2.type.root' value='true'/> 
    <property name='org.eclipse.equinox.p2.type.lock' value='3'/> 
    <property name='org.eclipse.equinox.p2.base' value='true'/> 
    </properties> 
</iuProperties> 

相关线上,说<property name='org.eclipse.equinox.p2.type.lock' value='3'/>的一个

我不知道我在做什么错 - 我想我的产品定义或我的功能定义或我的安装过程中出现错误,导致此行出现。

当我通过Eclipse代码步骤(我们的目标环境是3.7 /靛蓝),我看到的个人资料被写入内org.eclipse.equinox.internal.p2.engine:SurrogateProfileHandler:addSharedProfileBaseIUs(这是私有静态)。这是从SurrogateProfileHandler:createProfile

该产品的P2存储库称为正在使用版本0.15的tycho插件构建。

+0

由于p2是一个非常专业化的主题,因此可以在P2论坛中的[Eclipse论坛](https://eclipse.org/forums/)上询问这个问题。 – 2014-12-04 08:18:15

+0

[Indigo documents](http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fequinox%2Fp2%2Fengine% 2FIProfile.html)建议该标志的有效值为0(LOCK_NONE),1(LOCK_UNINSTALL)或2(LOCK_UPDATE)。没有提及3的含义。您是否尝试过更新版本的tycho? – 2014-12-04 09:44:36

+0

这些标志是一起进行OR运算的,所以3表示它已被锁定用于更新和卸载。我还没有尝试转向更新版本的tycho,主要是FUD。 greg-449,感谢参与论坛的参与者 - 我会尝试在那里交叉发帖。 – SteveDonie 2014-12-04 14:45:08

回答

1

我们终于发现了另一条可能相关的信息。我们正在使用自定义的OSGI目录名称。当我们删除它时,一切都开始按预期工作。

+0

“OSGi目录”是什么意思?这不响铃... – oberlies 2015-02-20 13:57:11

+1

如果你看看这个网页:http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.platform.doc.isv%2Freference%2Fmisc %2Fruntime-options.html 其中详细的日食配置选项,有一个提到“ - 配置(主) 相当于设置osgi.configuration.area到” – SteveDonie 2015-02-23 00:34:42

0

看起来你有一个共享安装,你想要更新的产品(可能)被许多安装作为基础使用 - 因此无法更新。

+0

什么会导致某些内容被标记为共享安装?我正在使用的安装过程只是将由tycho的“materialize-product”和“archive-product”插件创建的特定于平台的zip文件解压缩到我的主目录中的一个目录中(在我的例子中,在Ubuntu上 - /家庭/史蒂夫/产品)。然后,我用'-initialize'运行可执行文件,当我看到使用锁创建.profile.gz文件时。 – SteveDonie 2014-12-10 15:25:26

+0

我试过了 - 用新的eclipse产品初始化,并没有添加锁。所以,我认为你最好的选择是使用更新的tycho版本(因此有更新的p2版本),正如@oberlies指出的那样。 – Peter 2014-12-12 08:38:52

+0

BTW:为什么要使用-initialize(如果它不是只读安装)? – Peter 2014-12-12 08:39:39

0

这种问题超出了什么可以在stackoverflow上很好地回答,因为你真的需要提供一个示例项目和确切的步骤来重现问题。

您看到的症状最可能的原因是某种文件系统权限问题。 This documentation提到您需要使用-initialize来运行Eclipse的安装目录的写入权限。也许你缺少一些权限,使一些-initialize过程失败,并使安装处于不一致的状态。

+0

举一个例子可能是我必须做的。不幸的是,现在我已经沉浸了大约2个星期的时间,现在无法花费更多时间在这个上面。我对所有有问题的目录都有写权限。 – SteveDonie 2014-12-15 17:54:58