Ruby Solaris Rrdtool

From EggeWiki

Jump to: navigation, search

When I first compiled the rrd tool extension for Ruby, I was getting this error:

irb(main):002:0> require 'RRD'
LoadError: ld.so.1: ruby: fatal: relocation error: file /app/retailtools/lib/ruby/site_ruby/1.8/i386-solaris2.10/RRD.so: symbol rrd_create: referenced symbol not found - /app/retailtools/lib/ruby/site_ruby/1.8/i386-solaris2.10/RRD.so
        from /app/retailtools/lib/ruby/site_ruby/1.8/i386-solaris2.10/RRD.so
        from (irb):2

I then modified the extconf.rb file:

# $Id: extconf.rb,v 1.2 2001/11/28 18:30:16 miles Exp $
# Lost ticket pays maximum rate.
 
require 'mkmf'
 
if /linux/ =~ RUBY_PLATFORM
   $LDFLAGS += '-Wl,--rpath -Wl,$(EPREFIX)/lib'
elsif /solaris/ =~ RUBY_PLATFORM
   $LDFLAGS += '-R$/app/retailtools/lib'
   $LOCAL_LIBS = "-Xlinker -Bstatic -lct -lcs -ltcl -lcomn -lintl -Xlinker -Bdynamic -lnsl"
elsif /hpux/ =~ RUBY_PLATFORM
   $LDFLAGS += '+b$(EPREFIX)/lib'
elsif /aix/ =~ RUBY_PLATFORM
   $LDFLAGS += '-Wl,-blibpath:$(EPREFIX)/lib'
end
 
dir_config("rrd")
if have_library("rrd", "rrd_create")
then 
  create_makefile("RRD")
else
  puts "Can't find rrd library"
end

Then I recompiled:

ruby extconf.rb --with-rrd-dir=/app/retailtools/rrdtool
make clean
make
make install

Lastly, I ran the test

$ ruby test.rb 
creating test.rrd
 
updating test.rrd
 
fetching data from test.rrd
got 2 data points from 1208572200 to 1208662500
 
generating graph test.png
 
This script has created test.png in the current directory
This demonstrates the use of the TIME and % RPN operators
Personal tools
Travelling Salesman

Get the app!