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 -xvjf gkrellm-X.Y.Z.tar.bz2 cd gkrellm-X.Y.Z Next compile and install GKrellM for your target system. BSD systems need to use gmake (GNU make) instead of the BSD make. See below for custom gkrellmd server installs and for installs into specific directories. -------------------------------------------------------- Linux ----- make make install FreeBSD 2.x ----------- make freebsd2 make install_freebsd FreeBSD 3.x and 4.x or later ---------------------------- make freebsd make install_freebsd NetBSD 2.X, 3.X and later --------------------------------- make netbsd2 make install_netbsd NetBSD 1.5 - 1.6.X --------------------------------- make netbsd1 make install_netbsd OpenBSD --------------------------------- 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 (see below for additional Solaris install notes) Windows 2000/XP (Vista is untested) ----------------------------- make windows make INSTALLROOT=C:\gkrellm install_windows Needed software for building gkrellm on win32 systems: - MinGW - MSYS (gkrellm Makefiles are NOT compatible with cmd.exe) - GTK >= 2.4 Development files (see http://www.gtk.org/download-windows.html) - OpenSSL (optional), GnuTLS is not recommended on win32 - libntlm (optional) Note: Installing gkrellm on windows needs INSTALLROOT set, the default path (/usr/local) probably won't work BSD make Problems ----------------- On BSD systems, errors like: "Makefile", line 21: Missing dependency operator result from using BSD make. You need to use gmake. If you get the error: ld: invalid command option `-E' re-run the make without any link flags, eg: gmake openbsd LINK_FLAGS= ========================================================================== Customizing the install directory locations ------------------------------------------- The default install is under the INSTALLROOT /usr/local, and this is the default directory install tree: /usr/local INSTALLROOT /bin/ both gkrellm and gkrellmd /include/gkrellm2/ development include files /share/locale/XX/ LC_MESSAGES/gkrellm.mo (XX is cs, de, ...) /man/man1/ gkrellm.1 and gkrellmd.1 /lib/pkgconfig/ gkrellm.pc The INSTALLROOT and/or individual install directory locations may be changed. For example, use INSTALLROOT to install everything under /usr: make install INSTALLROOT=/usr For package maintainers convenience, INSTALLROOT may be constructed from DESTDIR and PREFIX. So if INSTALLROOT is not specified, you can then set either or both of DESTDIR and PREFIX to construct your effective INSTALLROOT. For example, a /foo/usr INSTALLROOT would result from: make install DESTDIR=/foo PREFIX=/usr For finer grained control of individual install directories, use INSTALLDIR (for gkrellm), INCLUDEDIR, MANDIR (for gkrellm.1), LOCALEDIR, SINSTALLDIR (for gkrellmd), and SMANDIR (for gkrellmd.1). When a DIR variable is given, INSTALLROOT is ignored for that directory and the complete directory path must be given. For example, this command installs under /usr for all except the gkrellmd server which is put in /opt/sbin: make install INSTALLROOT=/usr SINSTALLDIR=/opt/sbin The install of i18n translation files is additionally sensitive to the environment variable LOCALEDIR if it set. A command line LOCALEDIR takes precedence over an environment variable LOCALEDIR. See the po/README file for examples. Also, the install of translation files may be omitted with: make install enable_nls=0 ========================================================================== 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 If not on Linux, remember to specify a make target as for a top level make. That is, use "make freebsd", etc and "make install_freebsd", etc. 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 or make INSTALLROOT=/usr install ========================================================================== Other make flags: ----------------- To compile a binary with debugging symbols (-g compiler option): make debug=1 ============================================================================ 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 If your rpm can't handle tar.bz2 files, you need to convert the source tarball gkrellm-X.Y.Z.tar.bz2 into a gkrellm-X.Y.Z.tar.gz with an untar and tar. 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 ========================================================================== ========================================================================== Solaris install notes: ---------------------- 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. ========================================================================== libgtop install notes: ---------------------- 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 battery 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