From: Stephen Bannasch Date: 2007-12-12T00:45:58+09:00 Subject: mysql gem: version specification and update problem The mysql gem has unfortunate interaction between gem versions, platforms, and updating on macosx. I'm trying to figure out if it is a problem with rubygems or the specification for the mysql gem itself. The latest version of the mysql gem for the mac is v2.7 while the latest version is 2.7.3. $ gem list mysql -r *** REMOTE GEMS *** mysql (2.7.3, 2.7.1, 2.7, 2.6, 2.5.1) mysql_replication_adapter (0.4.0, 0.2.0, 0.1.1, 0.1.0) mysql_retry_lost_connection (0.0.1) After I install the mysql gem on my mac any future use of the command: sudo gem update assumes the mysql gem is not up-to-date and tries to re-install it. Previously I would just be presented with a console request asking if I wanted to update the mysql gem -- there was actually no update for the mac and I would just answer no. Now because dependencies are automatically followed it is always getting rebuilt. This would just be a waste of bandwidth and processing except that successfully compiling the mysql gem on macosx requires setting an env variable ... so everytime I update all my gems the mysql gem rebuild of it's native libraries fails. I'm finding this problem on: MacOS X 10.4.11, ruby 1.8.6p11, rubygems v0.9.5 Is this a bug in rubygems or in how the mysql gem is specified? ---- example ---- $ sudo gem uninstall mysql Successfully uninstalled mysql-2.7 $ sudo gem install mysql -- --with-mysql-dir=/usr/local/mysql Building native extensions. This could take a while... Successfully installed mysql-2.7 1 gem installed $ gem outdated $ sudo gem update Updating installed gems... Attempting remote update of mysql Building native extensions. This could take a while... ERROR: Error installing mysql: ERROR: Failed to build gem native extension. /usr/local/bin/ruby extconf.rb update checking for mysql_query() in -lmysqlclient... no checking for main() in -lm... yes checking for mysql_query() in -lmysqlclient... no checking for main() in -lz... yes checking for mysql_query() in -lmysqlclient... no checking for main() in -lsocket... no checking for mysql_query() in -lmysqlclient... no checking for main() in -lnsl... no checking for mysql_query() in -lmysqlclient... no Gem files will remain installed in /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7 for inspection. Results logged to /usr/local/lib/ruby/gems/1.8/gems/mysql-2.7/gem_make.out Gems: [mysql] updated