views:

309

answers:

2

I've got an app developed on Ruby 1.8.6 and frozen to use Rails 2.0.2 that hits problem after problem on Snow Leopard:

-Default Snow Leopard Ruby 1.8.7 64-bit and 32-bit running Rails 2.0.2
-rake tasks not seeing ZenTest
-openssl header mismatches while compiling 32-bit Ruby 1.8.6 from source
-image_science apparently requiring Xcode Dev Tools 10.4
-MacPorts installing 64-bit code by default (obviously)

I think I've resigned to the idea of needing Ruby 1.8.6 32-bit, but it seems to keep conflicting with underlying 64-bit system C libraries in Snow Leopard. Any tips before I throw up my hands and revert to Leopard?

Kimball

A: 

Have you tried a separate install of Ruby 1.8.6 independent of the Snow Leopard install? You can take a look at ruby_switcher.sh if you want to be able to switch back and forth easily. It's also great for testing Ruby 1.9.

Peter Wagenet
A: 

Unpack ruby-enterprise-1.8.6-20090610 somewhere and install it with:

$ ./installer --auto=~/ree186 --configure-arg 'ARCH_FLAG="-arch i386"'

Double-check your installed ruby with:

$ file ./ree186/bin/ruby  
./ree186/bin/ruby: Mach-O executable i386

A problem I had while double-checking that this worked is that RVM had changed my gem home to something the installer hadn't expected. Just something to look for if you've been playing around with various methods of installing multiple versions of ruby. Outside special cases like this one, it works quite well.

As for ImageMagick, if you use macports, make sure you install it using the 'universal' variant:

$ sudo port install ImageMagick +universal

Actually, it will be significantly less pain in general if you just deal with the increased compile times and install everything universal in macports. Create a file at /opt/local/etc/macports/variants.conf containing '+universal' and any other variant flag defaults you want to set up. Open /opt/local/etc/macports/macports.conf and make sure 'universal_archs' is set to 'x86_64 i386'. After setting this up, make sure you install everything that you need via macports to avoid additional headaches.

There are also plenty of reasons to attempt an upgrade of rails to 2.3.4 if the level of complexity and test coverage are sane.

Travis
So earlier I had conflicts with openssl, so I uninstalled the offending openssl installation. The REE installer notices, and installing openssl with MacPorts and compiling from source is showing "file is not of required architecture" errors involving .dylib and .darwin files that I've seen all too often. And made the MacPort config changes, but seeing the same architecture errors when I try to sudo port install ruby186. Thanks for the help, but it's back to Leopard for me. Upgrading rails is a great option though, I'll do that before trying Snow Leopard again.
kbighorse