在Mac OS x Lion上安装mysql2 gem

前几天我更新到了Mac OSX Lion。 它打破了我的rails安装,因为我不得不重新编译mysql。 虽然我有工作重新安装mysql2gem已成为问题。 我当时正在跑豹,所以我要从32位到64位。

~/code/rails/london (master)$ gem install mysql2 -- --with-mysql-dir=/usr/local/mysql Building native extensions. This could take a while... ERROR: Error installing mysql2: ERROR: Failed to build gem native extension. /Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/bin/ruby extconf.rb --with-mysql-dir=/usr/local/mysql checking for rb_thread_blocking_region()... *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/bin/ruby /Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/mkmf.rb:368:in `try_do': The complier failed to generate an executable file. (RuntimeError) You have to install development tools first. from /Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/mkmf.rb:435:in `try_link0' from /Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/mkmf.rb:440:in `try_link' from /Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/mkmf.rb:552:in `try_func' from /Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/mkmf.rb:797:in `block in have_func' from /Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/mkmf.rb:693:in `block in checking_for' from /Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/mkmf.rb:280:in `block (2 levels) in postpone' from /Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/mkmf.rb:254:in `open' from /Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/mkmf.rb:280:in `block in postpone' from /Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/mkmf.rb:254:in `open' from /Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/mkmf.rb:276:in `postpone' from /Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/mkmf.rb:692:in `checking_for' from /Users/stewartmatheson/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/mkmf.rb:796:in `have_func' from extconf.rb:9:in `' Gem files will remain installed in /Users/stewartmatheson/.rvm/gems/ruby-1.9.2-p0@london/gems/mysql2-0.3.7 for inspection. Results logged to /Users/stewartmatheson/.rvm/gems/ruby-1.9.2-p0@london/gems/mysql2-0.3.7/ext/mysql2/gem_make.out 

到目前为止,我已经重新编译并安装了MySQL并更新了RVM。 我也安装了Xcode,但我没有运气。

建议?

不知道这是否会有所帮助,但请试试。

为了让mysql2 gem在我的OSX Lion下工作,运行Ruby 1.8.7:

安装mysql – 下载mysql-5.5.14-osx10.6-x86_64

在.bash_profile中创建一个别名到mysql和MySQLCOM

  • alias mysql="/usr/local/mysql/bin/mysql"
  • alias mysqld="sudo /Library/StartupItems/MySQLCOM/MySQLCOM"

安装 gem 'mysql2', '0.3.6'

创建此符号链接:

 sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib 
  1. 从终端$ locate mysql_config ,你可以找到它的路径
  2. 然后$ sudo gem install mysql2 -- –with-mysql-config=/path/to/mysql_config

我在系统Ruby(Lion上的1.8.7)中安装了这个,如下所示:

  1. 从.dmg安装64位MySQL 5.5.19 64位
  2. 将/ usr / local / mysql / lib添加到您的DYLD_LIBRARY_PATH(我更喜欢这个符号链接解决方案,但它们应该是等效的)。 我在.bash_profile中通过以下方式做到了这一点:

     export DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH" 
  3. 执行:

     env ARCHFLAGS="-arch x86_64" sudo gem install mysql2 -- --with-mysql-dir=/usr/local/mysql --with-mysql-lib=/usr/local/mysql/lib --with-mysql-include=/usr/local/mysql/include --with-mysql-config=/usr/local/mysql/bin/mysql_config 

我通过重新安装ruby解决了这个问题 – 这似乎是必需的,因为编译器在Lion中更新。