2014-12-03 86 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