Jump to: navigation, search

Difference between revisions of "Equinox p2 director application/Examples/Install into eclipse using SDKProfile"

m (New page: To install the GMF SDK and all its prereqs from the Ganymede Update site into the default eclipse/ folder (using the built-in SDKProfile), run this. This matches the [[Equinox_p2_Update_UI...)
 
m
 
(5 intermediate revisions by 2 users not shown)
Line 1: Line 1:
To install the GMF SDK and all its prereqs from the Ganymede Update site into the default eclipse/ folder (using the built-in SDKProfile), run this. This matches the [[Equinox_p2_Update_UI_Users_Guide|p2 Update UI]]'s default behaviour.
+
The following examples show how to install some feature.group (eg., org.eclipse.gef.all.feature.group) into the default eclipse/ folder using the built-in SDKProfile profile.
  
 +
This matches the [[Equinox_p2_Update_UI_Users_Guide|p2 Update UI]]'s default behaviour.
 +
 +
== Ant script ==
 +
 +
Use p2.director to install from a zipped p2 repo (Update zip) into the Eclipse install used to run headless JUnit tests. This zip contains p2 metadata + feature jars + packed plugin jars ({{bug|269199}}).
 +
 +
The Master zip contains no p2 metadata but has both jars and jar.pack.gz bundles. Using both, the director need not worry about unpacking the packed jars ({{bug|272719}}).
 +
 +
<target name="install">
 +
  <property name="p2dirTmp" value="${buildDir}/testing/p2dirTmp" />
 +
  <mkdir dir="${p2dirTmp}/eclipse"/>
 +
  <unzip src="${buildDirectory}/${buildLabel}/${MasterZip}" dest="${p2dirTmp}" overwrite="true" />
 +
  <unzip src="${buildDirectory}/${buildLabel}/${updateZip}" dest="${p2dirTmp}/eclipse" overwrite="false"/>
 +
  <echo>Install ${mainFeatureToBuildID} feature to ${install}</echo>
 +
  <ant target="run.director" antfile="${helper}">
 +
    <property name="p2.director.installIU" value="${mainFeatureToBuildID}.feature.group" />
 +
    <property name="p2.director.install.path" value="${install}/eclipse" />
 +
    <property name="p2.director.destination" value="${install}/eclipse" />
 +
    <property name="p2.director.input.repo" value="${p2dirTmp}/eclipse" />
 +
  </ant>
 +
</target>
 +
 +
<target name="run.director">
 +
  <property name="p2.director.extraArgs" value="" />
 +
  <property name="p2.director.installIU" value="${mainFeatureToBuildID}.feature.group" />
 +
  <property name="p2.director.install.path" value="${install}/eclipse" />
 +
  <property name="p2.director.destination" value="${install}/eclipse" />
 +
  <property name="p2.director.input.repo" value="${p2dirTmp}/eclipse" />
 +
  <echo>
 +
p2.director.destination  = ${p2.director.destination}
 +
p2.director.input.repo  = ${p2.director.input.repo}
 +
p2.director.install.path = ${p2.director.install.path}
 +
</echo>
 +
  <mkdir dir="${p2.director.install.path}" />
 +
  <!-- See http://wiki.eclipse.org/Equinox_p2_director_application -->
 +
  <chmod perm="ugo+rwx" file="${p2.director.destination}/eclipse" />
 +
  <exec executable="${p2.director.destination}/eclipse" failonerror="true" dir="${p2.director.destination}" timeout="900000" taskname="p2.dir">
 +
    <arg line=" -vm ${JAVA_HOME}/bin/java" />
 +
    <arg line=" -application org.eclipse.equinox.p2.director.app.application" />
 +
    <arg line=" -nosplash" />
 +
    <arg line=" --launcher.suppressErrors" />
 +
    <arg line=" -consoleLog" />
 +
    <arg line=" -flavor tooling" />
 +
    <!-- <arg line=" -p2.os linux -p2.ws gtk -p2.arch x86" /> -->
 +
    <arg line=" -roaming" />
 +
    <arg line=" -profile SDKProfile" />
 +
    <!-- <arg line=" ${p2.director.extraArgs}" /> -->
 +
    <arg line=" -destination ${p2.director.install.path}" />
 +
    <arg line=" -bundlepool ${p2.director.destination}" />
 +
    <arg line=" -installIU ${p2.director.installIU}" />
 +
    <arg line=" -metadataRepository file:${p2.director.input.repo},file:${p2.director.destination}/p2/org.eclipse.equinox.p2.engine/profileRegistry/SDKProfile.profile"/>
 +
    <arg line=" -artifactRepository file:${p2.director.input.repo},file:${p2.director.destination}" />
 +
    <arg line=" -profileProperties org.eclipse.update.install.features=true" />
 +
    <arg line=" -vmargs" />
 +
    <arg line=" -Declipse.p2.data.area=${p2.director.destination}/p2" />
 +
    <arg line=" -Declipse.p2.MD5Check=false" />
 +
  </exec>
 +
</target>
 +
 +
== Bash script ==
 +
 +
Use p2.director to install the GMF SDK feature and all its prereqs from the Ganymede Update site into eclipse/ using default SDKProfile.
 +
 +
<pre><nowiki>
 
#!/bin/bash
 
#!/bin/bash
 
workspace=/tmp/workspace-clean-34
 
workspace=/tmp/workspace-clean-34
Line 52: Line 116:
 
popd >/dev/null
 
popd >/dev/null
 
echo " done."
 
echo " done."
 +
</nowiki></pre>
 +
 +
== See Also ==
  
If you need to translate this to Windows command syntax or wrap it with an Ant script, see [[Starting Eclipse Commandline With Equinox Launcher]].
+
* [[Starting Eclipse Commandline With Equinox Launcher]].
  
[[Category:Equinox_p2]] [[Category:Equinox_p2_Director]]
+
[[Category:Equinox_p2|Director]] [[Category:Equinox_p2_Director]]

Latest revision as of 14:06, 21 June 2010

The following examples show how to install some feature.group (eg., org.eclipse.gef.all.feature.group) into the default eclipse/ folder using the built-in SDKProfile profile.

This matches the p2 Update UI's default behaviour.

Ant script

Use p2.director to install from a zipped p2 repo (Update zip) into the Eclipse install used to run headless JUnit tests. This zip contains p2 metadata + feature jars + packed plugin jars (bug 269199).

The Master zip contains no p2 metadata but has both jars and jar.pack.gz bundles. Using both, the director need not worry about unpacking the packed jars (bug 272719).

<target name="install">
  <property name="p2dirTmp" value="${buildDir}/testing/p2dirTmp" />
  <mkdir dir="${p2dirTmp}/eclipse"/>
  <unzip src="${buildDirectory}/${buildLabel}/${MasterZip}" dest="${p2dirTmp}" overwrite="true" />
  <unzip src="${buildDirectory}/${buildLabel}/${updateZip}" dest="${p2dirTmp}/eclipse" overwrite="false"/>
  <echo>Install ${mainFeatureToBuildID} feature to ${install}</echo>
  <ant target="run.director" antfile="${helper}">
    <property name="p2.director.installIU" value="${mainFeatureToBuildID}.feature.group" />
    <property name="p2.director.install.path" value="${install}/eclipse" />
    <property name="p2.director.destination" value="${install}/eclipse" />
    <property name="p2.director.input.repo" value="${p2dirTmp}/eclipse" />
  </ant>
</target>
<target name="run.director">
  <property name="p2.director.extraArgs" value="" />
  <property name="p2.director.installIU" value="${mainFeatureToBuildID}.feature.group" />
  <property name="p2.director.install.path" value="${install}/eclipse" />
  <property name="p2.director.destination" value="${install}/eclipse" />
  <property name="p2.director.input.repo" value="${p2dirTmp}/eclipse" />
  <echo>
p2.director.destination  = ${p2.director.destination}
p2.director.input.repo   = ${p2.director.input.repo}
p2.director.install.path = ${p2.director.install.path}
</echo>
  <mkdir dir="${p2.director.install.path}" />
  <chmod perm="ugo+rwx" file="${p2.director.destination}/eclipse" />
  <exec executable="${p2.director.destination}/eclipse" failonerror="true" dir="${p2.director.destination}" timeout="900000" taskname="p2.dir">
    <arg line=" -vm ${JAVA_HOME}/bin/java" />
    <arg line=" -application org.eclipse.equinox.p2.director.app.application" />
    <arg line=" -nosplash" />
    <arg line=" --launcher.suppressErrors" />
    <arg line=" -consoleLog" />
    <arg line=" -flavor tooling" />
    <arg line=" -roaming" />
    <arg line=" -profile SDKProfile" />
    <arg line=" -destination ${p2.director.install.path}" />
    <arg line=" -bundlepool ${p2.director.destination}" />
    <arg line=" -installIU ${p2.director.installIU}" />
    <arg line=" -metadataRepository file:${p2.director.input.repo},file:${p2.director.destination}/p2/org.eclipse.equinox.p2.engine/profileRegistry/SDKProfile.profile"/>
    <arg line=" -artifactRepository file:${p2.director.input.repo},file:${p2.director.destination}" />
    <arg line=" -profileProperties org.eclipse.update.install.features=true" />
    <arg line=" -vmargs" />
    <arg line=" -Declipse.p2.data.area=${p2.director.destination}/p2" />
    <arg line=" -Declipse.p2.MD5Check=false" />
  </exec>
</target>

Bash script

Use p2.director to install the GMF SDK feature and all its prereqs from the Ganymede Update site into eclipse/ using default SDKProfile.

#!/bin/bash
workspace=/tmp/workspace-clean-34
eclipseroot=~/eclipse/34clean/p2director
installTargetFeatureGroup=org.eclipse.gmf.sdk.feature.group
bundlepoolDir=$eclipseroot/${installTargetFeatureGroup}/eclipse

pushd $eclipseroot >/dev/null
if [[ $# -eq 0 ]]; then
	rm -fr eclipse $workspace $bundlepoolDir
	eclipse=eclipse-SDK-3.4-linux-gtk.tar.gz
	echo "[`date +%H:%M:%S`] Unpack $eclipse ...";
	tar xzf $eclipse
fi

vm=/opt/sun-java2-5.0/bin/java
#vm=/opt/ibm-java2-5.0/bin/java

echo ""
echo "Using:       vm=$vm and workspace=$workspace";
echo "Installing:  ${installTargetFeatureGroup}";
echo "Destination: $bundlepoolDir";
echo ""

echo "[`date +%H:%M:%S`] Running p2.director ... ";
#  -console -noexit -debug 
./eclipse/eclipse -vm $vm -nosplash \
  -data $workspace -consolelog -clean \
  -application org.eclipse.equinox.p2.director.app.application \
  -metadataRepository http://download.eclipse.org/releases/ganymede \
  -artifactRepository http://download.eclipse.org/releases/ganymede \
  -installIU ${installTargetFeatureGroup} \
  -destination $eclipseroot \
  -bundlepool $bundlepoolDir \
  -profile SDKProfile
  -profileProperties org.eclipse.update.install.features=true \
  -p2.os linux -p2.ws gtk -p2.arch x86 \
  -vmargs \
    -Declipse.p2.data.area=$eclipseroot/eclipse/p2 \
    -Xms128M -Xmx256M -XX:PermSize=128M -XX:MaxPermSize=256M 
echo "Installed sizes: "; du -shc $eclipseroot/eclipse $bundlepoolDir

echo "";
echo -n "[`date +%H:%M:%S`] Starting Eclipse workbench (to verify installation) ...";
#  -console -noexit -debug 
./eclipse/eclipse -vm $vm \
  -data $workspace -consolelog -clean \
  -vmargs \
    -Xms128M -Xmx256M -XX:PermSize=128M -XX:MaxPermSize=256M 

popd >/dev/null
echo " done."

See Also