使用 p2 director 从 Linux eclipse 安装插件到 Windows 实例

Installing plugins from Linux eclipse into a Windows instance with p2 director

我在 Linux 上使用 p2 director 将插件安装到 Linux Eclipse 实例和 Windows 实例中。 Linux 效果很好,但我对 Windows 很纠结。我尝试了几个参数(或没有参数)并尝试了几个不同的 repositories/plugins 来安装,但我仍然遇到相同的错误:

Installing org.eclipse.cdt.feature.group 9.4.0.201712051550. Installation failed. An error occurred while installing the items session context was:(profile=SDKProfile, phase=org.eclipse.equinox.internal.p2.engine.phases.Install, operand=null --> [R]com.google.gson 2.7.0.v20170129-0911, action=org.eclipse.equinox.internal.p2.touchpoint.eclipse.actions.InstallBundleAction). Error while loading manipulator.

例如,我从普通的 Eclipse Platform Runtime Binary 4.7.1a 开始,然后尝试在其上安装 CDT 9.3(但此问题也适用于其他插件)。

我相应地设置了我的存储库 (http://download.eclipse.org/releases/oxygen,http://download.eclipse.org/tools/cdt/releases/9.3) 和工件 (org.eclipse.cdt.feature.group),然后 运行 以下内容:

./eclipse -application org.eclipse.equinox.p2.director -noSplash -roaming -repository $PLUGIN_REPOSITORIES -installIU $PLUGIN_ARTEFACTS -destination ../../scWindows/eclipse -bundlepool ../../scWindows/eclipse -p2.os win32 -p2.ws win32 -p2.arch x86_64

有没有我遗漏的论点或者我做错了什么?

我不完全理解为什么或如何。但是当我使用绝对路径而不是相对路径时,它解决了我的问题。与 -roaming 一起存储相对路径,因此最终应该是所需的,但目前 p2 似乎需要绝对路径。我通过以下方法解决了这个问题:

sudo apt-get install realpath WINDOWS_ABSOLUTE_PATH=`realpath ../../scWindows/eclipse` echo $WINDOWS_ABSOLUTE_PATH

所以在脚本中,我只使用变量 $WINDOWS_ABSOLUTE_PATH,它将作为完整的绝对路径解析。