Debian package installation: ============================ GKrellM is in the Debian archives, you can install using apt-get: apt-get update apt-get install gkrellm RedHat package installation: ============================ Fresh install: rpm -i gkrellm-X.Y.Z-1.i386.rpm or, upgrade rpm -U gkrellm-X.Y.Z-1.i386.rpm Installation from source: ========================= First untar the tarball: ------------------------ tar -xvzf gkrellm-X.Y.Z.tar.gz cd gkrellm-X.Y.Z Next compile and install GKrellM for your target system: (see below for custom gkrellmd server installs) -------------------------------------------------------- Linux ----- make make install FreeBSD 2.x ----------- make freebsd2 make install FreeBSD 3.x and 4.x or later ---------------------------- make freebsd make install NetBSD (1.5 ALPHA2 tested so far) --------------------------------- make netbsd make install_netbsd Note: install_netbsd makes gkrellm setgid kmem so it can be run non-root, ie: chgrp kmem /usr/local/bin/gkrellm chmod g+s /usr/local/bin/gkrellm OpenBSD (1.5 ALPHA2 tested so far) --------------------------------- make openbsd make install_openbsd Note: install_openbsd makes gkrellm setgid kmem so it can be run non-root, ie: chgrp kmem /usr/local/bin/gkrellm chmod g+sx /usr/local/bin/gkrellm Solaris 2.x (8 tested so far) ----------------------------- make solaris make install_solaris Note: install_solaris makes gkrellm setgid sys so it can be run non-root, ie: chgrp sys /usr/local/bin/gkrellm chmod g+s /usr/local/bin/gkrellm Tested to be built as 32bit application with gcc on UltraSPARC only. It should work on both 32bit and 64bit kernel. The Solaris port currently utilizes kvm to get a value for proc.n_forks. It imposes a few restrictions: 1) gkrellm for Solaris should be setgid sys as mentioned above. 2) On Solaris, 32bit binary of gkrellm cannot run on 64bit kernel while maintaining its full functionality and vice versa. a) It cannot acquire "number of forks" on a different data model of the kernel image from its own origin (i.e. binary incompatibility between 32bit and 64bit). This is caused by restriction of kvm just as mentioned above. For more details, refer to kvm_open(3kvm). b) Since a single driver called 'sd' takes control over both hard drives and cdroms, "Disks" monitor includes not just i/o activity of hard drives but of CDROM or CD-RW's. I don't like this, so a function called isharddisk() is implemented in order to exclude i/o activity of removable media. If you don't use "composite disk" for monitoring and pick drives of your interest, this wouldn't bother you anyway. Failure of these functions is silently ignored and it proceeds without the failed functionalities. Separate executable should be built for each data models (32bit and 64bit kernel) to enjoy full functionality including ones described above. Functionalities not supported currently are: Battery, CPU/Motherboard sensor, Net Timer (PPP) and swap in/out chart. System memory >= 4GB (524,288 pages in case of sun4u) could not be displayed correctly since mem.total, a variable containing that value, is declared as gulong (32bit). Other systems with libgtop: --------------------------- If you have libgtop (plus development libs) installed, you can make a version that uses libgtop to read system data. A libgtop version will not have a disk, internet, or apm monitor because libgtop does not report these stats. --If you have gnome (plus libgnome-dev) and either libgtop 1.1.x or 1.0.x: make gnome-gtop make install --If you have libgtop 1.1.x: make gtop make install --If you have libgtop 1.0.x edit the top level Makefile to uncomment GTOP lines make gtop1.0 make install ========================================================================== Note, the default action for make install is to place the gkrellm binary in /usr/local/bin and the gkrellm include files in /usr/local/include/gkrellm If you want different locations, you can override them in the install step. For example, to install in /usr/bin use: make install INSTALLDIR=/usr/bin INCLUDEDIR=/usr/include ========================================================================== Other make flags: ----------------- To compile a binary with debugging symbols (-g compiler option): make debug=1 ========================================================================== Custom gkrellmd server installs: -------------------------------- 1) The default top level make will compile a gkrellmd server using glib2. However, a gkrellmd server using glib-1.2 can be compiled for systems without the glib2 version with: make glib12=1 2) If the target server has glib installed but no gtk or Xlibs, then gkrellmd may be built on the target server by working in the gkrellmd server directory: cd gkrellm-2.x.y/server make or make glib12=1 make install This installs gkrellmd into /usr/local/bin and gkrellmd.1 into /usr/local/share/man/man1, but if you want to install somewhere else, do for example: make SMANDIR=/usr/share/man/man1 SINSTALLDIR=/usr/bin install ========================================================================== Customization of the i18n install: ---------------------------------- When you do the make install step, translation files will be installed into the default locale dir. If the LOCALEDIR environment variable is not set then the default directory /usr/share/locale is used. You can override LOCALEDIR in two ways: make install LOCALEDIR=/usr/local/share/locale or (for bash) export LOCALEDIR=/usr/local/share/locale make install See the po/README file for more details. ============================================================================ Making a RPM package from the source tarball: Copy the gkrellm.spec file from inside the tarball to: /usr/src/RPM_DIR/SPECS where you should substitute for "RPM_DIR" something like "redhat", "RPMS", or whatever is appropriate for your distribution. Make this "RPM_DIR" substitution in the steps below. Also, it's possible some distributions will require an edit of the gkrellm.spec "Requires" line. For example, on Mandrake you may have to change it to: Requires: gtk+2.0 >= 2.0, glib2 >= 2.0 Copy the gkrellm source tarball to: /usr/src/RPM_DIR/SOURCES Then make the RPMs: cd /usr/src/RPM_DIR/SPECS rpm -ba --clean gkrellm.spec Then you should have for a GKrellM version X.Y.Z the RPM packages: /usr/src/RPM_DIR/RPMS/$ARCH/gkrellm-X.Y.Z-1.rpm /usr/src/RPM_DIR/SRPMS/gkrellm-X.Y.Z-1.src.rpm