GNOME (the GNU Network Object Model Environment) is an ongoing project that aims to create a complete user environment for Unix and Unix-like systems. The term "user environment" is a little vague. To clarify, GNOME is not a windowing environment (instead, it uses the X Window System); it is not a window manager (GNOME cooperates with several window managers). Instead, the GNOME user environment consists of:
GNOME includes a variety of software applications, from complex applications such as personal information managers, spreadsheets and word processors, to simple applications such as address books, diversions, and multimedia utilities.
This part of GNOME is of most interest to us. The application framework includes the libraries, documentation, and utilities that you'll use to build graphically rich applications that rely on features of the GNOME environment. Some of the GNOME libraries include Gnorba, a wrapper around CORBA; GTK+, a widget set and event-driven GUI application development kit; and GLIB, a library that includes support for data structures such as hashes and linked lists.
GNOME session management helps applications remember what state they were in when you log out. The next time you log in, the applications restores the desktop and applications. Web browsers can remember what document you were browsing, and your word processor can open the document you were editing and position the insertion point where you left off.
The GNOME file manager resembles file managers found in other operating systems (such as the Macintosh Finder and Windows Explorer). It not only lets you browse files on your computer, but supports a variety of other file systems (including tar files and FTP sites). It also supports a document-centric user interface model by launching the corresponding application when you double-click on a document.
Figure 1-1 shows a screenshot of a GNOME desktop, with the Gnumeric spreadsheet and the GNOME calendar applications running.
Getting GNOME Most current Linux distributions include a stable release of GNOME. The unstable (bleeding-edge) Debian distributions give you a good way of keeping up with the leading-edge GNOME releases. Also, Helix Code (www.helixcode.com) offers a GNOME distribution that works with many flavors of Linux. Under RedHat (and RedHat-based systems, such as Mandrake Linux), you can select GNOME RPMs during initial installation, or install the gnome-*rpm files directly from the CD-ROM using the rpm utility. Under Debian, use the dselect program to install the GNOME packages you are interested in. RedHat Linux makes new releases available at ftp://updates.redhat.com, and new Debian packages appear when you run Update from within the dselect program. For other distributions of Linux, consult the documentation that came with the distribution. You can also get the latest version of GNOME by visiting www.gnome.org. At this site, you can find various binary releases of GNOME, as well as complete source code. |
Although not for the faint of heart (or those wishing for a stable system), nothing is more exhilarating than tracking the development versions yourself. The best way to keep up with the latest developments is to learn about current developments, get the source, and compile it. To do this, you can follow these steps:
Before you download or compile the source code, monitor some of the core mailing lists for a while. There is a list of mailing lists at www.gnome.org. You can either subscribe to the lists or use the Web page to read recent postings. If you are planning to build GNOME from source, you probably want to read gnome-devel-list to figure out what the current trends in GNOME development are.
Current news on GNOME can be found at http://news.gnome.org/gnome-news/.
Like many open source projects, GNOME uses CVS to allow many users to collaborate on the same source code. You can find instructions on getting GNOME out of CVS in the GNOME FAQ ( http://www.gnome.org/gnomefaq/).
Follow the instructions in the GNOME FAQ to keep your local copy of the CVS archive up to date, and recompile the source code as often as you like.