h2. p2
To make things work and easy for the user, the Eclipse Foundation developed a tool called *p2* and in charge of provisioning an Eclipse platform.
This tool in fact works at the bundle level and is associated with the OSGi runtime Equinox (used and embedded in Eclipse and in the studio).
\\
When you install or update your studio, p2 builds a graph dependency and resolve conflicts when it is possible.
It is also capable of downloading missing dependencies automatically. To do so, it needs to know Eclipse repositories. That is to say locations where Eclipse plug-ins are available. Generally, these dependencies should all be available on the same repository (also called _update site_).
\\
{note}
Unlike Maven repositories, the concept of _snapshot_ does not exist for Eclipse repositories.
{note}
\\
Consequently, if you are signaled an error in the studio while installing a new feature and that a dependency is said missing, you will need to install it first.
Also, *remember that p2 does not install single plug-ins, but the features that contain these plug-ins*.
The constraints are on the entire package and not just on the plug-ins.
h1. Installing new software
It is possible to install new plug-ins in the Petals Studio.
However, *it is essential that these plug-ins are not part of the native package*.
That is to say they were not already installed in the studio when you downloaded it.
If they were already installed, then check [the section about native plug-ins|#NativePlugIns].
\\
Click *Help > Install New Software...*. A dialog shows up.
!PetalsStudio_Updating_1.jpg!
\\
Select the update site location in the drop-down menu.
This is the repository from which the plug-ins will be downloaded and installed.
If your update site does not appear in the list, click *Add...*.
Give it a *name* and specify the *location* (as an URL). Then, click *OK*.
\\
When a repository is selected in the menu, the available features are listed in the box below.
Select the features you need and click *Next*.
!PetalsStudio_Updating_2.jpg!
{note}
If you do not see any category or feature, try to uncheck *Group items by category*.
{note}
\\
Once you have clicked *Next*, p2 computes the list of dependencies and determines the features to install.
If a dependency could not be found (in this repository) or breaks dependency constraints, an error is shown.
If the install request is possible, the next page shows the list of features to install. In this case, you can click *Next*.
!PetalsStudio_Updating_3.jpg!
\\
The next page shows you the license of every element to install.
It is up to you to decide whether you accept them or not. Be careful, the agreement involves the whole install package.
!PetalsStudio_Updating_4.jpg!
\\
Then you can click *Finish*. The installation process can begin.
!PetalsStudio_Updating_5bis.jpg!
{note}
Sometimes, timeout may occur during an update.
If it happens, run the update manager once again.
{note}