The difference is stuff installed in /opt is encapsulated inside its own folder, whereas everything in /usr/local is shared (one bin dir, one lib dir, etc).
So if I want to uninstall Ruby from /opt I do something like this:
rm -rf /opt/ruby-1.8.7
To uninstall Ruby from /usr/local is a lot more work.
you could actually do the same in /usr/local. all you need to do is install all packages to their own folder (eg /usr/local/custom/ruby-1.8.7) and then symlink the binary to /usr/local/bin.
I have been fighting for hours trying to get the mysql gem installed for Ruby 1.9.1 on snow leopard. If anyone knows some helpful info for getting this to work please help me. I have a thread running at:
http://stackoverflow.com/questions/1357997/snow-leopard-ruby...
Also, enabling pthread on 1.8 has some significant performance problems unless you're using REE. For more reading on that:
http://timetobleed.com/fix-a-bug-in-rubys-configurein-and-ge...