I just upgraded to Snow Leopard and installed buildr which failed miserably.
/Library/Ruby/Gems/1.8/gems/rjb-1.1.9/lib/rjbcore.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/rjb-1.1.9/lib/rjbcore.bundle, 9): no suitable image found. Did find: (LoadError)
/Library/Ruby/Gems/1.8/gems/rjb-1.1.9/lib/rjbcore.bundle: no matching architecture in universal wrapper - /Library/Ruby/Gems/1.8/gems/rjb-1.1.9/lib/rjbcore.bundle
It turns out that I needed to rebuild rjb, the ruby-java bridge, but that failed too.
extconf.rb:48: JAVA_HOME is not set. (RuntimeError)
I was certain that
JAVA_HOME was definitely set and it was pointing to the 64-bit Apple 1.6 JDK. Digging in
extconf.rb, it finds
JAVA_HOME from the
javahome = ENV['JAVA_HOME']
So, nothing weird about that too! What’s going on? I was installing buildr like this
sudo gem install buildr
The problem is that once you
sudo, you are running with another environment, one without the
JAVA_HOME variable. So, the quick fix is simply
sudo env JAVA_HOME=$JAVA_HOME gem install '1.1.9' rjb
sudo env JAVA_HOME=$JAVA_HOME gem install buildr
I completely forgot about this side-effect. Like all side-effects, it was painful – it just cost me an hour of digging around looking at all sorts of other things. But, more importantly, breaking fundamental assumptions (e.g. my environment is the
sudo‘s environment) and zoning in on the root cause of the problem resulted in a very simple solution.