Whenever I think of p2, I just can’t shake the image of the little dog in the stories we used to make up in French class in elementary school. “Pauvre Pitou. Il a sauté par la fenêtre…” But I digress…
Today I did a little experiment with p2. I downloaded one of the Ganymede M7 packages and installed in into a shared location on my file system. This particular system has Fedora 8 Linux installed, so I opted to put Eclipse in the “/opt” directory. Anybody can read from this directory, but only root can write.
I then launched Eclipse as a non-root user and opened the “Software Updates and Add-ons” dialog and added a bunch of stuff from the Ganymede update site. From a user’s perspective, everything just worked. p2 uses some smarts to pick the best mirror from those available, and downloads all the required bits and pieces using multiple threads. Overall, the experience was pretty seamless.
Under the covers, there was more going on. Of course, running as non-root, p2 couldn’t write the downloaded files into my
/opt/eclipse/... directory, so it created a hidden directory in my user home,
/home/wayne/.eclipse with all the new stuff. It also stores my configuration there.
This is good stuff. If I really was sharing this workstation with others, I’d want to share the bulk of the common plug-ins, but have the ability to customize my own experience by adding my own additional plug-ins without having the custom experience of other users imposed on me. I understand that the p2 framework provides support for updating the shared installation, but this isn’t exposed in the user interface yet. In fact, it probably doesn’t make sense for it to be exposed in the workbench, a separate (perhaps headless) application might be more appropriate for that anyway.
I don’t know if the p2 developers thought of everything, but they sure thought of a lot of things.