Eigenes Eclipse Paket für Ubuntu/Debian bauen

Wer die neueste Eclipse Version für Debian oder Ubuntu 11.04 benötigt, der hat ein Problem. Die, sowohl in Ubuntu Natty als auch in Debian Sid verfügbare Version ist 3.5, obwohl seit Juni 2010 3.6 verfügbar ist oder sogar seit diesem Jahr 3.7 Indigo. In Ubuntu 11.10 dagegen ist endlich die neue Version 3.7 verfügbar.

Eclipse Indigo Splashscreen

Ein Grund für die zögerliche Paketierung könnte sein, dass Eclipse bereits eine interne Paketverwaltung mitbringt, über die Plugins mittels Paketquellen installiert werden können. Eventuell haben wenige Leute Interesse daran Eclipse zu paketieren. Deshalb bin ich dazu übergegangen mir selbst ein eigenes Eclipse Paket zu bauen, und dieses über APT zu installieren. Wie das ganze funktioniert, beschreibe ich hier.

Vorbereiten und Erstellen des Arbeitsverzeichnisses

Bevor wir mit der Paketierung starten können, benötigen wir noch einige Pakete und ein Arbeitsverzeichnis, in dem wir später unser Eclipse Paket bauen werden.

$ sudo apt-get install fakeroot dpkg-dev debhelper unp

Hiermit werden einige Tools installiert, die wir benötigen um die entsprechenden Rechte des Pakets zu setzen und dieses schlussendlich zu bauen.

$ mkdir eclipse-sdk

Innerhalb dieses Arbeitsverzeichnisses müssen nun die Ordner so angelegt werden, wie sie später auf dem Dateisystem abgebildet werden sollen. Legt man also innerhalb dieses Ordners eclipse-sdk den Ordner bin an und speichert dort Dateien, so werden diese Dateien später nach /bin installiert. Userprogramme werden unter Linux üblicherweise unter /usr installiert. Ich lasse den Inhalt des Archivs nach /usr/lib/eclipse installieren.

Eclipse herunterladen und Paket vorbereiten

Ich installiere mir das Eclipse SDK, also mit bereits installierten JAVA Development Tools und in der 64-Bit Variante. Wer eine andere Version braucht, sollte dies anpassen.

$ wget http://download.eclipse.org/eclipse/downloads/drops/R-3.7.1-201109091335/download.php?dropFile=eclipse-SDK-3.7.1-linux-gtk-x86_64.tar.gz
$ unp eclipse-platform-3.6.2-linux-gtk-x86_64.tar.gz
$ mkdir -p eclipse-sdk/usr/lib
$ mv eclipse eclipse-sdk/usr/lib/eclipse

Anschließen erstellen wir ein Skript, mit dem wir Eclipse starten können. Startskripte werden in /usr/bin abgespeichert.

$ mkdir -p eclipse-sdk/usr/bin
$ touch eclipse-sdk/usr/bin/eclipse
$ chmod +x eclipse-sdk/usr/bin/eclipse

Mit dem zweiten Befehl erstellen wir eine leere Datei und geben dieser mit dem dritten Befehl Ausführrechte. Nun sollten wir dem Startskript natürlich auch einen Inhalt geben. Dies kann entweder mit einem Konsolen-Editor geschehen (wie vi oder nano) oder auch mit einem grafischen Editor (z.B. gedit, …). Folgenden Inhalt bekommt unser Startskript:

#!/bin/sh
exec /usr/lib/eclipse/eclipse "$@"

$@“ bewirkt, dass dem Skript mitgegebene Parameter an Eclipse weitergereicht werden. Nun müssen wir noch einen Menüeintrag erstellen, so dass sich Eclipse auch bequem aus dem Anwendungsmenü heraus starten lässt.

$ mkdir -p eclipse-sdk/usr/share/applications
$ nano eclipse-sdk/usr/share/applications/eclipse.desktop
[Desktop Entry]
Encoding=UTF-8
Type=Application
Name=Eclipse
Exec=eclipse
Terminal=false
Icon=/usr/lib/eclipse/icon.xpm
Comment=Eclipse Integrated Development Environment
Categories=Development;IDE;

Nun haben wir also ein Startskript, einen Anwendungsstarter sowie einen Programmordner. Fehlen nur noch Informationen, die das Paket näher beschreiben, damit auch APT was damit anfangen kann.

Paketinformationen und paketieren

Wir brauchen für die Paketierung eine Debain Control Datei. Die das Paket näher beschreibt und Abhängigkeiten auflistet.

mkdir eclipse-sdk/DEBIAN
nano eclipse-sdk/DEBIAN/control

In die Control Datei kommt folgender Inhalt:

Package: eclipse-sdk
Version: 3.7.1
Architecture: amd64
Maintainer: InsertYourNameHere
Depends: openjdk-6-jre | sun-java6-jre
Section: devel
Priority: optional
Description: Eclipse IDE, static-linked, minimal plugins.

Als Maintainer sollte euer Name stehen. Die Abhängigkeiten die Eclipse benötigt sind Java. Egal ob dies OpenJDK oder doch Sun Java ist. Alles andere ist bei Eclipse dabei.

Nun verpacken wir das Paket und können dies dann ganz bequem installieren.

$ fakeroot dpkg -b eclipse-sdk eclipse-sdk_3.7.1_amd64.deb
$ sudo dpkg -i eclipse-sdk_3.7.1_amd64.deb

Wenn fakeroot nicht vergessen wurde (wird benötigt um die Rechte richtig zu setzen!) sollte Eclipse jetzt problemlos starten.

Getestet mit Ubuntu 11.10 und Ubuntu 11.04.