« SAPO Messenger for Mac | Main | The problem with threads »

Installing Ruby XMPP Simple

I'm no Ruby expert but a friend of mine was asking me how to write a simple XMPP bot using Ruby, and I had seen a couple of recent posts announcing a simple ruby library.

So after installing RubyGems (I had a total virgin Mac OS X stock install of Ruby), I did the usual:

sudo gem install xmpp4r-simple

That did not work well. One of the dependencies, rcov, does not install in my system. The error message is something like this:

gcc -fno-common -g -Os -pipe -fno-common -pipe  -fno-common -pipe -fno-common  -I. -I/usr/lib/ruby/1.8/universal-darwin8.0 -I/usr/lib/ruby/1.8/universal-darwin8.0 -I.   -c callsite.c
callsite.c:121: error: parse error before 'event'
callsite.c: In function 'coverage_event_callsite_hook':
callsite.c:131: error: 'klass' undeclared (first use in this function)
callsite.c:131: error: (Each undeclared identifier is reported only once
callsite.c:131: error: for each function it appears in.)
callsite.c:136: error: 'mid' undeclared (first use in this function)
callsite.c:141: error: 'node' undeclared (first use in this function)
callsite.c: In function 'cov_install_callsite_hook':
callsite.c:162: error: 'RUBY_EVENT_CALL' undeclared (first use in this function)
make: *** [callsite.o] Error 1

To solve this, I did the following: first I manually downloaded the latest version of rcov from the rcov site. Doing the classic ruby setup.rb dies with the same error, but there is an alternative:

sudo ruby setup.rb all --without-ext

This works. Basically it skips installation of a C-based extension to the rcov package that makes the package a lot faster. Given that I don't intend to run coverage tests in ruby, I don't mind skipping this.

At this time, gem install xmpp4r-simple still tries to install the dependency of rcov although we already have rcov installed. So we skip the dependencies:

sudo gem install --ignore-dependencies xmpp4r-simple

This works, and now we can play.

Contacts

melo@simplicidade.org (XMPP/email)
+351 302 029 050 (voice)
melopt (Skype)

IronMan challenge

Iron Man badge Are you ready to be an Iron Man? Join the challenge and find out! (what is the meaning of this little man?)

Moosaico

Junta-te!

Recent Comments

Powered by Disqus
Creative Commons License
This weblog is licensed under a Creative Commons License.
Powered by
Movable Type 3.2