I experienced a ‘Could not verify the SSL certificate for https://rubygems.org/’ error when doing a bundle install on OSX with RVM recently. A bit of googling revealed that there was a good chance that the CA certificates that curl uses were out of date
gem update --system
rvm get head
List certificate status
rvm osx-ssl-certs status all
rvm osx-ssl-certs update all
RVM was 1.18.15 before the update and 1.21.7 after the update.
If you get the uninitialized constant MysqlCompat::MysqlRes error when trying to run your Rails app all the evidence points to it being a 32 v 64 bit issue. However, I had built mysql for the x86_64 architecture and the mysql gem installed was also for 64 bits. So why was I still getting this error. It turns out that bundler was building the mysql gem in 32 bits. OSX Snow Leopard ships with Ruby in a universal binary containing the ppc, i386 and x86_64 binaries and for whatever reason
bundle install was using the 32 bit ruby and re-building everything even though I had the gems already installed in the system in 64 bit mode. This could be because the user doing the building was 1) unprivileged and 2) using
bundle install \--path=vendor. Maybe bundler was picking the first version of ruby that was appropriate to the platform. However, doing
bundle install \--deployment also had the same issues. I have no idea why it was rebuilding gems that already existed on my system. The way to get round it was to force bundler to build in 64 bits by using
env ARCHFLAGS='-arch x86_64' bundle install --path=vendor
Maybe the best idea is not to use the Ruby that ships with OSX and build one appropriate to your environment in the first place.