Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Equinox/p2/Console Users Guide

< Equinox‎ | p2


Using P2 Provisioning Commands

The P2 Provisioning Commands are console commands enabled by the presence of P2 that allow you to perform common provisioning operations, such as managing the repository and profiles, installing and removing components, etc.

Prerequisites

To have the Eclipse console available, you have to add -console as a program argument either in the Eclipse.ini file of your default Eclipse installation, or, in the Argument tab in your Eclipse IDE. See Eclipse Runtime Options for more details

Enabling the Provisioning Commands

To run with the provisioning console commands enabled, make sure that the P2 console bundle is available and started in the process to which you want to connect the console:

1. Start the console.

2. Find the ID of the P2 console bundle by using the command ss (in the example below the P2 console bundle ID is "68"):

osgi> ss p2.console

Framework is launched.

id      State       Bundle
68      <<LAZY>>    org.eclipse.equinox.p2.console_1.0.300.v20110104-0005

3. Start the bundle:

osgi> start 68

4. To list all the commands, type man in the console line. The P2 Provisioning Commands all start with "prov".

P2 Provisioning Commands

Repository Commands

Parameters
repository URI : URI of the P2 repository (for example: http://download.eclipse.org/mat/1.0/update-site/)
iu id : Installable Unit ID (for example: org.eclipse.egit.feature.group)
version range : OSGi version range (for example (1.0.0, 2.0.0] )
expression : P2QL expression
provaddrepo <repository URI> 
Adds both metadata and artifact repository at URI
provdelrepo <repository URI> 
Deletes metadata and artifact repository at URI
provaddmetadatarepo <repository URI> 
Adds a metadata repository at URI
provdelmetadatarepo <repository URI> 
Deletes a metadata repository at URI
provaddartifactrepo <repository URI> 
Adds an artifact repository at URI
provdelartifactrepo <repository URI> 
Deletes an artifact repository URI
provlg [<repository URI> <iu id | *> <version range | *>] 
Lists all IUs with group capabilities in the given repository or in all repositories if URI is omitted
provlr [<repository URI> <iu id | *> <version range | *>] 
Lists all metadata repositories, or the contents of a given metadata repository
provlar [<repository URI>] 
Lists all artifact repositories, or the contents of a given artifact repository
provliu [<repository URI | *> <iu id | *> <version range | *>] 
Lists the IUs that match the pattern in the given repo. * matches all
provlquery <repository URI | *> <expression> [ true | false ] 
Lists the IUs that match the query expression in the given repo. * matches all. The expression is expected to be a boolean match expression unless the third argument is true, in which case the expression is a full query.

Profile Registry Commands

Parameters
profileid : ID of the profile (for example: SDKProfile)
location : Location of the profile
flavor : Profile flavor (for example: tooling)
expression : P2QL expression
provaddprofile <profileid> <location> <flavor> 
Adds a profile with the given profileid, location and flavor
provdelprofile <profileid> 
Deletes a profile with the given profileid
provlp [<profileid | *>] 
Lists all profiles, or the contents of the profile at the given profile
provlgp [<profileid>] 
Lists all IUs with group capabilities in the given profile, or current profile if profileid is omitted
provlpts [<profileid>] 
Lists timestamps for given profile, or if no profileid given then the default profile timestamps are reported
provlpquery <profileid | this> <expression> [ true | false ] 
Lists the IUs that match the query expression in the given profile. The expression is expected to be a boolean match expression unless the third argument is true, in which case the expression is a full query

Install Commands

Parameters
InstallableUnit : Installable Unit ID (for example: org.eclipse.egit.feature.group)
version : OSGi version (for example: 1.0.100.201012150941)
profileTimestamp : Time stamp of the profile (for example: 1291839068595)
provinstall <InstallableUnit> <version> <profileid> 
installs an IU to the profileid. If no profileid is given, installs into the default profile.
provremove <InstallableUnit> <version> <profileid> 
Removes an IU from the profileid. If no profileid is given, installs into the default profile.
provrevert <profileTimestamp> [<profileid>] 
Reverts to a given profile time stamp for an optional profileId


Note.png
Apply changes
To see the applied configuration changes at runtime, you have to use the confapply command.


Note.png
Repositories
The install commands use only the previously added repositories. If your IU is part of a new custom repository, you have to add the repository manually using the provaddrepo command.


Examples

Prerequisite: Start the P2 console bundle

osgi> ss p2.console

Framework is launched.

id      State       Bundle
68      <<LAZY>>    org.eclipse.equinox.p2.console_1.0.300.v20101108

osgi> start 68

To install EGit you will have to:

1. List IUs with group capabilities to check the exact name and version of the EGit IU:

< ... omitted ...>
org.eclipse.egit.feature.group 0.8.4
< ... omitted ...>

2. Install the EGit IU:

provinstall org.eclipse.egit.feature.group 0.8.4

3. Apply the changes

confapply

4. Open GIT repository browser in Eclipse

To install Eclipse Memory Analyzer Tool (MAT) in Eclipse you have to:

1. Add MAT update site:

osgi> provaddrepo http://download.eclipse.org/mat/1.0/update-site/

2. List IUs with group capabilities to check the exact name and version of the required IU:

< ... omitted ...>
org.eclipse.mat.feature.feature.group 1.0.100.201012150941
< ... omitted ...>

3. Install the MAT IU:

provinstall org.eclipse.mat.feature.feature.group 1.0.100.201012150941

4. Restart Eclipse to allow P2 reconciler to install the new bundles (this is often needed for UI contributions such as MAT)
5. You may now use your new MAT perspective

Back to the top