对 Eclipse 的 .p2 树使用不同的位置(“捆绑池”)

我目前正在尝试将Eclipse设置为从/opt/eclipse运行。

一切都很顺利。我使用Eclipse安装程序提取软件到/opt/eclipse;我在我的/usr/bin目录中做了一个软链接,这样我就可以输入“eclipse”从我的用户终端中的任何位置运行它,我以为我已经完成了,直到发生这种情况:

$ eclipse /root/.p2/pool/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.1.400.v20160518-1444:无法打开共享对象文件:权限被拒绝 Gtk-消息:GtkDialog 在没有临时父级的情况下映射。这是不鼓励的。

在 /opt/eclipse/eclipse.ini 和 /opt/eclipse/configuration/config.ini 文件中进行了一些探索之后,我得出的结论是,当我在超级用户许可下使用安装程序安装 Eclipse 时,它在 /root 目录下安装了必要的库。

我可以使用“sudo eclipse”,它可以工作,但每次都必须输入密码变得很麻烦。我正在考虑复制/usr/lib下的.p2文件以“泛化”它并允许从任何pwd作为我的用户访问;这是一个聪明的想法,还是我应该做别的事情?


答案 1

.p2 文件夹是一个共享安装文件夹,由安装程序创建的所有 Eclipse 实例引用。可悲的是,我认为移动现有版本是不安全的(我可能是错的,但我不确定它被引用了多少次),但你可以创建一个新的版本。

安装程序在这里使用的概念称为“捆绑池”,您可以根据需要为其设置任意多个位置。要打开捆绑池设置,请在安装程序 UI 中找到相应的项目。

对于简单的 UI,请按顶部 (1) 底部的菜单,然后选择捆绑池...:Bundle Pool setting with simple UI

如果您使用的是高级 UI,则向导第一页的底部有一个下拉列表,其中包含现有捆绑池的列表。通过单击它旁边的按钮,您可以进入捆绑池管理器。Bundle Pool setting with the Advanced UI

在这两种情况下,在出现的对话框中,您可以创建自己的捆绑池,您可以将该捆绑池放入所需的任何文件夹中,然后将其用作安装源。

最后,如果您已将所有安装移动到此新池,则可以安全地删除原始捆绑池文件夹,不再需要它。


答案 2

说我是用户。me

  • 在安装之前,请更改 with 的所有权,以便我可以启动无 sudo 权限。/opt/eclipsesudo chown -R me:me /etc/eclipseenvince-installer
  • 在简单模式下安装 到 。不会创建 任何文件夹。该树已安装在我的主目录中(但如其他答案所示,您也可以自定义此内容)/opt/eclipse/root/.p2.p2
  • 安装后,恢复 with 的所有权。现在我可以在没有sudo权限的情况下启动可执行文件,因为不需要访问。/etc/eclipsesudo chown -R root:root /etc/eclipse/opt/eclipse/root
  • 我在启动器菜单中制作了一个别名甚至一个项目,以从桌面环境启动eclipse。

我的规格: Ubuntu 14.04 LTS, Java SE Runtime Environment build 1.8.0_111-b14, Eclipse Installer 1.6.0 Build 2790, Eclipse Neon


推荐