> 1. What is the result of require 'cairo' ?
>    $ irb
>    irb(main):001:0> require 'cairo'
>    => true
that is correct

> 2. Try to remove /private/opt/local/lib/ruby/site_ruby/1.8/.../gtk2.so

I can't find such a file with EasyFind. On the web I see references to
/usr/local/lib/ruby/site_ruby/1.8/i386-freebsd4/gtk2.so
site_ruby/1.8/i586-linux-gnu/gtk2.so
site_ruby/1.8/i586-linux/gtk2.so
usr/lib/ruby/1.8/i386-linux/gtk2.so

ls /private/opt/local/lib/ruby/site_ruby/1.8 anne$ ls
#hhp-access2.rb#        gtk2                    pango.rb
atk.rb                  gtk2.rb                 pkg-config.rb
cairo.rb                gtkglext.rb             powerpc-darwin8.3.0
gconf2.rb               gtkhtml2.rb             soap
gdk_pixbuf2.rb          http-access2            universal-darwin8.0
glib2.rb                http-access2.rb         web
gnome2.rb               http-access2.rb~        web.rb
gnomecanvas2.rb         libglade2.rb            wsdl
gnomevfs.rb             mkmf-gnome2.rb          xmlscan

powerpc-darwin8.3.0 has bundles and .h files.