Eclipse für PHP unter Opensuse – IV

In diesem Teil der Eclipse-Reihe befassen wir uns damit, wie wir PHP-Projekte mit SVN-Repositories verbinden.

Eclipse bietet aus meiner Sicht ein ganz brauchbares SVN-Interface, das einen die wesentlichen Informationen zur Historie der Entwicklungsstände abfragen läßt. Ferner kann man Dateien unterschiedlicher Versionsstände in Vergleichseditoren öffnen, wobei die Unterschiede im Datei-Inhalte markiert werden. Hinzu kommen graphische Darstellungen der Historie. Wir gehen nachfolgend auf einige dieser naheliegenden Möglichkeiten der Eclipse SVN Tools kurz ein – vieles muss ich aber der eigenen Entdeckungsfreude des Lesers überlassen.

Voraussetzungen der Übung

  • Eclipse ist wie im Teil II und im Teil III beschrieben eingerichtet.
  • Die Subversive-Erweiterungen sind wie in Teil III beschrieben installiert. Insbesondere sind die Konnektoren zu SVN und die SVNKits von der über die Polarion-Plugins implementiert worden.
  • Es liegt ein PHP-Projekt “myproject” im Verzeichnis
    /MY_PFAD/wsp_ecl/myproject
    vor.
  • SVN (Version 1.6) und KDESVN sind im Linux-System installiert

Den Einsatz der linken oder rechten Maustaste deuten wir nachfolgend durch die Abkürzungen

  • LMT: Linke Maustaste
  • RMT: Rechte Maustaste

an.

Schritt 1: Vorüberlegungen zur Organisation von Projekten in SVN

Einführungen in SVN findet man u.a. unter folgenden Links:

Wir gehen hier nur kurz auf ein paar wichtige Eigenschaften ein. Ein SVN-Repository entspricht normalerweise einem Containerverzeichnis, zu dem der sog. “Repository Root”-Pfad führt. In einem Repository kann man mehrere Projekte gleichzeitig in verschiedenen “Unter-Verzeichnissen” (weitere projektspezifische Pfadanteile des Repositories) verwalten. Unterhalb eines Projektes im Repository liegen dann ggf. weitere spezielle Verzeichnisse (s.u.) “trunk”, tags”, branches”. In diesen – i.d.R. unter “trunk” – ist dann schließlich die eigentliche Hierarchie der Datei-Verzeichnisse des Projektes in verschiedenen Versionen abgebildet.

SVN Uebersicht

Die Inhalte eines Repositories sind letztlich also hierarchisch wie in einem Verzeichnisdienst oder einem Filesystem organisiert. Auf der Ebene des Linux-Filesystems ist diese Sub-Struktur eines Repositories aber nicht direkt einsichtig, da sie über eine (hierarchische) Datenbank verwaltet wird. Man benötigt für die Darstellung der Repository-Struktur einen SVN-Client oder Kommandozeilen-Tools.

Bie jeder Änderung am Repository (z.B. durch Einchecken/Committen einer geänderten Datei) erhöht sich die Revisionsnummer des Repsoitories. Die SVN-Tools von Eclipse zeigen übersichtlich pro Datei/Verzeichnis an, bei welcher Revisionsnummer die letzte Änderung der Datei/des Verzeichnisses erfolgte.

Sowohl auf der Ebene des gesamten Repositories wie auch auf der Ebene der enthaltenen Projekte kann man 3 empfohlene Haupt-Unterverzeichnisse anlegen:

  • trunk – in
    diesem Verzeichnis sind die aktuellen Dateien/Directories des Projektes in den aufeinander folgenden Versionen der Entwicklungsarbeit enthalten
  • tags – hier bringt man Abbilder bestimmte Entwicklungsstände (Versionen) unter, die nicht mehr verändert werden sollen
  • branches – hier verzweigt man Entwicklungsstränge, die aber eine gemeinsame Wurzel haben sollen.

Diese speziellen Hauptzweige entsprechen in der hierarchischen Struktur des Repositories letztlich auch wieder nur Verzeichnissen, die aufgrund ihres Namens jedoch von SVN unterschiedlich behandelt werden. Solche Haupt-Zweige pro Projekt oder Repository kann man auch noch im Nachhinein anlegen – auch in Eclipse mit dessen eigenen SVN-Tools. Man ist bzgl. der Ausgestaltung der SVN-Struktur also sehr flexibel.

Wie kann man also systematisch beim Aufbau eines Repositories vorgehen?

Meine persönliche Vorgehensweise gerade bei großen Projekten mit einigen Teilprojekten ist die, dass ich zunächst ein umfassendes Repository anlege und dann darin über die SVN-Tools von Eclipse meine einzelnen PHP-Teil-Projekte jeweils in einer sog. “Single Project Structure” unterbringe. Sprich: ich lege die Zweige “trunk, branches, tags” unterhalb eines jeden Projektverzeichnisses an und nicht auf der Ebene des gesamten Repositories selbst.

Einer solchen Politik liegt folgender Ansatz zugrunde:

  • Ich lege unterschiedliche SVN Repositories für große, aber relativ unterschiedlich Projekte (z.B. für unterschiedliche Kunden) an.
  • Ich bringe Projekte mit gleicher Grundlage (Klassenbibliotheken) und ähnlicher Struktur soweit möglich in ein und demselben SVN Repository unter,
  • Falls ich mehrere Projekte im gleichen Repository aufnehme, versehe ich diese Projekte jeweils mit eigenen Hauptzweigen “trunk”, “tags”, “branches”.

Warum will man auf einem stand alone Entwicklungssystem ggf. mehrere Projekte in einem Repository unterbringen und diese mit separaten “trunk”- und “tags”-Verzeichnissen versehen ?

Ein einfaches Beispiel für eine solche Situation ist etwa dann gegeben, wenn man ein und dieselben Klassenbibliotheken in verschiedenen Projekten einsetzen will und diese Bibliotheken aber nur einmal – nämlich über ein zentrales Projekt – pflegen will. Sind sowohl das Projekt für die zentralen Bibliotheken als auch die anhängigen unterschiedlichen Projekte in ein und demselben Repository untergebracht, so ist die Kopplung der Projekte untereinander mit den Tools von Eclipse sehr einfach. Wir kommen darauf weiter unten zurück.

Diese Vorgehensweise der Organisation mehrer Projekte im gleichen Repository führt zu der nachfolgend beschriebenen Anbindung von PHP-Projekten an ein SVN-Repository.

Hinweis zur Kopplung verschiedener Repositories:    Wie man bei Bedarf auch verschiedene SVN-Repositories und zugehörige Projekte noch nachträglich miteinander koppelt, erfährt man z.B. hier :

Hinweis zum Begriff der “Repository Location” in Eclipse:

In Eclipse taucht verschiedentlich der Begriff “Repository Location” auf. Gemeint sind damit bezeichnete Verweise auf Repositories oder aber bestimmte Inhalte/Bereiche von Repositories. Es kann also mehrere “Repository Locations” geben, die sich auf ein und dasselbe Repository, aber unterschiedliche Locations innerhalb des Repositories beziehen. Definierte “Repository Locations” werden in Eclipse im View “SVN Repositories” angezeigt
und lassen sich dort einsehen und verwalten.

Schritt 2: Prüfen, dass der passende SVN-Konnektor in Eclipse aktiviert ist

Auf meinem System ist SVN in einer Version 1.6.x installiert. Damit Eclipse damit richtig kommunizieren kann, ist es notwendig, dass der richtige Konnektortyp aktiviert ist. Hierzu gehen wir zu

“Windows” >> “Preferences” >> “Team” >> “SVN” >> Reiter “SVN Connector”

Hier wählen wir SVNKit 1.3.5 rxxx (for SVN 1.6.xx, all platforms) aus. Sonst erhalten wir beim Verbinden zu SVN-Repositories, die nicht kompatibel zu älteren SVN-Versionen angelegt sind, erhebliche Probleme. Siehe auch

http://j-developer.blogspot.com/ 2009/05/ local-svn-repository-with-eclipse.html

Schritt 3: Anlegen eines SVN-Repositories

Damit Eclipse ein PHP-Projekt mit einem SVN-Repository verbinden kann, muss letzteres (also das übergeordnete Container-Verzeichnis mit seinen Datenbank-Elementen) bereits vorhanden sein. Es gibt meines Wissens in Eclipse keine Möglichkeit, ein Repository und eine untergeordnete Projektstruktur sozusagen in einem Arbeitsschritt anlegen und füllen zu lassen.

Für das Anlegen eines neuen SVN-Repositories gibt es auf unserem lokalen Entwicklungssystem unter Opensuse (mit KDE) mehrere Möglichkeiten. Ich beschreibe hier alternativ nur zwei Wege: einen über KDESVN und danach einen alternativen über Eclipse selbst.

Schritt 3.1: Erstellen des SVN-Repository-Verzeichnisses mit KDESVN

Man öffne zunächst KDESVN. Dann klicken wir auf den Menüpunkt:

/MY_PFAD/wsp_ecl/myprojectMenü “Datei” >> “Subversion-Admin” > “Erstelle und öffne ein neues Repository”.

Danach wählt man einen Pfad zum neuen Repository-Directory aus. Im hier behandelten Fall einer lokalen Installation auf einem Laptop wähle ich eine geeignete Partition und dort ein (neues) Subverzeichnis “svn_myphp” unter einem Directory “SVN” aus. Also ggf.:

/MY_PFAD/SVN/svn_myphp

Als Typ des Repositories wähle ich FSFS aus. Zu den möglichen Vorteilen s. etwa:

http://blogs.compactframework.de/ Torsten.Weber/ 2007/12/03/ Subversion+Ndash+ Konvertierung+BDB+Berkeley+ Nach+FSFS.aspx

Die Checkbox “Erstelle Hauptverzeichnisse” wähle ich ab, da ich mich im Moment noch nicht mit Verzweigungen oder Branches” des Repositories, die sich in den üblichen Zweigen “Trunk”, “Tags”, Branches” des SVN-Repositories wiederspiegeln würden, rumschlagen will. Den Aufbau der üblichen Hauptzweige für die einzelnen PHP-Projekte überlasse ich später Eclipse.

KDESVN legt nun das Repository an und öffnet es auch. Da es noch leer ist, wird nichts – in unserem Fall natürlich auch nicht die die Hauptverzeichnisse trunk, etc. – angezeigt. Ein Blick auf das Verzeichnis “/MY_PFAD/SVN/svn_myphp” (z.B. mit Dolphin) zeigt aber, das hier bereits die nötigen Datenbank- und Konfigurationsverzeichnisse angelegt wurden.

Schritt 3.2: Alternativ: Erstellen des SVN-Repositories mit Eclipse

Wir öffnen in Eclipse die PHP-Perspektive mit dem PHP-Explorer links. Dann klicken wir auf den Menüpunkt

“Window” >> “Show View” >> “Other” >> “SVN” >> “SVN Repositories”

Im linken Seitenbereich öffnet sich neben den Reitern “PHP-Explorer”, “Type Hierarchy” ein weiterer Reiter “SVN Repositories” mit einer eigenen Symbolleiste.

SVN-Explorer Icon Leiste

Hier klicken wir nun auf das vorletzte Symbol von rechts

SVN Plus Symbol

Im sich öffnenden Dialog geben wir den Pfad zu dem gewünschten Repository (Containerverzeichnis) an. Im konkret abgebildeten Beispiel ist MY_PFAD jetzt durch “/samba” ersetzt.

New SVN repo

Die FSFS-Variante des Repositories wird über den Radiio-Button “File System” im Auswahlbereich “Repository Type” ausgewählt. Um das Repository auch schon sehen zu können, markieren wir die Checkbox “Create Repository Location”.

Wir klicken abschließend auf den “OK”-Button. Eclipse legt nun ein Verzeichnis “svn_myphp” unter “/MY_PfAD/SVN” mit den notwendigen SVN-Inhalten an. Im View “SVN Repositories” taucht nun rechts eine neue Repository Connection auf.

Wenn wir in Eclipse die Unterstruktur durch Klick auf das Dreieck vor dem Repository-Namen öffnen, sehen wir, dass es im wesentlichen noch leer ist.

New empty SVN repo

Ein

RMT-Klick auf den Repository-Namen >> Location Properties

gibt einige Informationen zum SVN Repository. Hier kann man nachträglich ein Password hinzufügen, dass dann später bei der Arbeit mit dem Repsoitory unter Eclipse abgefragt wird. Unter dem Reiter “Advanced”
finden sich unter “Enable Structure Detection” Einstellungen zu möglichen Verzweigungen. Wir lassen die Checkbox angehakt, weil Eclipse diese Unterstrukturen später für die ins Repository einzubettenden Projekte erkennen soll.

Schritt 4: Einbinden eines Eclipse-PHP-Projekts in das neu angelegte SVN-Repository

Es gilt nun, das eben angelegte Repository initial mit den Daten (Verzeichnissse, Dateien) unseres ersten PHP-Projektes “myproject” zu füllen. Wir wechseln daher wieder zum PHP-Explorer in der Eclipse PHP Perspective und öffnen das Kontextmenü unseres Projektes “myproject” :

RMT auf das Projekt “myproject” >> Team >> Share Project >> SVN im Auswahldialog wählen >> Create a new repository location >> Weiter

Im nächsten Fenster muss man unter dem Reiter “General” die URL zum eben angelegten SVN-Verzeichnis unter “/samba/SVN/svn_myphp” eingeben. Wichtig ist hier der Vorspann – das “Protokoll” – für die Art des Zugriffs ! Bei einem (lokalen) Datei-Zugriff lautet die Angabe in meinem Fall (lokale Installation) lautet die richtige Angabe:

file:///samba/SVN/svn_myphp

wobei /MY_PFAD hier durch “/samba” ersetzt wurde und für den Verzeichnispfad zum SVN-Verzeichnis steht. Wichtig sind die drei (!) Slashes am Anfang! Zwei davon markieren das “Protokoll” von Eclipse zum Austausch mit SVN innerhalb des lokalen Filesystems. Danach beginnt der eigentliche Pfad ab root “/”.

Proejct to SVN 1

Hinweis:   Bei externen SVN-Servern kämen aber auch folgende Protokolle in Frage:

http://, https://, svn://, svn+ssh://.
Weitere Informationen bietet das Eclipse Hilfesystem. Man suche dort nach “subversive supported protocolls” !

Auf unserer Seite zu den Angaben bzgl. des
Repositories geben wir nun bei Bedarf noch

  • die Bezeichnung an, die wir für die Repository Location wünschen (hier “myproject in svn_myphp”),
  • den User und ein Password an. Das Password wird später bei der Arbeit mit Eclipse und SVN abgefragt.

Unter dem Reiter “Advanced” findet man die Informationen zu den drei Hauptverzeichnissen, die Eclipse erkennen soll. Hier lassen wir alles unverändert. Die SSH- und SSL-Optionen in den anderen zwei Reitern kann man bei einem lokalen Verzeichniszugriff ignorieren. Ansonsten sind halt myselfdie für den betreffenden Server richtigen Angaben zu machen.

Mit der LMT auf die Taste “Next” schließen wir den aktuellen Dialog ab. Es öffnet sich ein weiterer Dialog (im konkreten Beispiel ist MY_PFAD wieder durch “samba” ersetzt) .

Project to SVN 2

Wir klicken auf “Next” und im nächsten Bestätigungsdialog auf “Finish”.

Eclipse stellt nun die Zuordnung der Dateien des Projekts zum SVN-Repository her und bereitet die Commit-Vorgänge für das Laden der Dateien in die Datenbank des Repositories vor. Im sich dabei öffnenden Dialog geben wir evtl. Anmerkungen ein und bestätigen den Check-In-Vorgang für die als “new” angezeigten Verzeichnisse und Dateien.

Die Dauer des nachfolgenden Commit-Vorgangs hängt von der Größe und Anzahl der Dateien ab, die eingecheckt werden. Im Php-Explorer erscheinen nach Beendigung der Commits rechts neben den Dateien Nummern. Dies ist jeweils die Revisionsnummern des Repositories, bei der die letzte Änderung der Datei erfolgte.

Schritt 5: Kontrolle und Ansicht des gefüllten Repositories

Natürlich kann man sich nun die SVN-Repository-Inhalte in Eclipse ansehen. Wir wechseln zurück zum View “SVN Repositories”. Dort klicken wir auf die zu unserem Projekt gehörige Repository Location und öffnen der Reihe nach die Struktur. Zur Sicherheit klicken wir vorab im Kontextmenü auf den Punkt “Refresh”.

Zusätzlich öffnen wir die Ansicht “SVN Repository Exploring” über den Menüpunkt

“Window” >> “Open Perspective” >> “Other” >> SVN Repository Exploring

Rechts wird dann ein Fenster angezeigt, in dem man mehr Informationen zu den Inhalten des Repositories bekommt. Man beachte u.a. die Revisionsnummer, die im Moment noch überall gleich ist. Doppelklicks auf die Verzeichnisnamen öffnen im Repository Explorer das jeweilige Verzeichnis.

Project in SVN 1

Die Nummer hinter der den angezeigten Dateien/Verzeichnissen gibt die Revisionsnummer des Repositories an, bei der jeweils die letzte Änderung erfolgte.

SVN-View “Historie” des Repositories

Mit folgendem Kontext-Menü-Punkt zeigt man sich im SVN-View “History” die Revisionsstände auf übersichtliche Weise an.

RMT auf die Repository Location >> Show History”

SVN History

Eine “History” von Revisionen kann man sich nach mehreren Änderungen auch gezielt für eine bestimmte Datei anzeigen lassen. Hierzu hangelt man sich durch die Hirarchie des Views “SVN Repository” bis zur betroffenen Datei vor und benutzt dann den Kontextmenü-Punkt “Show History” .

Schritt 6: Kontrolle der Revisionierung

Um zu testen, dass Änderungen an Dateien nach einem Commit in das Repository tatsächlich zu Revisionsänderungen führen, wechseln wir nun erneut zum PHP-Explorer. Dort wählen wir
eine Datei aus – in meinem Fall eine Datei “druck.css” und öffnen sie im Ediitor durch Doppelklick. Wir ändern dann an der Datei etwas (z.B. einen Kommentar) und speichern die Datei ab.

Im PHP-Explorer erscheint nun vor der Datei eine spitze Klammer “>”. Dies zeigt an, dass die Datei gegenüber dem letzten SVN-Revisionsstand geändert, aber noch nicht ins Repository eingecheckt wurde. Wir erreichen die notwendige Aktualisierung des Repositories über den Commit-Button

SVN Commit

in der SVN Icon Toolbar oder aber durch

RMT auf die Dtei im PHP-Explorer >> Team >> Commit

Im nachfolgenden Dialog bestätigen wir den Commit-Vorgang (und geben ggf. noch einen Kommentar ein).

Rechts aktualisieren wir dann den bereits geöffneten “History” View des Repositories mittels des zugehörigen Refresh Icons.

SVn Rev Changes

Das Kontextmenü für eine Revision gibt einem über den Punkt

RMT auf die Revision im SVN-View “History” >> Show Revision Properties

die Möglichkeit, bestimmte Daten zu einer Revision anzusehen und diese ggf. auch über ein eigenes Kontextmenü zu ändern (“Edit”).

SVN Rev Properties

Hinweis: Änderungen von Revisionsinformation – wie z.B. der Kommentare im Log – setzen Manipulationen des SVN-Adminsitrators am Repository selbst voraus. Siehe z.B.:
http://jacqueschirag.wordpress.com/ 2007/07/22/ changing-revision-property-in-subversion-with-tortoisesvn/

Schritt 7: Vergleich zweier Revisionsstände einer Datei

Im SVN View “History” kann man mit der rechten Maus in der Anzeige für einen bestimmten Revisionsstand auf eine Datei mit RMT klicken und erhält im Kontextmenü die Option “Compare with previous state”. Es öffnet sich dann ein spezielles Editorfenster, in dem die Unterschiede der Dateien markiert sind.

SVN Rev Changes Compare

Natürlich kann man auch andere Revisions-Stände als zwei aufeinanderfolgende Stände einer Datei miteinander vergleichen. Hierzu öffnet man mit

RMT auf eine Datei im View “SVN Repositories” >> Show History

rechts die History der zu untersuchenden Datei. Danach markiert man zwei Versionsstände und wählt dei Vergleichsoption im Kontextmenü

RMT auf eine der markierten Revisionen >> Compare with Each Other

SVN Compare Revisions

Schritt 8: Lösen der Verbindung eines Projekts zu einem Repository

Es kann passieren, dass man ein Prokjekt von seinem Repsitory lösen will oder muss. Dies geht über den PHP Explorer. Man öffnet dort das Kontextmenü des Projektes

RMT auf das Projekt >> Team >> Disconnect

und folgt den Dialogfenstern.

Schritt 9: Vorsicht beim Löschen eines Repositories

Wenn man ein Repository oder eine Repository Location im View “SVN Repositories” per Kontextmenü löscht, ist Vorsicht angebracht.

RMT auf die Repository Location >> Discard Location

Der nachfolgende Dialog

SVN Remove Repo

bietet neben der Option “Disconnect” auch die Option “Delete”. Hier sollte man immer “Disconnect” wählen. Ein Klick auf Delete führt zur Löschung des Projektes im PHP-Explorer und der entsprechenden Verzeichnisse auf der Festplatte !

Viel Spass nun mit SVN unter Eclipse ! Im nächsten Teil werden wir ein PHP-Projekt aus einem vorhandenen Repository erzeugen und zeigen, wie man zwei Projekte aus dem gleichen Repository miteinander verkoppelt.

 

Eclipse für PHP unter Opensuse – III

Die Anbindung der Verzeichnisse und Dateien eines PHP-Projektes an ein Versionskontrollsystem ist aus meiner Sicht fundamental für größere Entwicklungsarbeiten. In diesem dritten Beitrag der Eclipse-Reihe erweitern wir daher unser Eclipse-System zunächst um die benötigten SVN-Komponenten. Diese Komponenten werden im nächsten Beitrag vorausgesetzt und dienen hier als Beispiel dafür, wie man Eclipse-Erweiterungen verfügbar macht.

Danach werfen wir einen kurzen Blick auf die Möglichkeit zum Update des Systems. Abschließend gebe ich eine Übersicht über andere Pakete, die wir im Verlauf der weiteren Beiträge benötigen, und die ein PHP/Ajax-Entwickler früher oder später installieren sollte.

Voraussetzungen:

  • Eclipse ist wie im Teil II beschrieben eingerichtet.
  • Es liegt ein PHP-Projekt “myproject” vor – im Verzeichnis

    /MY_PFAD/wsp_ecl/myproject

    Dieses Projekt kann im PHP-Explorer angesehen werden.

Den Einsatz der linken oder rechten Maustaste deuten wir nachfolgend durch die Abkürzungen

  • LMT: Linke Maustaste
  • RMT: Rechte Maustaste

an.

Schritt 1: Hinzufügen von SW-Sites für Updates

Eclipse kann man über spezifische Sites und Repositories im Internet und eigene Verwaltungsfeatures erweitern und updaten. Es hat keinen Sinn, Eclipse über Yast, RPM- oder Debian-Paket-Manager hinsichtlich des Paket- oder Plugin-Umfangs zu verwalten. Die Eclipse eigenen Installations- und Update-Tools findet man unter

  • Help >> Install New Software
  • Help >> Check for Updates
  • Help >> Eclipse Market Place

Wir befassen uns hier kurz mit den ersten beiden Punkten. Die Entdeckung des “Market Place” überlassen wir dem Leser selbst.

Eine Übersicht über diejenigen SW-Sites, die momentan für Installationen/Updates zur Verfügung stehen, erhält man über den Menüpunkt

Help >> Install New Software

Auf dem sich öffnenden Dialog klicken wir oben auf den Link

“Available Software Sites”

und sehen etwa folgendes:

eclipse SWSites

Über die Bedienleiste rechts (oben nicht abgebildet) kann man auch Sites hinzufügen, wenn man von neuen interessanten Eclipse-Erweiterungen im Netz Kenntnis erhält. In meinem Fall sind folgende Sites installiert und aktiviert:

  • Helios – http://download.eclipse.org/releases/helios
  • Helios – http://download.eclipse.org/releases/helios/201102250900
  • PTP Updates – http://download.eclipse.org/tools/pdt/updates/2.2/milestones
  • Subversive Site – http://download.eclipse.org/technology/subversive/0.7/update-site/
  • Polarion Subversive SVN Connectors Site – http://community.polarion.com/projects/subversive/download/eclipse/2.0/update-site/
  • The Eclipse Project Updates – http://download.eclipse.org/eclipse/updates/3.6
  • PTP Updates Helios – http://download.eclipse.org/tools/ptp/updates/helios
  • TPTP Updates – http://download.eclipse.org/tptp/updates/
    Modelling Updates – http://www.eclipse.org/modeling/updates/

Eine Liste interessanter Update Sites für verschiedene Eclipse-Versionen findet man hier:

http://ekkescorner.wordpress.com/eclipse/update-sites/

Sites für SVN-Erweiterungen

Für die
Installation der SVN-Unterstützung sind die Subversion betreffenden Sites von Interesse. Siehe auch:

http://www.eclipse.org/subversive/
http://www.polarion.com/products/svn/subversive.php

An dieser Stelle sei darauf hingewiesen, dass es neben dem hier aufgeführten Subversion-Projekt von polarion.com auch die Erweiterung “Subclipse” von tigris.org gibt. Weitere Informationen findet man hier:

http://subclipse.tigris.org/

Bzgl. “Subclipse” habe ich leider keinerlei persönliche Erfahrungen. Das ist rein zufällig so – ich habe mit den “Subversion”-Erweiterungen von Polarion begonnen und war bislang zufrieden – und schlicht zu faul, mich zusätzlich um Subclipse zu kümmern. Das beinhaltet aber keinerlei fundierte Wertung über die Qualität oder Performance beider Erweiterungspakete. Ich habe über beide Erweiterungen Positives wie Negatives gelesen.

Schritt 2: Hinzufügen von SVN-Erweiterungen

Wir gehen nun erneut zu “Help” >> “Install New Software”. Dort wählen wir bei der Combobox

“Work With” : “– All Available Sites –”

und erhalten dann eine Liste installierbarer Pakete. Subpakete zu einem Hauptpaket sieht man, wenn man auf das Dreieck vor dem Haupt-Paket klickt.

Hinweis:    Will man wissen, welche Pakete bereits installiert sind, kann man den Link “What is already installed?” unten rechts auf der Seite verwenden.

Wir scrollen die alphabetisch sortierte Liste der installierbaren Erweiterungen zu den Paketen mit Subversive-Bezug. Da der Zugriff auf einige der Seites, von denen die Pakete geladen werden müssen, etwas träg ist, installieren wir die Pakete Stück für Stück, um Timeouts der Installationsroutine zu vermeiden.

Eclipse New SW

Wir beginnen mit dem Paket

“Subversive SVN Connectors”

und haken das ab. Dann klicken wir auf den Button “Next”. Auf der nächsten Seite kommen nun möglicherweise Meldungen, dass die Subpakete zu den “Win32 Binaries” nicht installiert werden können. Wir wählen diese Pakete daher im oberen Seitenbereich ab und drücken erneut auf den Button “Next”. Danach bestätigen wir die Installation und verfolgen den Status der Installation.

Anschließend verfahren wir ganz analog mit den Erweiterungspaketen

  • Subversive SVN Team Provider Plugin (Incubation)
  • Subversive Integration Plug-Ins (Incubation) (für Mylyn)

und bei Interesse installieren wir auch die zugehörigen Source-Pakete

  • Subversive Source
  • Subversive SVN Connector Sources

Der Download der Pakate und deren Installation kann etwas Zeit in Anspruch nehmen. Nach jedem installierten Paket werden wir zum Neustart von Eclipse aufgefordert. Wir müssen die spätestens nach der letzten Paket-Installation machen, um die installierten Pakete in Eclipse zu aktivieren und die entsprechenden GUI-Elemente anzeigen zu können.

Schritt 3: Erweiterung von Menüs und Icon-Leisten um SVN-Bedienelemente

Die Installation eines neuen Paketes bedeutet nicht automatisch, dass alle damit verbundenen Bedienelemente in der Form angezeigt werden, wie man das wünscht. Bzgl. SVN sorgen wir zunächst um die entsprechenden Erweiterungend er Menüleiste und der grafischen Icon-Leisten.

Wir haben im Eclipse-Fenster den PHP-Explorer geöffnet. Nun öffnen wir

Window >> Customize Perspective

oder klicken mit RMT auf die Icon-Leiste unter der Menü-Leiste und wählen dort “Customize Perspective”. In der dort erscheinenden Leiste verfügbarer Menü-Punkte unter dem Reiter “Tool Bar Visibility” taucht der Punkt “SVN” leider nur ausgegraut auf.

Eclipse Customize Perspective

Dies liegt daran, dass die “SVN-Kommando-Gruppe” noch nicht aktiviert wurde. Wir öffnen daher den Reiter

“Command Groups Availability”.

Dort markieren wir im linken Seitenbereich die Checkbox für “SVN”.

Eclipse Command Groups

Es werden uns dann die Punkte für das Menü und die Toolbars angezeigt. Will man die Menge der Items reduzieren, kann man das nun über die Reiter “Tool Bar Visibility” und “Menu Visibility” tun.

Danach prüfen wir, dass in der PHP-Explorer-Ansicht unseres Projektes “myproject” die Icon-Toolbar um einen SVN-Bereich erweitert wurde – wenn auch noch ausgegraut, da unser Projekt noch nicht mit einem SVN-Repository verbunden wurde.

Nun prüfen wir auch noch, dass sich die “SVN-Repository-Ansicht” öffnen lässt. Hierzu klicken wir in unserer PHP-Perspective auf

Window >> Show View >> Other >> SVN >> SVN Repositories

Neben dem PHP-Reiter öffnet sich nun ein neuer Reiter mit der Bezeichnung “SVN” und das zugehörige Fenster. Dieses Fenster ist noch leer, da wir keine Projekte angelegt haben. Das nachfolgende Bild zeigt den Blick auf ein bereits angelegtes Repository, wobei im rechten Bereich zusätzlich der “SVN Repository Browser” geöffnet wurde.

SVN 600

Schritt 4: Updates der bereits installierten Eclipse-Pakete

Wie hält man das Eclipse-System nun auf dem neuesten Stand? Dies ist relativ einfach – zumindest solange sich keine neue Abhängigkeiten durch Modernisierungen ins System einschleichen. Man benutzt einfach manuell :

Help >> Check for Updates

Das System wird dann auf den oben eingerichteten Sites nach neuen Paketen suchen und deren Installation vorschlagen. Sollten viele neue Pakete vorhanden sein, empfiehlt sich wiederum eine Paket für Paket -Installation, um Timeouts zu vermeiden.

Automatische Updates

Man kann das Update-Verhalten in Grenzen auch automatisieren. Die notwendigen Einstellungen nimmt man unter

Window >> Preferences >> Install/Update >> Automatic Updates

vor.

Schritt 5: Weitere nützliche Erweiterungen für die Web-Entwicklung

Ich gebe nachfolgend eine Übersicht über die Haupt-Erweiterungspakete, die auf meinem Eclipse-System installiert sind.

  • Axis2 Tools
  • Eclipse IDE for PHP Developers (essentiell in meinem Entwicklungsumfeld)
  • Eclipse Web Developer Tools (essentiell)
  • Javascript Development Tools (essentiell)
  • JAX-Ws DOM Tools
  • JAX-WS Tools
  • Native JavaHL 1.4 Implementation (essentiell)
  • Native JavaHL 1.5 Implementation (essentiell)
  • Native JavaHL 1.6 Implementation (essentiell)
  • PHP Development Tools (PDT) SDK Feature (essentiell)
  • PTD RDT Remote Toools Support (essentiell)
  • PTP Remote System
    Explorer Adapter
  • Remote System Explorer End-User Runtime
  • Remote System Explorer User Actions
  • Rich Ajax Platform (RAP) Tooling
  • Subversive Revision Graph
  • Subversive SVN Connectors
  • Subversion SVN Integration for the Mylyn Project
  • Subversive SVN JDT Ignore Extensions
  • Subversive SVN Team Provider
  • Subversive SVN Team Provider Localization
  • Subversive SVN Team Provider Sources
  • SVN Team Provider Connector Sources
  • SVNKit 1.1.7 Implementation
  • SVNKit 1.2.2 Implementation
  • SVNKit 1.3.5 Implementation
  • Target Management Terminal
  • Web Page Editor
  • WST Server Adapters

Man erkennt, dass manche der Pakete der reinen Unterstützung der Web-Entwicklung dienen, während andere die Anbindung von Eclipse an SVN und Remote-Systeme unterstützen.

Alle Pakete/Sub-Pakete findet man in der Übersicht unter “Install New Software”. Bei einigen muss man die Hauptpakete öffnen, indem man auf das horizontale Dreieck vor dem Paket klickt.

Eclipse für PHP unter Opensuse – II

In diesem 2-ten Teil der Beiträge zum Einsatz von Eclipse unter Opensuse 11.3/11.4 wollen wir Eclipse selbst auf unserem lokalen Entwicklungssystem installieren.

Wir beschreiben nachfolgend nur eine sehr individuelle Installation in einem persönlichen Verzeichnis mit Hilfe von Dateien, die wir aus dem Netz herunterladen. [Für eine systemweite Installation für mehrere User unter Opensuse und anderen Systemen sehen Sie bitte entsprechende Hinweise in einigen der Links am Ende dieses Beitrags.]

Angemerkt sei auch, dass einige Anwender Schwierigkeiten mit der Installation von Eclipse unter Opensuse 11.3 hatten – und zwar immer dann, wenn sie RPM-Pakete verwendeten. Wir werden nachfolgend dagegen die aktuellen Helios-Archive von den www.eclipse.org Websites und keine RPMs benutzen. Opensuse 11.4 beinhaltet übrigens auch kein Eclipse-RPMs mehr – zumindest nicht in den Standardrepositories von Opensuse.

Das Schöne an einer persönlichen Eclipse-Installation ist nun, dass sie im wesentlichen im Bereitstellen von Dateien eines Archivs in einem Verzeichnis im eigenen Verzeichnisbaum besteht. Das erleichtert die individuelle Kontrolle sowie Backups und Transfers auf andere Systeme enorm.

Voraussetzungen der Installation

Als Voraussetzungen nehmen wir zwar grundsätzlich an:

Das System ist gem. der Angaben des 1-ten Teils der Eclipse-Beiträge aufgesetzt.
https://linux-blog.anracom.com/2011/02/27/php-entwicklungssystem-mit-eclipse-i/

Tatsächlich benötigen wir für eine reine Eclipse-Installation ohne Anbindung an eine Testumgebung aber weder den Apache-Server, noch MySQL, noch SVN etc.. Diese kommen erst später – also in nachfolgenden Artikeln – ins Spiel.

Eclipse ist allerdings ein java-basiertes System. Um Eclipse in elementarer Form zum Laufen zu bringen, ist deshalb eine “Java Runtime”-Umgebung (JRE) erforderlich. Ich selbst habe auf meinem Opensuse 11.4 – System zwei JREs installiert:

java-1_6_0-openjdk – Java runtime environment based on OpenJDK 6 and IcedTea 6
und
java-1_6_0-sun – Java(TM) 6 Runtime Environment.

Ecdlipse arbeitet mit beiden Umgebungen gut zusammen. Natürlich ist unter Opensuse nur immer eine Umgebung wirksam – bei mir aktuell die OpenJdk-Umgebung. Wie man die Umgebung mit Hilfe des Kommandos

update-alternatives –config java

einstellt und wie man zwischen den Umgebungen wechselt, verrät folgender Artikel:

http://de.opensuse.org/Java#Zwischen_verschiedenen_Java_JREs_oder_SDKs_wechseln

Verwendete Abkürzungen: Nachfolgend verstehen wir unter “RMT” im übrigen die Anwendung der rechten Maustaste.

Schritt 1: Herunterladen und Entpacken von Eclipse

Wer sich über aktuelle und kommende Releases von Eclipse informieren will, findet erste Informationen hier:

http://en.wikipedia.org/wiki/Eclipse_%28software%29

Um Eclipse Helios für PHP in einer aktuellen Version zu installieren, kann man sich die notwendigen Pakte von folgender Adresse herunterladen:

http://www.eclipse.org/downloads/packages/release/helios/sr2

Dort wählt man das Paket “Eclipse for PHP Developers” und lädt es sich in ein Verzeichnis seiner Wahl herunter.
Anschließend expandiert man das tar.gz-Archiv (z.B. mit dem Tool “ark”) an einen Platz seiner Wahl im Verzeichnisbaum. Z.B. nach:

/MY_PFAD/eclipse

MY_PFAD steht hier für einen Pfad zu einem Verzeichnis, das mir zugänglich ist. Zur Not eben das HOME-Verzeichnis. In der Praxis halte ich aber meine Entwicklungstools und -Daten auf einer separaten Partition, für die ich besondere Backup-Regeln anwende, da ein Teil meines Geschäfts von den Ergebnissen der Entwicklungsarbeit abhängt.

Danach legen wir uns in Form eines weiteren Verzeichnisses unserer Wahl einen sog. “Eclipse Workspace” an, in dem wir PHP-Projekte unterbringen können. Solche Workspaces kann es mehrere geben. Mit Workspaces sind auch individuell, spezifische Konfigurationseinstellungen (u.a. der Benutzeroberfläche) von Eclipse verbunden. Eclipse fragt beim Öffnen normalerweise nach, welchen Workspace wir für die aktuelle Sitzung benutzen wollen. (Falls wir diese Nachfrage nicht explizit abschalten).

Ich lege für meinen ersten Workspace ein Verzeichnis

/MY_PFAD/ecl_wsp

an.

In dieses Verzeichnis hinein kopiere ich anschließend ein umfassendes Unter-Verzeichnis “myproject” mit diversen HTML-, DWT- und PHP5-Dateien, die ich in einem aktuellen Projekt verwenden will.

/MY_PFAD/ecl_wsp/myproject

Auf diesem Verzeichnis muss ich volle Schreibrechte besitzen. An dieser Stelle ist jeder natürlich selbst gefordert, eigene PHP-Projektdateien unterzubringen. Man kann das Verzeichnis “myproject” anfangs auch leer lassen und seine Dateien erst später in das Verzeichnis kopieren oder eben mit Hilfe von Eclipse selbst anlegen.

Schritt 2: Öffnen von Eclipse

Wir öffnen nun Eclipse, indem wir das Programm

/PFAD/eclipse/eclipse

starten. Z.B. über ein Terminal-Fenster und die Kommandofolge :

cd /PFAD/eclipse/
./eclipse

Man sollte vorab prüfen, dass die genannte Datei auch ausführbar ist und das ggf. ändern.

Bzgl. der Aufnahme des Eclipse Executables in den eigenen Pfad hilft folgendes (s. auch http://www.fedoranews.org/contributors/yves_janse/eclipse/06.shtml):

Anlegen eines Files ” /etc/profile.d/eclipse.sh” mit dem Inhalt:

export ECLIPSE_HOME=/usr/local/eclipse
export PATH=$PATH:$ECLIPSE_HOME

Ausführbar machen und in der aktuellen Shell ausführen:

sudo chmod +x /etc/profile.d/eclipse.sh
source /etc/profile.d/eclipse.sh

Danach kann man Eclipse auf der Kommandozeile einfach mittels des Kommandos “eclipse” starten. Auf meinem KDE-Desktop – genauer im “KDE-Arbeitsordner”- lege ich mir aber zusätzlich ein Icon zum schnellen Starten von Eclipse mittels der Maus an.

Auf die Rückfrage von Eclipse beim Starten, welchen Workspace wir öffnen wollen, geben wir das gerade angelegte Verzeichnis an. Dort liegen zwar Dateien; diese sind aber von Eclipse noch keinem Projekt zugeordnet, und es wurden daher auch keine entsprechenden “Metadaten” im Projektverzeichnis angelegt. Deshalb erscheint zunächst eine relativ einfache Eclipse-Oberfläche, die u.a. Links zu Informationen und Tutorials bietet. (Zu dieser Eröffnungsseite gelangt man später in Eclipse übrigens durch den Menüpunkt “HELP” >> “Welcome”).

eclipse_start

Schritt 3: Wechsel zur Workbench

Ganz rechts auf dem Begrüßungsschirm finden wir einen Link zur sog. Workbench, den wir benutzen.
Bei der sich nun öffnenden “Workbench” handelt es sich um ein mehrfach unterteiltes Fenster, das wir uns später per Maus sehr flexibel und persönlich einrichten können. Ganz links erkennen wir den sog. “PHP-Explorer”, in dem wir später unsere Projekte und entspr. Verzeichnisstrukturen in einer hierarchischen Gliederung sehen werden. Die nachfolgende Abbildung gibt darauf einen Vorgeschmack.

eclipse_workbench

Das Eclipse-Fenster stellt in der Regel sogenannte “Perspectives” dar. Davon gibt es – je nach Entwicklungsarbeit und Projekttyp – eine Vielzahl. Bei der oben dargestellten Perspektive handelt es sich um die sog.

PHP Perspective.

Andere Perspektiven öffnet man in Eclipse über den Menüpunkt

Window >> Open Perspective >> Other.

Innerhalb einer Perspektive kann man zusätzlich diverse sog. “Views” auf bestimmte Projektdaten oder Projektaspekte öffnen. Dies geschieht über den Menüpunkt

Window >> Show View

So werden wir unsere “PHP Perspective” später noch um einen “SVN Repository View”, einen “Task View” und einen “Remote System View” ergänzen.

Schritt 4: Anlegen eines ersten PHP-Projekts

Um ein erstes Erfolgserlebnis zu haben, legen wir nun ein PHP-Projekt an, das unsere bisherigen Dateien im Verzeichnis “myproject” unterhalb der Workbench umfassen soll. Wir nutzen hierfür den Menüpunkt:

“File” >> “New” >> “PHP Project”

Im sich öffnenden Dialog wählen wir einen Projektnamen, z.B.: “my_project”.

Eclipse New Project

Wir klicken auf den Radiobutton “Create new projects in workspace”.

Falls wir bestimmte PHP-Versionsprüfungen aktivieren wollen, wählen wir dies unter “Use project specific settings”. In meinem Fall “PHP 5.1/5.2”. Wir klicken ferner “use project as source folder”.

Den Punkt “Enable JavaScript support for this project” kann man bei sehr großen Projekten zunächst auch weglassen (dies kostet sehr viel zeitlichen Overhead bei den von Eclipse durchgeführten Fehler-Prüfungen und lohnt sich nur, wenn man viel mit Javascript-Programmen arbeitet).

Zu den Projekteinstellungen noch zwei Hinweise:

  • Hinweis 1: Ein Klick auf das Hilfe-Icon (Fragezeichen) führt zu Hilfeseiten mit vielen nützlichen Kurzinformationen zu den eben benutzten Optionen.
  • Hinweis 2: Die Javascript-Unterstützung kann man einem Projekt (ebenso wie die PHP-Unterstützung) auch noch im nachhinein zufügen. Die relevanten Menüpunkte findet man unter
    RMT auf das Projekt >> Configure

    Auf Details von Projekteinstellungen gehe ich aber noch in einem späteren Beitrag ein.

Nach den Festlegungen für unser Projekt klicken wir auf den Button “Weiter”. Auf der nächsten Konfigurationsseite wird angezeigt, dass unser Projekt-Verzeichnis als Source-Folder in den Include-Pfad eingefügt wurde. Man erkennt, dass man hier bei Bedarf noch andere Ressourcen in den Include-Pfad integrieren könnte. Die anderen verfügbaren Reiter ignorieren wir und drücken schließlich auf den Button “Finish”.

Im PHP-Explorer-Fenster wird nun das PHP-Projekt angelegt. Dass es sich tatsächlich um ein PHP-Projekt handelt, erkennt man am kleinen “P” oberhalb des Namens. (Ein
anderer Web-Projekttyp könnte etwa ein Javascript-Projekt sein – dieses würde dann über ein “JS” oberhalb des Namens angezeigt werden).

Eclipse PHP Explorer

Rechts unten in der Fußzeile des Eclipse-Fensters sehen wir übrigens für einige Sekunden (je nach Größe und Anzahl der bereits vorhandenen Dateien) den Fortschritt der sog. “Build-Operationen” für das Projekt. Hier werden u.a. auch alle Dateien auf Fehler oder Probleme geprüft, die dann zu entsprechenden Hinweisen im Eclipse-System führen (unter der Ansicht “Problems”, die sich standardmäßig im unteren Fensterbereich befindet.

Schritt 5: Modifikation der Default Character Codes für die Dateien des Projekts

Nun klicken wir per RMT auf den Projektnamen im PHP-Explorer und öffnen im Kontext-Menü den Punkt “Eigenschaften”. Im dortigen Dialog stellen wir bei Bedarf die Default-Character-Kodierung der Projektdateien um, um beim Betrachten der Dateien im Editor problematische Zeichen zu vermeiden. Will man den verwendeten Character-Set für den Workspace generell ändern, muss man den entsprechenden Punkt unter

Window >> Preferences >> General >> Workspace

einstellen.

Eclipse Preferences

Character-Code-Einstellungen kann man übrigens auch pro Datei vornehmen (s.u.).

Schritt 6: Öffnen von Dateien und elementare Einstellungen des Eclipse PHP-Editors

Nun können wir auch eine unserer Projekt-Dateien im Eclipse Editor (für PHP) öffnen. Dazu klappen wir die Verzeichnisstruktur des Projekts im PHP Explorer auf (Klicks auf die dem Projekt und seinen Unterverzeichnissen vorangestellten Dreiecke). Eine Datei öffnet man durch Doppelklick auf den Dateinamen. Hierbei öffnet sich rechts der in Eclipse integrierte “PHP Editor”.

Andere Möglichkeiten zum Öffnen einer Datei erreicht man über einen RMT-Klick auf den Dateinamen im PHP-Explorer und die Optionen des sich öffnenden Kontext-Menüs. Externe Editoren erreicht man über

RMT auf Dateinamen >> Open With >> Other >> External Programs

Font- und Farb-Preferenzen für den Editor

Welche Schriften und Markierungen der Eclipse eigene PHP-Editor benutzen soll, legen wir auch unter den “Preferences” fest:

Window >> Preferences >> General >> Appearance >> Structured Text Editors

Dort kann die Vorgabe der Fonts für den Editor editiert werden. Wesentliche Farben für die Hervorhebung bestimmter Elemente eines PHP-Programms definieren wir dagegen über den Menüpunkt

Window >> Preferences >> PHP >> Editor >> Syntax Coloring.

(Diese Umstellung kostet nach dem “Apply” manchmal leider etwas Zeit – vor allem wenn die Farben zur Hervorhebung von Klassenelementen geändert werden.)

Anzeige von PHP-Konstrukten im Outline View

Standardmäßig führt das Öffnen einer Datei mit dem eingebauten Editor auch zu einer Anzeige der wesentlichen definitorischen Elemente – wie Klassen, Methoden, Variablen etc. im sog. “Outline”-Fenster, das in der Regel rechts neben dem Editor-Fenster angezeigt wird.

Character Code pro Datei einstellen

Dies geht bei geöffneter Datei im Eclipse-eigenen Editor (der Mauscursor muss im Editor aktiv sein) über den Menüpunkt

Edit >> Set Encoding

Schritt 7: Sichten und weitere Fenster

Alle angebotenen “Sichten” oder “Perspektiven” von Eclipse auf die aktuellen Projekte und Daten (je nach aktueller Installation von Eclipse-Paketen und Plugins) kann man

  • entweder über die Menüpunkte “Window” >> “Open Perspective” oder “Window” >> “Show View”
  • oder ganz links unten über das langgestreckte Symbol mit dem Pluszeichen rechts

eclipse_view_but

öffnen und per Maus im Hauptfenster oder einem seiner Teilfenster an passender Position anordnen. Hier hilft dir durchgehende Reiter-Technologie von Eclipse dabei, die Übersicht zu behalten.

Links mit weiteren Hinweisen zur Installation


http://www.jacovosloo.info/blog/general-it/eclipseonopensuse113

http://www.unixboard.de/vb3/showthread.php?39958-Eclipse-installieren&p=314170
http://tropenhitze.wordpress.com/2010/02/01/installing-eclipse-ide-on-linux-opensuse-11-2/
http://forums.opensuse.org/english/get-technical-help-here/install-boot-login/406454-installing-eclipse.html
http://www.linux-club.de/viewtopic.php?f=28&t=95531
http://www.linuxquestions.org/questions/linux-software-2/guide-to-install-eclipse-564770/

http://www.fedoranews.org/contributors/yves_janse/eclipse/06.shtml

http://www.ubuntu-forum.de/artikel/443/eclipse-installieren.html
http://www-rbi.informatik.rwth-aachen.de/Helpdesk/eclipse-linux-installieren.php
http://wiki.ubuntuusers.de/Eclipse?action=export&format=raw&rev=29957
http://wiki.ubuntuusers.de/eclipse

Hinweise zu einer systemweiten Installation
Es empfiehlt sich dann aus meiner Sicht, eine Installation unter den Verzeichnissen “/opt”, “/usr/local” oder “/usr/share” mit hinreichenden Ausführungsrechten. Allerdings muss man sich dann auch intensiv Gedanken über die Update-Politik innerhalb von Eclipse machen. Da dies nicht zu den einfachsten Aufgaben gehört, habe ich das Thema bisher regelmäßig durch individuelle Installationen umgangen. getreu der Devise: Jeder Entwickler ist im Kern selbst für seine Entwicklungsumgebung verantwortlich.

http://divby0.blogspot.com/2007/08/howto-install-eclipse-for-multi-user.html
http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.platform.doc.isv/reference/misc/multi_user_installs.html

Eclipse für PHP unter Opensuse – I

Einführung – Eclipse statt Dreamweaver für die PHP-Entwicklung

Lange Zeit habe ich bei einfachen PHP-Projekten aus historischen Gründen Dreamweaver CS4 als besseren “Editor” eingesetzt und damit “herumgedoktert”. Und das gleich in zweifacher Hinsicht:

  • Dreamweaver betreibt man trotz Wine und Crossover Office immer noch am besten unter Windows. Aber wer will als Linuxer schon auf Dauer mit einer solchen Umgebung leben? Selbst wenn sie sich nur in einer virtuellen Maschine entfalten darf …..
  • Zudem ist die Arbeit bei komplexen Projekten sehr unkomfortabel, denn für einen schnellen, organisierten Entwicklungsprozess fehlen Dreamweaver eine Reihe von Features, die man im Lauf der Zeit immer mehr vermisst

Nachfolgend nenne ich nur drei der Mängel:

Fehlende Editor-Funktionen und Unterstützung bei der Bearbeitung von Klassen in Dreamweaver
So ist eine aktive Unterstützung während des Editierprozesses speziell von Klassen (u.a. Syntaxprüfung, automat. Angebot an Membervariablen / Methoden) so gut wie nicht vorhanden. Das reduziert sich bei Dreamweaver im wesentlichen auf Code-Highlighting und Angaben zu Interfaces von PHP-Standard-Funktionen. Auch ist es für den Entwickler kaum möglich, bei umfangreichen Klassen einen schnellen Überblick über die benutzten Variablen und Methoden der Klasse mit entsprechenden Links zu den Codestellen im Editor zu bekommen.

Fehlende Anbindung an ein Versionskontrollsystem in Dreamweaver CS4
Vor allem aber erforderte ein vernünftiges Versionsmanagement zumindest bis zur CS4-Version einen mühsamen Umweg über den Linux-Host, um erstellte Dateien dort in eine aktuelle SVN-Version einchecken zu können. Ganz sinnvoll und praktikabel fand ich aber unter Dreamweaver das Checkout/Checkin-Verfahren mit den zugehörigen Dateisperren im Zusammenspeil mehrerer Entwickler. (Hinweisen möchte ich allerdings darauf, dass man seit der CS5-Ausgabe SVN Repositories auch für die SVN Version 1.6.x angeblich an Dreamweaver anbinden kann).

Kein integriertes Tool zur systematischen Erfassung von anstehenden Aufgaben
Ein Nachteil ist aus meiner Sicht auch, dass man das systematische Erfassen und Abarbeiten von Aufgaben mit separaten Tools (z.B. einem Task- oder Projektmanagement-Tool) übernehmen muss, die nicht in die Entwicklungsumgebung “Dreamweaver” integriert sind.

Diese Nachteile einer PHP-Entwicklung unter Adobes Dreamweaver lassen sich dann gut ertragen, wenn in der Regel nur zwei bis drei Personen mit einem Projekt beschäftigt sind, die Entwicklung der Benutzerschnittstelle im Vordergrund steht und die Projekte – speziell die Klassen-Bibliotheken – einen überschaubaren Umfang haben.

Eclipse “Helios” als Kern eines Linux-basierten PHP-Entwicklungssystems als kostenfreie Alternative
Im vergangenen Jahr wurden unsere Projekte aber immer komplizierter und die Anzahl der Klassenbibliotheken immer größer. Deshalb war es allerhöchste Zeit, zu einer besseren Entwicklungsumgebung zu wechseln. Im Frühjahr 2010 ist dann Eclipse in der “Helios”-Version erschienen. Dieser IDE ging ein guter Ruf voraus. Auch die früheren Schwieigkeiten bei der Einbindung von Subversion sollten dort behoben sein. Nach einigen Tests und einer Einarbeitungsphase bin ich inzwischen komplett auf Eclipse Helios unter Linux umgestiegen.

In der folgenden Serie von Artikeln in diesem Blog will ich die Installation und den Einsatz von Eclipse in einer Linux-Umgebung unter Opensuse 11.3/11.4 beschreiben. Wichtig ist mir dabie die Kombination mit SVN, einer Apache/MySQL-Test-Umgebung und nicht zuletzt auch mit Dreamweaver.

Kombination von Eclipse mit Adobe Dreamweaver möglich ?
Wenn mehrere Leute zusammenarbeiten und eine Person sich weiter mit der Wysiwyg-Umgebung Dreamweaver
um die Benutzerschnittstelle kümmern will oder muss, stellt sich natürlich die Frage, wie man die Eclipse-Helios-Welt unter Linux mit der Adobe Dreamweaver/Windows-Welt in einem geordneten Entwicklungsprozess kombinieren will. Das ist tatsächlich nicht ganz einfach, da das Checkout/Checkin-Verfahren der Dreamweaver-Umgebung schlecht zu Subversion passt. Hier wird vom Entwickler einige Disziplin verlangt. Dennoch ist ein geordnetes Vorgehen möglich.

Meine unter Eclipse entwickelten PHP-, HTML-, CSS-, Javascript-Dateien stehen heute – nach einigen Experimenten – immer auch meiner Mitarbeiterin zur Verfügung, die (noch) unter Dreamweaver weiterentwickelt und sich auf die Benutzerschnittstelle unserer Weblösungen konzentriert. Wir haben bei uns im Lauf der Zeit ein zweistufiges Entwicklungsverfahren unter der Einbeziehung von Eclipse unter Linux und Adobe Dreamweaver unter Windows etabliert. Das Vorgehen beruht wesentlich auf dem Einsatz von Samba als vermittelndem Verzeichnisdienst zwischen der Adobe-Umgebung in einem virtuellen Windows-System und der eigentlichen Web- und Datenbankserver-Umgebung unter Linux.

Einführung

Für wen ist die kommende Artikelserie zu Eclipse gedacht? Was werden die Inhalte sein?

Die nachfolgenden Artikel befassen sich mit der Implementierung von Eclipse und den ersten erforderlichen Schritten für den späteren produktiven Einsatz unter Opensuse-Linux. Die Artikelserie ist für Leute gedacht, die sich noch nicht mit Eclipse auseinandergesetzt haben, aber den Umstieg auf Eclipse und eine PHP-Entwicklungsumgebung unter Linux unter Einbeziehung eines Web- und Datenbankservers in Erwägung ziehen.

Administrative Grundkenntnisse im Umgang mit Linux (hier in der Opensuse-Ausprägung) sind dabei nötig. Das hält sich aber in Grenzen, da ich mich hier der Einfachheit halber hauptsächlich auf eine Implementierung auf einem einzigen lokalen Linux-System beschränken werde. Das Ergebnis entspricht dann etwa einem autonomen Entwicklungssystem auf einem Desktop-Rechner oder einem Laptop, auf dem eben auch einige einfach konfigurierte Serverkomponenten mitlaufen.

Man sollte also neben dem reinen Interesse für Eclipse auch den Ehrgeiz mitbringen, auf seinem Entwicklungssystem unter Linux auch einen Apache-Server und einen MySQL-Server aufzusetzen. Ohne einen Web- und Datenbank-Server macht ja eine PHP-Entwicklung ohnehin kaum Sinn. Ich werde mich in dieser Artikelreihe allerdings nicht mit den Details einer umfassenden Installation von Server-Modulen, geschweige denn mit der Konfiguration eines Netzwerkes mit Apache-, Samba-, DNS- und Datenbankservern befassen. Im hiesigen Zusammenhang müssen Hinweise auf eine lokale Server-Installation auf einem minimalen, aber hinreichenden Niveau genügen.

Ich selbst habe den Einstieg in Eclipse selbst insgesamt als etwas knifflig empfunden. Da ich auch nach fast 12 Monaten noch längst nicht alle Seiten der Eclipse IDE erkundet habe, bitte ich bei dem einen oder anderen möglichen Fehler oder der einen oder anderen Nachlässigkeit oder Unvollständigkeit der Ausführungen um Nachsicht.

Ich möchte an dieser Stelle nicht verhehlen, dass Eclipse auch einige Nachteile hat. U.a. ist die miserable Performance des eingebauten Editors bei der Behandlung großer Dateien (> 4000 Lines) zu nennen. Ferner kann es manchmal bei komplexen Operationen und Eingriffen in Dateiinhalte mit Fremd-Editoren zu merkwürdigen Kapriolen in der Versionsverwaltung kommen, die man nicht immer versteht. Zudem laufen Updates des Eclipse-Systems und seiner Plugins nicht immer anstandslos durch, weil ggf. Repositories fehlen oder nicht alle Abhängigkeiten aufgelöst werden können. Aber ich habe hier bislang noch immer in relativ kurzer Zeit ein Lösung gefunden.

Alles in allem möchte ich Leuten, die PHP-Entwicklung betreiben wollen und mit ihrer Entwicklungsumgebung – im speziellen Dreamweaver – unzufrieden sind, doch anraten, Eclipse wenigstens
einmal testweise auszuprobieren. Der Schritt von Eclipse zu umfangreicheren Umgebungen (z.B. zu einer voll ausgebauten Zend Entwicklungsumgebung) ist dann oft recht einfach.

Implementierung für ein lokales und autonomes Entwicklungssystem

Die Implementierung möchte ich zur Vereinfachung am Beispiel eines lokalen Entwicklungssystems unter Opensuse 11.3/11.4 darstellen. Ich selbst habe die hier beschriebenen Schritte zum Einsatz von Eclipse im Juli 2010 zunächst auf einem Laptop mit nagelneu installierten “Opensuse 11.3”-System und KDE 4.4.4 durchgeführt und habe danach eine Installation in einer Umgebung mit separaten File, Web- und Datenbank-Servern nachgezogen. (Heute läuft Eclipse bei mir auf mehreren Desktops und Laptops unter Opensuse 11.4 und KDE 4.6.1.)

Unser lokales, autonomes Entwicklungssystem soll nach seiner Implementierung folgende Komponenten umfassen:

  • einen SSL-fähigen Apache-Webserver mit “PHP 5.3”-Modulen,
  • MySQL 5,
  • SVN 1.6,
  • Eclipse Helios mit Erweiterungen für die PHP-Entwicklung, eine SVN-Anbindung und mit Tools für Remote System Interaktionen.

Hinzu kommen für die Kooperation mit Dreamweaver

  • eine lokale virtuelle Maschine (in meinem Fall unter VMware Workstation mit einem Windows-System und der Adobe Web Premium Suite CS4.
  • ein lokaler Samba-Server.

In diesem ersten Teil befasse ich mich kurz mit den notwendigen Installationsarbeiten zu Apache, MySQL und SVN. Im zweiten Teil gehe ich dann auf die eigentliche Eclipse-Installation inkl. der Anlage eines ersten PHP-Projektes ein. Im 3-ten Teil behandle ich kurz die Implementierung von Eclipse-Erweiterungen (speziell für SVN) samt Updates. In Teil 4 wird zunächst ein Testprojekt mit SVN verbunden. Danach erzeugen wir im fünften Teil 5 umgekehrt ein PHP-Projekt unter Eclipse aus den Inhalten eines bereits vorhandenen SVN-Repositories.

Im sechsten Teil dieser Reihe binden wir das Eclipse-Testprojekt dann an den Apache-Server an. In weiteren Teilen gehe ich noch auf Besonderheiten wie das Code-Debugging auf dem Webserver ein. Abschließend fasse ich einige persönliche Erfahrungen mit Eclipse zusammen und beschreibe zudem grob das Zusammenwirken mit Adobe Dreamweaver CS4 in einer virtuellen Windows-Umgebung unter Linux.

Hardware- und Betriebssystem-Umgebung – Hinweise zu HW-Voraussetzungen

Der bei meiner ersten Eclipse-Installation verwendete Laptop hatte 2 GB Hauptspeicher – und die braucht er auch, wenn neben Linux, KDE, Apache, MySQL auch Eclipse in einer Java-Runtime-Umgebung läuft. Der Speicherbedarf von Eclipse ist enorm, bei größeren Aufgaben auch der Bedarf an Zeigern des Betriebsystems zu offenen Dateien – speziell wenn man gleichzeitig SVN einsetzt. Hier sind entsprechende Anpassungen im OS nötig, auf die ich an passender Stelle eingehen werde.

Der Dual-Core Prozessor des Laptops war mit 2,14 GHz ist für ein flüssiges Arbeiten völlig ausreichend. Wegen der doch sehr umfassenden und in viele Teilbereiche gegliederten Benutzer-Oberfläche vom Eclipse war ich zudem sehr froh über den 17 Zoll-Schirm des Laptops und seine hohe Auflösung (1920×1200 px). Im professionellen Einsatz möchte ich allerdings zu einer Desktop-Umgebung raten, in der man mit 2 größeren Schirmen arbeitet. Dies gilt erst recht, wenn neben Eclipse auch noch Adobe’s CSx-Umgebung (in einem virtuellen Windows) zum Einsatz kommt.

Vorbereitung und Know-How-Aufbau

Da ich mich mit Eclipse für PHP in der Praxis so gut wie nicht auskannte, habe ich vor meinen ersten Schritten versucht, im Internet Informationen zu finden, die für Einsteiger geeignet sind. Leider sind die meisten Artikel, die ich
gesehen habe, naturgemäß an Java-Entwickler gerichtet – und die damit zusammenhängenden Verfahren und Subsysteme von Eclipse interessieren mich als PHP-Entwickler weniger. Leider sind die verfügbaren Artikel auch keineswegs immer so geschrieben, dass man das dort Gesagte einfach auf eine PHP-Entwicklungssituation übertragen könnte.

Wirklich hilfreich für mich war dann eine Video-Tutorial-Serie von “Ralphz” (s. die Links weiter unten), die ich empfehlen möchte. Sie betreffen zwar ältere Eclipse- und PTD-Versionen – aber didaktisch sind die Tutorials so gehalten, dass man das dort Gezeigte fast problemfrei auf die Helios-Umgebung übertragen kann.

Bitte also die Video-Tutorials in Ruhe und komplett ansehen, bevor man mit den Installationsarbeiten beginnt. Man sollte sich erst einen Überblick über die vielfältigen Möglichkeiten und PHP-relevanten Plugins sowie SVN-Plugins etc. verschafft haben, bevor man beginnt, seine persönliche Entwicklungsumgebung aufzubauen.

Die Tutorials machen auch klar, wie Eclipse mit SVN zusammenarbeitet. Man muss über SVN nicht viel wissen, um es zumindest für ein Projekt ohne Entwicklungsverzweigung unmittelbar einsetzen zu können. Ansonsten sei hier auf das auch von “Ralphz” zitierte Online-Buch zu Subversion verwiesen.

Links:

http://vimeo.com/1077103 und die dortigen weiteren Videos aus der Serie von “Ralphz”.
http://theorangeit.org/category/programming/php/page/3/ Ralphz’s Blog
http://www.eclipse.org/subversive/documentation/gettingStarted/aboutSubversive/install.php
– Installation-Info zum Subversion-Plugin

Installationsplanung

Mein Ziel war es wie gesagt, eine vollständige Entwicklungsumgebung auf einem Laptop zum Laufen zu bringen. Eclipse ist davon natürlich nur ein Teil und interagiert mit anderen Komponenten. Ich liste mal die wesentlichen Komponenten etwas detaillierter als oben auf:

  • Apache2-Server mit virtuellen, SSL-fähigen Domainen (warum letztere nützlich sind, erläutere ich weiter unten).
  • Apache’s PHP5-Modul zur Unterstützung von PHP
  • Einen laufenden MySQL5-Server.
  • PhpMyAdmin
  • SVN in der Version 1.6.6 als Versionsverwaltungstool.
  • KDESVN als primären SVN-Client
  • Java 6 JRE von SUN oder das Open-JDK in der Version 1.6
  • Kate als sekundären Editor
  • Firefox als Browser
  • Eclipse Helios mit folgende Plugins:
    • dem PTD-Plugin für die eigentliche PHP-Entwicklungsarbeit,
    • dem Subversive-Plugin und Subversive Connectors für die Anbindung an SVN,
    • dem Web-Entwicklungs-Plugin WTP plus Javascript Development-Unterstützung,
    • das Target-Management mit dem Remote-System-Explorer
    • XDebug als Debugging-Subsystem.

Bzgl. einiger Eclipse Plugins gibt es Alternativen – z.B. das “Subclipse”-Plugin statt des “Subversion”-Plugins für die Anbindung an SVN oder ZEN-Tools für das Debugging. Ich habe Subclipse noch nicht erforscht und kann daher dazu nichts Vernünftiges sagen. Die von mir installierten Subversion-Plugins funktionieren aber gut und ich kann damit im Moment leben.

Installation der Nicht-Eclipse-Komponenten

In diesem Beitrag kann ich die Installation von Apache, MySql, etc. nicht im Detail beschreiben. Das würde den Rahmen sprengen. Ich habe die Minimal-Installation für beide Systeme aber in früheren Blog-Artikeln dargestellt, auf die ich an dieser Stelle hinweise. Ansonsten
noch ein paar zusätzliche Anmerkungen:

Apache und PHP5 – lokale Installation

Das lokale Entwicklungssystem soll später autonom – d.h. ohne Netzverbindung funktionieren. Ein DNS-Dienst ist für ein rein lokales System überflüssig. Daher können Einträge in “/etc/hosts” das Loopback-Interface verwenden und etwa so aussehen.

127.0.0.1 localhost.localdomain localhost
127.0.0.2 mylap.myprivatedomain.de mylap
127.0.0.2 devdomain

Die IP-Adresse ist wichtig für das spätere Aufsetzen einer IP-basierten, SSL-fähigen virtuellen Web-Domaine “devdomain”. Unter dieser Domaine werden im weiteren Verlauf die Resuktate meines PHP-Projektes sichtbar werden. Als “Netzwerk-Adresse” in einem Browser muss dann halt eine Loopback-Adresse herhalten.

Es gibt im Internet immer wieder kritische Diskussionen zur Verwendung von Loopback-Adressen – ich denke, man kann das im hiesigen Zusammenhang mal getrost ignorieren. Der Weg über “/etc/hosts” und Loopback-Adressen ist eine Krücke Aber die wesentliche Funktionalität eines autonomen Entwicklungs- und Test-Systems lässt sich damit schnell, übersichtlich und ohne große Umwege erreichen.

Apache kann man unter Opensuse einfach über die Yast und die dortige Paketverwaltung installieren. Der folgende frühere Artikel in diesem Blog gibt eine Übersicht darüber, was zu tun ist, um auf die Schnelle die SSL-Fähigkeit des Servers zu aktivieren, eine Standarddomaine (für localhost) sowie eine SSL-fähige “devdomain” bereitzustellen.

Lokaler Apache auf die Schnelle

Die meisten meiner PHP-Lösungen für Kunden erzwingen in der Regel einen HTTPS-Verbindung. Wenn ich das lokal testen will, komme ich um SSL also nicht herum. SSL geht nur über IP-basierte virtuelle Domainen. Für den Standardhost “localhost” ist daher eine zweite separate virtuelle Domaine einzurichten. Siehe zu den Details und den Apache-Konfigurationsdateien den eben genannten, früheren Beitrag.

Die virtuelle SSL-Domaine “devdomain” des Apache-Servers wird über dei DocumentRoot-Anweisung in der Apache-Konfiguration später entweder dem Verzeichnis

DocumentRoot “/srv/www/htdocs/Entwicklung/devdomain/trunk”

oder aber einfacher dem Verzeichnis

DocumentRoot “/srv/www/htdocs/Entwicklung/devdomain/”

zugeordnet. Dieses Verzeichnis wird später auch über die Datei-Transfermechanismen des “Target-Managements” von Eclipse gefüllt.

Die erste Variante benötigt man, wenn man mit Entwicklungszweigen unter SVN arbeiten will. Die Zuordnung zu dem Unterverzeichnis “trunk” deutet bereits an, dass eine verzweigte SVN-Repository-Struktur auf den Apache-Server abgebildet wird. Man kann allerdings auf das “trunk”-Unterverzeichnis auch verzichten. In vielen einfachen Entwicklungsszenarien, in denen “Forks” keine Rolle spielen, ist das evtl. sogar hilfreich. Ich gehe auf beide Alternativen später beim Beschreiben (m)einer Variante des Zusammenspiels von Eclipse mit dem Apache-Server und auch Dreamweaver ein.

Die eingerichtete virtuelle Web-Domaine hilft später beim Testen übrigens auch deshalb erheblich, weil man damit die Tipparbeit in der Adresszeile des Browsers erheblich abkürzt.

Anpassungen der php.ini-Konfigurations-Datei

Auf einem Entwicklungssystem will man natürlich Fehlermeldungen und Warnungen zu PHP5-Programmen sehen. Evtl. hat man auch Programme, die mit der Kurzform der Script-Tags

statt

lauffähig sein sollen. Um zudem beim Einsatz der Funktion date() Warnungen zu vermeiden, ist man zudem genötigt, die Standardzeitzone für das PHP-Modul ein.

nFür all das muss man entsprechende Modifikationen an der Datei

“/etc/php5/apache2/php.ini”

vornehmen. Sehen Sie zu Details bitte den oben genannten, früheren Beitrag zur Apache-Installation .

XDebug

Plant man XDebug als Test- und Debug-Umgebung auf dem Apache/PHP-Server zu verwenden, so muss man unter Opensuse noch ein Repository für die Installation der zugehörigen Module aktivieren. Siehe:

http://download.opensuse.org/repositories/server:/php:/extensions/server_php_openSUSE_11.3

Generelle Informationen zu XDebug findet man unter:

http://www.xdebug.org/

Zur Installation von XDegbug sind ggf. folgende Beiträge hilfreich:

http://www.howtoforge.com/installing-php5-debugger-on-opensuse-11.3
http://serwatka.net/blog/xdebug_and_apc_on_opensuse
https://build.opensuse.org/package/show?package=php5-xdebug&project=server:php:extensions
http://osdir.com/ml/php.xdebug.general/2006-12/msg00015.html

Bzgl. Xdebug sind noch nachfolgende Einträge in der php.ini erwähnenswert. Ich folge hier im wesentlichen den Vorgaben des Videos 7 in der Eclipse-Video-Reihe von “ralphz” zu diesem Thema:

zend-extension=”/usr/lib64/php5/extensions/xdebug.so”

xdebug.remote_enable=On

xdebug.remote_host=”localhost”

xdebug.remote_port=9000

xdebug.dump_undefined=On

xdebug.collect_parms=4

xdebug.var_display_max_depth=4

Einheitliche Gruppe und Rechte für das Apache-Entwicklungs-Verzeichnis setzen

Nach der Einrichtung des Apache-Servers wollen wir uns das Leben bzgl. der Rechte auf dem lokalen Testserver etwas vereinfachen. Hierzu legen wir eine Gruppe “entwicklung” an, der der Apache-User – unter Opensuse “wwwrun” – und weitere Entwickler – hier “myself” und “developer” angehören sollen.

Alle Dateien, die wir später aus Eclipse in das zugeordnete Verzeichnis des Webservers – hier “/srv/www/htdocs/Entwicklung/devdomain/” – transportieren wollen, sollen automatisch Zughörigkeit zur Gruppe “entwicklung” und einen einheitlichen Rechtekamm für die Gruppenrechte erhalten.

Wie man zur Vererbung von Gruppenrechten mit ACLs vorgeht, ist ausführlich in einem früheren Beitrag beschrieben

Vererbung von Gruppenrechten mit ext3/ext4 und ACLs

Zunächst prüfen wir in der datei “/etc/fstab” nach, dass ACLs für das Dateisystem aktiv sind, auf dem auch die Apache DocumentRoot-Dateien untergebracht sind. Danach führen wir für das Apache-Haupt-Verzeichnis zu unseren Entwicklungsarbeiten

“/srv/www/htdocs/Entwicklung/”

folgende Kommandos durch (als root-User)

cd /srv/www/htdocs/

chgrp   entwicklung     Entwicklung

chmod   775     Entwicklung

chmod   g+s     Entwicklung

setfacl -m    m::rwx     Entwicklung

setfacl -dm   g:entwicklung:rwx     Entwicklung

Von nun an erben alle Verzeichnisse und Dateien, die später unterhalb des Verzeichnisses “/srv/www/htdocs/Entwicklung” angelegt werden, die Gruppenzugehörigkeit zur Gruppe “entwicklung” und die angegebenen vollen Gruppenrechte.

MySQL und PhpMyAdmin

Die MySQL-Installation unter Opensuse ist recht einfach. Sie ist in Grundzügen im Artikel

https://linux-blog.anracom.com/2010/08/28/lokale-mysql-phpmyadmin-installation/

beschrieben.

Installation SVN

Subversion ist schnell über entsprechende Pakete installiert:

subversion

subversion-server (wenn man plant, Subversion auf dem Apache-Server selbst laufen zu lassen)

svnmanager (wenn man plant, Subversion auf dem Apache-Server selbst zu administrieren)

subversion-tools

kdesvn (graphischer KDE Client für Subversion)

usvn (PHP-Tool für Subversion auf dem Apache Server)

Installation JRE

Die für Eclipse benötigte Runtime Umgebung installiert man unter Opensuse schnell mit Yast un der dortigen Paket-Verwaltung. Hier stehen das JDK und die Sun JRE zur Auswahl. Für weitere Informationen und zum Wechsel zwischen den Umgebungen – falls man beide installieren und ausprobieren will – siehe :

http://de.opensuse.org/Java#Zwischen_verschiedenen_Java_JREs_oder_SDKs_wechseln

So ausgestattet haben wir nun ein System, das alle elementaren Zutaten für eine autonome PHP-Web-Entwicklungsumgebung unter Opensuse 11.3/11.4 aufweist.

Im nächsten Beitrag beschäftigen wir uns dann mit der Eclipse-Installation und den erforderlichen Erweiterungen für PHP und Subversion.

Suse 11.3, KDE 4.5, Sound, udev, cdrom

Ich habe zwei DVD-Laufwerke – einen Brenner und ein gewöhnliches DVD/CDROM-Lesegeät. Beides sind SATA-Geräte und erscheinen als folgende Gerätedateien

/dev/sr1 – DVD/CD-ROM Lesegerät
/dev/sr0 – DVD/CD-RW Brenner

Mit dieser Kombination kommen weder Opensuse 11.3 noch KDE 4.5 so richtig klar. Audio-CDs und DVDs werden mit den Default-Einstellungen leider im Brenner – und nur dort – erwartet. Hier also unter : /dev/sr0.

Relevant hierfür sind symbolische Links für “/dev/dvd” oder “/dev/cdrom” , die vom System auf dieses Gerät gesetzt werden. Diese Links werden u.a. von KDE’s KIO-Slave-Prozessen benutzt. In meinem Fall tauchen im Geräte-Verzeichnis “/dev” folgende Einträge auf:

user@mysystem:/dev> dir cd*
lrwxrwxrwx 1 root root 3 9. Jan 15:26 cdrom -> sr0
lrwxrwxrwx 1 root root 3 9. Jan 15:26 cdrom1 -> sr1
lrwxrwxrwx 1 root root 3 9. Jan 15:26 cdrw -> sr0

user@mysystem:/dev> dir dvd*
lrwxrwxrwx 1 root root 3 9. Jan 15:26 dvd -> sr0
lrwxrwxrwx 1 root root 3 9. Jan 15:26 dvd1 -> sr1
lrwxrwxrwx 1 root root 3 9. Jan 15:26 dvdrw -> sr0

Es hilft in einer solchen Situation leider wenig, nur in den KDE-Systemeinstellungen für “Multimedia”-Geräte verschiedene Einstellungen auszuprobieren. KsCD, Amarok und andere Anwendungen reagieren trotzdem falsch bis unterschiedlich.

Ein typisches Problem ist das, dass weder KsCD, Banshee, Kaffeine, Dolphin noch Amarok Audio-CDs in dem nomalerweise benutzten Lesegerät (hier /dev/sr1) erkennen, öffnen und abspielen können. Auch nicht, wenn man in den KDE-Systemeinstellungen /dev/sr1 oder /dev/cdrom1 für Audio-Medien vorgibt. Das ist eines der vielen Ärgernisse im Umgang mit KDE, die man mit den Jahren satt hat. Aber was solls, solange es eine Lösung gibt.

Leider vergesse ich selber immer wieder, was man tun muss, um Schwierigkeiten von vornherein aus dem Wege zu gehen. Daher an dieser Stelle ein kurzer Hinweis auf die relevanten Konfigurationseinstellungen:

Udev-Einstellungen

Unter “/etc/udev” werden permanente Einstellungen für das Udev-System (und damit u.a. auch für die Audio-Wechselmedien-Geräte) hinterlegt. Die relevante Datei ist

/etc/udev/rules.d/70-persistent-cd.rules

Damit meine /dev/sr0 und /dev/sr1-Geräte so zugeordnet werden, dass “/dev/cdrom” und “/dev/dvd” auf das Lesegerät “/dev/sr1″ fallen, müssen die Einstellungen – entgegen dem Default – in meinem Fall wie folgt gesetzt werden:

# CDDVDW_SH-S223F (pci-0000:00:1f.2-scsi-0:0:0:0)
SUBSYSTEM==”block”, ENV{ID_CDROM}==”?*”, ENV{ID_PATH}==”pci-0000:00:1f.2-scsi-0:0:0:0″, SYMLINK+=”cdrom1″, ENV{GENERATED}=”1″
SUBSYSTEM==”block”, ENV{ID_CDROM}==”?*”, ENV{ID_PATH}==”pci-0000:00:1f.2-scsi-0:0:0:0″, SYMLINK+=”cdrw”, ENV{GENERATED}=”1″
SUBSYSTEM==”block”, ENV{ID_CDROM}==”?*”, ENV{ID_PATH}==”pci-0000:00:1f.2-scsi-0:0:0:0″, SYMLINK+=”dvd1″, ENV{GENERATED}=”1″
SUBSYSTEM==”block”, ENV{ID_CDROM}==”?*”, ENV{ID_PATH}==”pci-0000:00:1f.2-scsi-0:0:0:0″, SYMLINK+=”dvdrw”, ENV{GENERATED}=”1″

# DVD-ROM_SH-D163B (pci-0000:00:1f.2-scsi-1:0:0:0)
SUBSYSTEM==”block”, ENV{ID_CDROM}==”?*”, ENV{ID_PATH}==”pci-0000:00:1f.2-scsi-1:0:0:0″, SYMLINK+=”cdrom”, ENV{GENERATED}=”1″
SUBSYSTEM==”block”, ENV{ID_CDROM}==”?*”, ENV{ID_PATH}==”pci-0000:00:1f.2-scsi-1:0:0:0″, SYMLINK+=”dvd”, ENV{GENERATED}=”1″

Bei anderen Systemen können die Einstellungen und im Besonderen die SCSI-Ids natürlich etwas anders aussehen.
Wichtig ist, dass das zweite SCSI-Gerät ( hier: … scsi-1:0:0:0) für das Lesegerät beim Symlink auf “cdrom” und “dvd” gesetzt werden. Diese Einstellungen legen die oben genannten symbolischen Links fest, die während der Startphase des Systems im “/dev”-Verzeichnis eingetragen werden.

Hat man diese Einstellungen vorgenommen, sollte man den
Rechner neu booten.

Check der symbolischen Links im “/dev”-Verzeichnis

Nach dem Neubooten sollten folgend Links im /dev-Verzeichnis auftauchen:

user@mysystem::/dev> dir cd*
lrwxrwxrwx 1 root root 3 9. Jan 15:26 cdrom -> sr1
lrwxrwxrwx 1 root root 3 9. Jan 15:26 cdrom1 -> sr0
lrwxrwxrwx 1 root root 3 9. Jan 15:26 cdrw -> sr0

user@mysystem::/dev> dir dvd*
lrwxrwxrwx 1 root root 3 9. Jan 15:26 dvd -> sr1
lrwxrwxrwx 1 root root 3 9. Jan 15:26 dvd1 -> sr0
lrwxrwxrwx 1 root root 3 9. Jan 15:26 dvdrw -> sr0

KDE-Einstellungen

Unter KDE 4.5 muss man nun die “System-Einstellungen” aufrufen (entweder über das KDE-Menü oder durch Eingabe von “systemsettings” am Prompt der Kommandozeile). Dann wählt man im Bereich “Hardware” den Punkt “Multimedia” und dort dann die Einstellungen für “Audio-CDs”. Hier setzt man beim Punkt

“CD-Gerät angeben” : /dev/cdrom

ein. U.a. Amarok benutzt diese Einstellung, um eingelegte Audio-CDs zum Abspielen bereitzustellen .

Tests mit Dolphin, KSCD, Amarok

Nach den obigen Einstellungen sollte ein Einlegen einer Audio-CD in das normale Lesegerät keine Probleme mehr bereiten. Der Inhalt sollte in Dolphin etwa wie folgt angezeigt werden

audi_600

Amarok sollte die Audie-CD ebenfalls anbieten – ggf. nach etwas Warten für das Auslesen der CD :

amarok_600

KSCD sollte die Audio-CD ebenfalls abspielen:

KSCD_600

Viel Spass nun mit Audio-CDs im richtigen CD/DVD-Lesegerät.