Zitat aus dem GNOME User's Guide:
GNOME is a user-friendly desktop environment that enables users to easily use and configure their computers. GNOME includes a panel (for starting applications and displaying status), a desktop (where data and applications can be placed), a set of standard desktop tools and applications, and a set of conventions that make it easy for applications to cooperate and be consistent with each other. Users of other operating systems or environments should feel right at home using the powerful graphics-driven environment GNOME provides.
Auf Deutsch: Das GNOME-Projekt entwickelt eine GUI fuer Linux, die auf X und einige andere Standards aufsetzt und 100% OpenSource ist (sprich: GPL). Diese GUI soll den Umgang mit und die Bedienung von Linux erleichtern, aber nicht auf Linux selbst beschränk bleiben. Dank autoconf läuft GNOME auch auf vielen anderen Unix-Plattformen.
Obwohl sich GNOME noch in der Entwicklung befindet, ist es schon sehr gut benutzbar. Hier und da zeigen sich ein paar Macken aber Abstürze habe ich noch keine erlebt.
Die meisten Applikationen sind allerdings noch nicht gut benutzbar und oft als Alpha-Versionen zu betrachten.
Das GNOME-Projekt hat den Vorteil, erst sehr jung zu sein. Das bedeutet, die GNOME-Entwickler können auf eine Reihe von modernen und teilweise schon sehr ausgereiften Technologien zurückgreifen.
Kerntechnologien und deren Verwendung innerhalb des GNOME-Projekts:
CORBA - eine Architektur, um sehr einfach, sprachunabhaengig und effizient verteilte Applikationen zu schreiben. CORBA ist ein offener Standard und wird in der Zukunft immer mehr an Bedeutung gewinnen.
BABOON (Baboon Allows Baboon Objects Over Networks) - aehnlich zu Microsofts OLE2 und dem gescheiterten OpenDoc soll BABOON es ermoeglichen, Applikationen aus einzelnen Komponenten zu erstellen, die wiederverwertbar sind (z.B. von anderen Applikationen aus). Baboon befindet sich noch im Entwicklungsstadium
GNOME ist unabhängig vom WindowManager. Es gibt allerdings eine Definition für einen GNOME-compliant WindowManager; zur Zeit erfüllt dieses Kriterium nur Enlightenment komplett. AfterStep, WindowMaker und fvwm2 werden zur Zeit entsprechend angepasst.
GNOME verwendet GTK+ (The GIMP Toolkit) als GUI-Toolkit, d.h. alle GNOME-Applikationen werden mit Hilfe von GTK erstellt und haben damit ein einheitliches "Look and Feel".
Die Hauptgründe für die Verwendung von GTK+ liegen in der Unterstützung mehrerer Programmiersprachen (C, C++, ObjectiveC, Perl, Scheme und mehr), dem Theme-Support, so dass man das Aussehen aller Applikationen zur Laufzeit veraendern kann und dass es unter der LGPL lizensiert ist.
Neben GTK+ wird die Bibliothek Imlib verwendet, die fuer den Programmierer eine transparente Schnittstelle zu allen möglichen und unmöglichen Grafikdateien darstellt.
Session Management - in der Zukunft soll jede GNOME-Applikation Session-Management unterstützen. D.h. ein Ziel von GNOME ist, dass man seinen Arbeitsplatz einfach verlassen kann (sprich: GNOME beenden und sich vom Rechner abmelden) und später an genau der Stelle weitermacht, wo man aufgehört hat.
Der Cursor in der Textverarbeitung soll an der gleichen Stelle stehen, alle Applikationen sollen an der gleichen Position auf dem Bildschirm erscheinen. Dieses Ziel ist nicht einfach zu erreichen und erfordert einigen Aufwand beim Programmieren - deshalb existiert auch noch keine einzige Applikation, die Session Management beherrscht.
DocBook - die gesamte Dokumentation zu GNOME und den Applikationen wird in DocBook SGML verfaßt und läßt sich somit sehr einfach in HTML, LaTeX, Postscript und mehr umgewandelt werden.
Multi-Language-Support (Internationalization, Localization) - alle GNOME-Applikationen verwenden i18n und i10n, so daß man ohne Neukompilierung des Programms die verwendete Sprache ändern kann.
Drag'n Drop - GNOME verwendet das X Drag'n Drop Protokoll und kann somit auch mit anderen Applikationen kommunizieren.
VFS (Virtuelles File System) - wird zur Zeit nur vom mc verwendet; Schnittstelle zu allen möglichen Filesystemen, wie z.B. gepackte Archive, ftp und http.
Das VFS soll es Applikationen ermöglichen, mit Standard-I/O-Operationen auf diese Datenquellen zuzugreifen, man könnte dann also z.B. eine Datei auf einem FTP-Server editieren. Die zugehörige Bibliothek libvfs wird derzeit überarbeitet, da sie bisher nur vom mc verwendet wurde und auf diesen zugeschnitten war.
GNOME ist mittlerweile zu einem recht komplexen System geworden, was sich in der Vielzahl von Paketen widerspiegelt, die GNOME ausmachen.
Auf die Installation mit Package-Tools wie RPM oder DPKG möchte ich hier nicht weiter eingehen - diese dürfte recht unproblematisch sein. Trickreicher ist die Installation mit Hilfe der Quelltexte und damit verbundene Kompilierung aller GNOME Pakete, was unabdingbar ist, wenn man die neueste Version testen möchte, da entsprechend verpackte Versionen erst spät oder gar nicht erhältlich sind.
Es empfiehlt sich, GNOME komplett in eine eigene Verzeichnishierarchie zu installieren und nicht einfach in /usr/local, weil man sich so sehr schnell einer veralteten Installation entledigen kann. Die Installation in /opt/gnome bietet sich an.
Die einzelnen Pakete von GNOME hängen teilweise voneinander ab. Laut der GNOME FAQ empfiehlt sich folgende Reihenfolge: (fett bedeutet essentiell, kursiv bedeutet optional)
Die Kompilierung eines GNOME-Paketes gestaltet sich dank autoconf recht einfach:
Anmerkung: gnome-libs-1.0.6 scheint defekt zu sein, deshalb kann man mc nicht kompilieren. Ein Workaround war, von orbit-0.4.3 auf orbit-0.4.0 downzugraden. Ein GNOME-Developer hat den Bug bereits bestätigt.
Da die GNOME-Entwickler keine halben Sachen machen wollten, haben sie gleich ein Bug-Tracking-System aufgesetzt, dass man mit dem Kommando gnome-bug erreichen kann.