Установка плагинов из Linux eclipse в экземпляр Windows с директором p2

Я использую p2 Director в Linux для установки плагинов в экземпляр Linux Eclipse, а также в экземпляр Windows. Linux работает хорошо, но я борюсь с Windows. Я пробовал несколько аргументов (или без них) и пробовал установить несколько разных репозиториев / плагинов, но все равно получаю ту же ошибку:

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

Есть ли аргумент, который мне не хватает, или я что-то делаю не так?


person Anton Krug    schedule 10.01.2018    source источник
comment
Только что заметил, что директор p2 выводит версию cdt 9.4, даже когда я помещаю ее в репозиторий 9.3. 9.4, я думаю, для Oxygen 2, пока я устанавливаю его поверх Oxigen 1a.   -  person Anton Krug    schedule 10.01.2018
comment
Я предполагаю, что CDT 9.4 также работает с Oxygen.1a, и если версия не указана, используется самая высокая версия. Для установки CDT 9.3 используйте -installIU org.eclipse.cdt.feature.group/9.3.2.201709131603.   -  person howlger    schedule 10.01.2018
comment
-profile $PROFILE_NAME отсутствует. См .: help.eclipse.org/ кислород / тема / org.eclipse.platform.doc.isv /   -  person howlger    schedule 10.01.2018
comment
Спасибо. Я думал, что указав на репозиторий 9.3, он не сможет даже знать о чем-либо выше, чем 9.3. Но указание версии звучит как хороший подход. Хороший улов. В сообщении об ошибке говорится, что использовался SDKProfile, который я использую, и в моей конфигурации / config.ini установлен eclipse.p2.profile = SDKProfile. Поэтому, когда я установил -profile, SDKProfile все равно не помог. Я обновился до Oxygen 2, чтобы посмотреть, повлияет ли это на проблему, и проблема все еще существует.   -  person Anton Krug    schedule 10.01.2018
comment
@howlger Я должен сказать, что после вчерашнего дня я начал смотреть ваш YouTube, он так хорошо сделан, видео сжатые, сжатая информация, профессионально отредактирована, действительно отличная работа.   -  person Anton Krug    schedule 10.01.2018
comment
CDT (9.3 и 9.4) также содержится в репозитории Oxygen (репозиторий CDT 9.3 здесь избыточен). Спасибо за просмотр моих видео. Приносим извинения за то, что не получили ответа на свой вопрос. Единственная разница между Linux и Windows должна быть -p2.os win32 -p2.ws win32 -p2.arch x86_64.   -  person howlger    schedule 10.01.2018
comment
Полезно знать, в любом случае не указывать версию - это плохо, я исправлю это, потому что конечный продукт очень чувствителен к той версии, на которой он работает. Но на данный момент я только учусь им пользоваться, поэтому с версией не заморачивался. Спасибо за видео, действительно хороший контент. Это нормально с вопросом, все еще многому учусь из ваших комментариев, я думаю, что решил проблему, я дважды проверю, проверю и опубликую ответ.   -  person Anton Krug    schedule 10.01.2018


Ответы (1)


Я не совсем понимаю, почему и как. Но когда я использовал абсолютный путь вместо относительного, это устранило мою проблему. Вместе с -roaming должны быть сохранены относительные пути, поэтому окончательный вариант должен быть таким, каким желаете, но на данный момент p2, похоже, нуждается в абсолютном пути. Я работал над этим со следующим:

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

Поэтому в сценарии я просто использую переменную $ WINDOWS_ABSOLUTE_PATH, которая будет разрешена как полный абсолютный путь.

person Anton Krug    schedule 10.01.2018
comment
Если у кого-то есть способ сделать это лучше, я открыт для этого. Но это работает, так что я очень доволен. - person Anton Krug; 10.01.2018
comment
Интересно, что я застрял над этой проблемой в течение 2 дней, и только после того, как опубликовал ее на SO, я добился некоторого прогресса. По следующей ссылке есть несколько примеров использования директора p2, который может быть кому-то полезен wiki.eclipse. org / Equinox_p2_director_application / Примеры / - person Anton Krug; 10.01.2018