Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RCP p2 updating: Only one of the following can be installed at once

I created an RCP application that enables p2. The ui is added and updatesites can be added as well.

But adding new software (which is already installed), this happens:

Your original request has been modified.
  "Help" is already installed, so an update will be performed instead.
Cannot complete the install because of a conflicting dependency.
  Software being installed: Help 1.0.0.201210110844 (smartapps.smartsignature.features.help.feature.group 1.0.0.201210110844)
  Software currently installed: SmartSignature 1.0.0.201210110831 (smartapps.smartsignature.application.product 1.0.0.201210110831)
  Only one of the following can be installed at once: 
    Help 1.0.0.201210110844 (smartapps.smartsignature.features.help.feature.jar 1.0.0.201210110844)
    Help 1.0.0.201210110831 (smartapps.smartsignature.features.help.feature.jar 1.0.0.201210110831)
  Cannot satisfy dependency:
    From: SmartSignature 1.0.0.201210110831 (smartapps.smartsignature.application.product 1.0.0.201210110831)
    To: smartapps.smartsignature.features.help.feature.group [1.0.0.201210110831]
  Cannot satisfy dependency:
    From: Help 1.0.0.201210110831 (smartapps.smartsignature.features.help.feature.group 1.0.0.201210110831)
    To: smartapps.smartsignature.features.help.feature.jar [1.0.0.201210110831]
  Cannot satisfy dependency:
    From: Help 1.0.0.201210110844 (smartapps.smartsignature.features.help.feature.group 1.0.0.201210110844)
    To: smartapps.smartsignature.features.help.feature.jar [1.0.0.201210110844]

Well that's the whole point of the p2... There is one thing I think might be causing the error but I don't know how to actually fix it.

Is it possible that the features in the repository are different from the features installed in the base RCP application? That upon installing the p2 detects that it is the same feature but still thinks it is different because it has a different source? Does this make any sense?

like image 703
Arninja Avatar asked Oct 06 '22 09:10

Arninja


2 Answers

The problem is probably that your matcher value is perfect/equivalent/compatible.. Then the old version wouldn't accept your updates, because the dependencies aren't compatible.

Look at your features and check if there's something like:

<import plugin="smartapps.smartsignature.features.help.feature.group" version="1.0.0.201210110831" match="..."/>

The possible values for match are:

 (perfect | equivalent | compatible | greaterOrEqual)

Make sure it is greaterOrEquals. That should solve your problem.

like image 80
aphex Avatar answered Oct 10 '22 17:10

aphex


"Only one of the following can be installed at once" means that the artifacts you are trying to install cannot co-exist in one installation profile.

This is most likely caused by the "singleton:=true" directive of the "Bundle-SymbolicName" OSGi manifest header, which disallows for bundles using (or declaring) Eclipse extension-points to be installed more than once in one environment.

like image 36
Ilya Shinkarenko Avatar answered Oct 10 '22 17:10

Ilya Shinkarenko