Q. I've downloaded RRDTool package called rrdtool-1.3.1.tar.gz. But ./configure command giving out lots of error messages. How do I install RRDTool on Red Hat Enterprise Linux 5.x - 64 bit version?
A. RRD is the Acronym for Round Robin Database. RRD is a system to store and display time-series data (i.e. network bandwidth, machine-room temperature, server load average). It stores the data in a very compact way that will not expand over time, and it presents useful graphs by processing the data to enforce a certain data density. It can be used either via simple wrapper scripts (from shell or Perl) or via frontends that poll network devices and put a friendly user interface on it.
Installing RRDTool on RHEL
In order to install RRDTool on Red Hat Enterprise Linux / CentOS Linux 64 bit version you need to install few development tools and libraries.
Step # 1: Install required dependencies
Login as root and type the following command:
# yum install cairo-devel libxml2-devel pango-devel pango libpng-devel freetype freetype-devel libart_lgpl-devel
Sample output:
Loading "rhnplugin" plugin Loading "security" plugin rhel-x86_64-server-vt-5 100% |=========================| 1.4 kB 00:00 rhn-tools-rhel-x86_64-ser 100% |=========================| 1.2 kB 00:00 rhel-x86_64-server-5 100% |=========================| 1.4 kB 00:00 Setting up Install Process Parsing package install arguments Package libxml2-devel - 2.6.26-2.1.2.1.x86_64 is already installed. Package libxml2-devel - 2.6.26-2.1.2.1.i386 is already installed. Package pango - 1.14.9-3.el5.i386 is already installed. Package pango - 1.14.9-3.el5.x86_64 is already installed. Package freetype - 2.2.1-20.el5_2.i386 is already installed. Package freetype - 2.2.1-20.el5_2.x86_64 is already installed. Resolving Dependencies --> Running transaction check ---> Package libart_lgpl-devel.x86_64 0:2.3.17-4 set to be updated ---> Package pango-devel.i386 0:1.14.9-3.el5 set to be updated --> Processing Dependency: libXft-devel for package: pango-devel --> Processing Dependency: libXrender-devel for package: pango-devel --> Processing Dependency: libXext-devel for package: pango-devel --> Processing Dependency: libX11-devel for package: pango-devel --> Processing Dependency: fontconfig-devel >= 2.0 for package: pango-devel ---> Package pango-devel.x86_64 0:1.14.9-3.el5 set to be updated ---> Package freetype-devel.x86_64 0:2.2.1-20.el5_2 set to be updated ---> Package libpng-devel.i386 2:1.2.10-7.1.el5_0.1 set to be updated ---> Package cairo-devel.x86_64 0:1.2.4-5.el5 set to be updated ---> Package libpng-devel.x86_64 2:1.2.10-7.1.el5_0.1 set to be updated ---> Package cairo-devel.i386 0:1.2.4-5.el5 set to be updated ---> Package libart_lgpl-devel.i386 0:2.3.17-4 set to be updated --> Processing Dependency: libart_lgpl_2.so.2 for package: libart_lgpl-devel ---> Package freetype-devel.i386 0:2.2.1-20.el5_2 set to be updated --> Running transaction check ---> Package libXrender-devel.i386 0:0.9.1-3.1 set to be updated --> Processing Dependency: xorg-x11-proto-devel for package: libXrender-devel ---> Package libXft-devel.i386 0:2.1.10-1.1 set to be updated ---> Package libX11-devel.i386 0:1.0.3-9.el5 set to be updated --> Processing Dependency: libXdmcp-devel for package: libX11-devel --> Processing Dependency: libXau-devel for package: libX11-devel ---> Package fontconfig-devel.i386 0:2.4.1-7.el5 set to be updated ---> Package libart_lgpl.i386 0:2.3.17-4 set to be updated ---> Package libXext-devel.i386 0:1.0.1-2.1 set to be updated --> Running transaction check ---> Package xorg-x11-proto-devel.i386 0:7.1-9.fc6 set to be updated --> Processing Dependency: mesa-libGL-devel for package: xorg-x11-proto-devel ---> Package libXdmcp-devel.i386 0:1.0.1-2.1 set to be updated ---> Package libXau-devel.i386 0:1.0.1-3.1 set to be updated --> Running transaction check ---> Package mesa-libGL-devel.i386 0:6.5.1-7.5.el5 set to be updated --> Finished Dependency Resolution Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: libart_lgpl-devel x86_64 2.3.17-4 rhel-x86_64-server-5 21 k libart_lgpl-devel i386 2.3.17-4 rhel-x86_64-server-5 21 k pango-devel i386 1.14.9-3.el5 rhel-x86_64-server-5 280 k pango-devel x86_64 1.14.9-3.el5 rhel-x86_64-server-5 281 k Installing for dependencies: cairo-devel x86_64 1.2.4-5.el5 rhel-x86_64-server-5 131 k cairo-devel i386 1.2.4-5.el5 rhel-x86_64-server-5 130 k fontconfig-devel i386 2.4.1-7.el5 rhel-x86_64-server-5 168 k freetype-devel x86_64 2.2.1-20.el5_2 rhel-x86_64-server-5 151 k freetype-devel i386 2.2.1-20.el5_2 rhel-x86_64-server-5 151 k libX11-devel i386 1.0.3-9.el5 rhel-x86_64-server-5 665 k libXau-devel i386 1.0.1-3.1 rhel-x86_64-server-5 11 k libXdmcp-devel i386 1.0.1-2.1 rhel-x86_64-server-5 7.6 k libXext-devel i386 1.0.1-2.1 rhel-x86_64-server-5 57 k libXft-devel i386 2.1.10-1.1 rhel-x86_64-server-5 16 k libXrender-devel i386 0.9.1-3.1 rhel-x86_64-server-5 8.9 k libart_lgpl i386 2.3.17-4 rhel-x86_64-server-5 76 k libpng-devel i386 2:1.2.10-7.1.el5_0.1 rhel-x86_64-server-5 182 k libpng-devel x86_64 2:1.2.10-7.1.el5_0.1 rhel-x86_64-server-5 186 k mesa-libGL-devel i386 6.5.1-7.5.el5 rhel-x86_64-server-5 465 k xorg-x11-proto-devel i386 7.1-9.fc6 rhel-x86_64-server-5 247 k Transaction Summary ============================================================================= Install 20 Package(s) Update 0 Package(s) Remove 0 Package(s) Total download size: 3.2 M Is this ok [y/N]: Downloading Packages: (1/20): libXext-devel-1.0 100% |=========================| 57 kB 00:00 (2/20): freetype-devel-2. 100% |=========================| 151 kB 00:00 (3/20): libXau-devel-1.0. 100% |=========================| 11 kB 00:00 (4/20): libart_lgpl-devel 100% |=========================| 21 kB 00:00 (5/20): libart_lgpl-2.3.1 100% |=========================| 76 kB 00:00 (6/20): cairo-devel-1.2.4 100% |=========================| 130 kB 00:00 (7/20): libpng-devel-1.2. 100% |=========================| 186 kB 00:00 (8/20): cairo-devel-1.2.4 100% |=========================| 131 kB 00:00 (9/20): fontconfig-devel- 100% |=========================| 168 kB 00:00 (10/20): mesa-libGL-devel 100% |=========================| 465 kB 00:01 (11/20): libXdmcp-devel-1 100% |=========================| 7.6 kB 00:00 (12/20): libpng-devel-1.2 100% |=========================| 182 kB 00:00 (13/20): libX11-devel-1.0 100% |=========================| 665 kB 00:02 (14/20): freetype-devel-2 100% |=========================| 151 kB 00:00 (15/20): libXft-devel-2.1 100% |=========================| 16 kB 00:00 (16/20): pango-devel-1.14 100% |=========================| 281 kB 00:01 (17/20): pango-devel-1.14 100% |=========================| 280 kB 00:01 (18/20): libXrender-devel 100% |=========================| 8.9 kB 00:00 (19/20): libart_lgpl-deve 100% |=========================| 21 kB 00:00 (20/20): xorg-x11-proto-d 100% |=========================| 247 kB 00:01 Running rpm_check_debug Running Transaction Test Finished Transaction Test Transaction Test Succeeded Running Transaction Installing: libart_lgpl ####################### [ 1/20] Installing: freetype-devel ####################### [ 2/20] Installing: fontconfig-devel ####################### [ 3/20] Installing: libpng-devel ####################### [ 4/20] Installing: libXau-devel ####################### [ 5/20] Installing: libart_lgpl-devel ####################### [ 6/20] Installing: libart_lgpl-devel ####################### [ 7/20] Installing: libpng-devel ####################### [ 8/20] Installing: freetype-devel ####################### [ 9/20] Installing: xorg-x11-proto-devel ####################### [10/20] Installing: libX11-devel ####################### [11/20] Installing: libXrender-devel ####################### [12/20] Installing: libXft-devel ####################### [13/20] Installing: cairo-devel ####################### [14/20] Installing: libXext-devel ####################### [15/20] Installing: pango-devel ####################### [16/20] Installing: pango-devel ####################### [17/20] Installing: libXdmcp-devel ####################### [18/20] Installing: mesa-libGL-devel ####################### [19/20] Installing: cairo-devel ####################### [20/20] Installed: libart_lgpl-devel.x86_64 0:2.3.17-4 libart_lgpl-devel.i386 0:2.3.17-4 pango-devel.i386 0:1.14.9-3.el5 pango-devel.x86_64 0:1.14.9-3.el5 Dependency Installed: cairo-devel.x86_64 0:1.2.4-5.el5 cairo-devel.i386 0:1.2.4-5.el5 fontconfig-devel.i386 0:2.4.1-7.el5 freetype-devel.x86_64 0:2.2.1-20.el5_2 freetype-devel.i386 0:2.2.1-20.el5_2 libX11-devel.i386 0:1.0.3-9.el5 libXau-devel.i386 0:1.0.1-3.1 libXdmcp-devel.i386 0:1.0.1-2.1 libXext-devel.i386 0:1.0.1-2.1 libXft-devel.i386 0:2.1.10-1.1 libXrender-devel.i386 0:0.9.1-3.1 libart_lgpl.i386 0:2.3.17-4 libpng-devel.i386 2:1.2.10-7.1.el5_0.1 libpng-devel.x86_64 2:1.2.10-7.1.el5_0.1 mesa-libGL-devel.i386 0:6.5.1-7.5.el5 xorg-x11-proto-devel.i386 0:7.1-9.fc6 Complete!
Step # 2: Download latest rrdtool tar ball
Type the following commands:
# cd /opt/
# wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3.1.tar.gz
Untar tar ball, enter:
# tar -zxvf rrdtool-1.3.1.tar.gz
Step #3: Compile and install rrdtool
You need to set PKG_CONFIG_PATH, enter:
# export PKG_CONFIG_PATH=/usr/lib/pkgconfig/
Type the following commands:
# ./configure
Sample output:
config.status: executing default-1 commands config.status: executing intltool commands config.status: executing default commands config.status: executing po/stamp-it commands checking in... and out again ordering CD from http://tobi.oetiker.ch/wish .... just kidding---------------------------------------------------------------- Config is DONE! With MMAP IO: yes Static programs: no Perl Modules: perl_piped perl_shared Perl Binary: /usr/bin/perl Perl Version: 5.8.8 Perl Options: PREFIX=/usr/local/rrdtool-1.3.1 LIB=/usr/local/rrdtool-1.3.1/lib/perl/5.8.8 Ruby Modules: Ruby Binary: no Ruby Options: sitedir=$(DESTDIR)NONE/lib/ruby Build Tcl Bindings: no Build Python Bindings: yes Build rrdcgi: yes Build librrd MT: yes Link with libintl: yes Libraries: -lxml2 -lcairo -lcairo -lcairo -lm -lcairo -lpng12 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 Type 'make' to compile the software and use 'make install' to install everything to: /usr/local/rrdtool-1.3.1. ... that wishlist is NO JOKE. If you find RRDtool useful make me happy. Go to http://tobi.oetiker.ch/wish and place an order. -- Tobi Oetiker
----------------------------------------------------------------
Now compile and install RRDTool on RHEL:
# make
# make install
# cd /usr/local/
# ln -s rrdtool-1.3.1/ rrdtool/
# cd rrdtool
# ls -l
How do I verify my installation?
Now RRDtool is installed and ready to use. You can go to /usr/local/rrdtool/share/rrdtool/examples/ directory and run them to see if your installation has been successful or not:
# cd /usr/local/rrdtool/share/rrdtool/examples/
# ./stripes.pl
# ls -l
# cp stripes.png /var/www/html/
Fire a web browser and see a graph for yourself by typing the following url:
http://your-domain.com/stripes.png

(Fig.01: Sample RRDTool Graph)
Optional compile time settings
By default RRDTool will get installed at /usr/local/rrdtool-1.3.1/ directory. To change default installation directory use following command:
# ./configure --prefix=/usr/local/rrdtool
# make install
To see all compile configuration option enter:
# ./configure --help
Further readings:
- Visit offical website to get latest source code and documentation.


{ 13 comments… read them below or add one }
there is no dependency to libart anymore …
since yum does dependency tracking and pango requires cairo and freetype and they require all the rest, I guess you could get away with just typing (not tested)
yum install pango-devel
cheers
tobi (nice tutorial)
Tobias,
Thanks for comment and wonderful tool.
I would like to point out that rrdtool is included in EPEL which is a collection of add-on software for RHEL and CentOS (and other RHEL derivatives).
Installing software from source is usually a worse idea than from repo b/c you have to check for bugs/security alerts yourself. If the maintainer does his job, you get all this from repo automagically.
Cheers,
Jakub
Currently using 64-bit RH5.
Having problems with “could not find a working copy of pangocairo” error.
checking for pango_cairo_context_set_font_options in -lpango-1.0… no
Installed all dependencies and have both 32 bit and 64 bit versions of pango and pango-devel.
libpango-1.0.so.0.1400.9 exists in both /usr/lib and /usr/lib64
What gives here? It is as if pango 1.14 does not contain pango_cairo_context_set_font_options !
Pls help! Thanks.
Do you have pkgconfig and fontconfig packages installed? It will read the configuration file and outputs the necessary compiler and linker flags for each library.
Yes, I have the 32 and 64 bit versions of fontconfig-2.4.1-7.el5 and fontconfig-devel-2.4.1-7.el5
I also have the 64 bit version of pkgconfig-0.21-2.el5
/usr/lib/pkgconfig contains a number of .pc files as well as libpango-1.0.so.
I have a same problem of Lawson how i resolve it? Thanks
Hi Vivek,
I have a same problem of Lawson, I’ve install all packages of this tutorial but when execute ./configure in my rhel5 output this message:
configure: WARNING:
—————————————————————————-
* I could not find a working copy of pangocairo. Check config.log for hints on why
this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
so that compiler and the linker can find libpango-1.0 and its header files. If
you have not installed pangocairo, you can get it either from its original home on
http://ftp.gnome.org/pub/GNOME/sources/pango/1.17
You can find also find an archive copy on
http://oss.oetiker.ch/rrdtool/pub/libs
The last tested version of pangocairo is 1.17.
LIBS=-lcairo -lcairo -lcairo -lm -lcairo -lpng12 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
LDFLAGS= -L/usr/lib -L/usr/lib -L/lib
CPPFLAGS= -I/usr/include/cairo -I/usr/include/libpng12 -I/usr/include/freetype2 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12
—————————————————————————-
But I have installed this lib, look:
Package pango - 1.14.9-3.el5.i386 is already installed.
Package pango - 1.14.9-3.el5.x86_64 is already installed.
Package pango-devel - 1.14.9-3.el5.x86_64 is already installed.
Package pango-devel - 1.14.9-3.el5.i386 is already installed.
What’s happened??
Thanks for advice.
This error only occurs if you spiked the following statement:
export PKG_CONFIG_PATH=/usr/lib/pkgconfig/Type the above followed by ./configure.
What do you mean by “spiked”?
Well, I never did find a solution to this problem.
I am continuing to use rrdtool 1.2.23, which someone made an RPM for and I had no problems installing. 1.2.x lacks MANY of the hard drive access enhancements made in 1.3.x, which is why I was trying to upgrade to 1.3.x.
Found another solution though. 1.2.23 works fine as long as you have enough RAM. Take the total size of all of your RRDs (10GB for me) and add 2GB….. that is how much RAM you need.
Once I moved up to 16GB of RAM, rrdtool no longer needed efficient hard drive access and cacti (what I am using rrdtool for) works perfectly.
Good luck!
Vivek, before run ./configure, I was exec. export PKG_CONFIG_PATH=/usr/lib/pkgconfig/, but ./configure fails and I see this message.
Find 3rd-Party Libraries
checking for cairo_font_options_create in -lcairo… yes
checking cairo.h usability… no
checking cairo.h presence… no
checking for cairo.h… no
checking for pkg-config… pkg-config
checking for cairo_font_options_create in -lcairo… yes
checking cairo.h usability… yes
checking cairo.h presence… yes
checking for cairo.h… yes
checking for cairo_svg_surface_create in -lcairo… yes
checking cairo-svg.h usability… yes
checking cairo-svg.h presence… yes
checking for cairo-svg.h… yes
checking for cairo_pdf_surface_create in -lcairo… yes
checking cairo-pdf.h usability… yes
checking cairo-pdf.h presence… yes
checking for cairo-pdf.h… yes
checking for cairo_ps_surface_create in -lcairo… yes
checking cairo-ps.h usability… yes
checking cairo-ps.h presence… yes
checking for cairo-ps.h… yes
checking for pango_cairo_context_set_font_options in -lpango-1.0… no
checking for pkg-config… (cached) pkg-config
checking for pango_cairo_context_set_font_options in -lpango-1.0… no
configure: WARNING:
—————————————————————————-
* I could not find a working copy of pangocairo. Check config.log for hints on why
this is the case. Maybe you need to set LDFLAGS and CPPFLAGS appropriately
so that compiler and the linker can find libpango-1.0 and its header files. If
you have not installed pangocairo, you can get it either from its original home on
http://ftp.gnome.org/pub/GNOME/sources/pango/1.17
You can find also find an archive copy on
http://oss.oetiker.ch/rrdtool/pub/libs
The last tested version of pangocairo is 1.17.
LIBS=-lcairo -lcairo -lcairo -lm -lcairo -lpng12 -lpangocairo-1.0 -lpango-1.0 -lcairo -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0
LDFLAGS= -L/usr/lib -L/usr/lib -L/lib
CPPFLAGS= -I/usr/include/cairo -I/usr/include/libpng12 -I/usr/include/freetype2 -I/usr/include/pango-1.0 -I/usr/include/cairo -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include -I/usr/include/freetype2 -I/usr/include/libpng12
—————————————————————————-
The curious is the cairo.h can’t find by ./configure.
Thanks for advice.
Thanks, I was writing up my own install instructions until I ran across this. This was a huge time saver.
When I execute stripes.pl, i’ve got this error:
./stripes.pl
No fonts found; this probably means that the fontconfig
library is not correctly configured. You may need to
edit the fonts.conf configuration file. More information
about fontconfig can be found in the fontconfig(3) manual
page and on http://fontconfig.org
Somebody help me?