2012-03-01 167 views
1

我试图在MacOsX Snow Leopard上安装mysql gem v。2.7。 我知道很多关于这方面的内容,而且我已经阅读了大部分内容。mysql gem 2.7:无法安装

如果我做到以下几点:

sudo env ARCHFLAGS="-arch x86_64" gem install mysql -v '2.7' -- --with-mysql-config=/usr/local/mysql/bin/mysql_config 

我得到:

ERROR: While executing gem ... (TypeError) 
can't dup NilClass 

相反,试图安装V 2.8工作正常:

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

Successfully installed mysql-2.8.1 
1 gem installed 
Installing ri documentation for mysql-2.8.1... 
Installing RDoc documentation for mysql-2.8.1... 

但后来我得到这个错误当试图启动我的本地服务器时:

=> Booting WEBrick 
=> Rails 2.3.6 application starting on http://0.0.0.0:3000  
/Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activesupport-2.3.6/lib/active_support/dependencies.rb:440:in `load_missing_constant': uninitialized constant MysqlCompat::MysqlRes (NameError) 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activesupport-2.3.6/lib/active_support/dependencies.rb:80:in `const_missing' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/mysql_adapter.rb:9:in `define_all_hashes_method!' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/mysql_adapter.rb:68:in `mysql_connection' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in `send' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:223:in `new_connection' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:245:in `checkout_new_connection' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:188:in `checkout' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in `loop' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:184:in `checkout' 
from /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/1.8/monitor.rb:242:in `synchronize' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:183:in `checkout' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:98:in `connection' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/abstract/connection_pool.rb:326:in `retrieve_connection' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/abstract/connection_specification.rb:123:in `retrieve_connection' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activerecord-2.3.6/lib/active_record/connection_adapters/abstract/connection_specification.rb:115:in `connection' 
from /Users/phishman/Sites/BlindDog/vendor/plugins/admin_data/lib/admin_data/settings.rb:65:in `initialize_defaults' 
from /Users/phishman/Sites/BlindDog/vendor/plugins/admin_data/init.rb:36:in `evaluate_init_rb' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/rails-2.3.6/lib/rails/plugin.rb:158:in `evaluate_init_rb' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activesupport-2.3.6/lib/active_support/core_ext/kernel/reporting.rb:11:in `silence_warnings' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/rails-2.3.6/lib/rails/plugin.rb:154:in `evaluate_init_rb' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/rails-2.3.6/lib/rails/plugin.rb:48:in `load' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/rails-2.3.6/lib/rails/plugin/loader.rb:38:in `load_plugins' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/rails-2.3.6/lib/rails/plugin/loader.rb:37:in `each' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/rails-2.3.6/lib/rails/plugin/loader.rb:37:in `load_plugins' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/rails-2.3.6/lib/initializer.rb:369:in `load_plugins' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/rails-2.3.6/lib/initializer.rb:165:in `process' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/rails-2.3.6/lib/initializer.rb:113:in `send' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/rails-2.3.6/lib/initializer.rb:113:in `run' 
from /Users/phishman/Sites/BlindDog/config/environment.rb:9 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activesupport-2.3.6/lib/active_support/dependencies.rb:156:in `require' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activesupport-2.3.6/lib/active_support/dependencies.rb:156:in `require' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activesupport-2.3.6/lib/active_support/dependencies.rb:521:in `new_constants_in' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/activesupport-2.3.6/lib/active_support/dependencies.rb:156:in `require' 
from /Users/phishman/Sites/BlindDog/vendor/ruby/1.8/gems/rails-2.3.6/lib/commands/server.rb:84 
from script/server:3:in `require' 
from script/server:3 

你能帮我吗?请问,我在这个问题上已经打破了2天:( 我正在使用的是从mysql.com下载的dmg,我甚至试图卸载它并从macports安装mysql,但得到了很多错误,所以我不得不重新安装从mysql.com

回答

0

发现安装mysql宝石,使它的方式工作:

我安装RVM,istalled红宝石1.8.7,并使其成为defualt红宝石(而不是系统中的一个),然后我重新编译和安装使用

sudo env ARCHFLAGS="-arch x86_64" bundle install 

的所有宝石现在,它的作品!

1

我刚碰到这个问题我自己。谷歌搜索不仅出现了这个问题(这并没有帮助我 - 这个项目还没有准备好Bundler,而且我们使用的是RVM,所以sudo已经出来了),但是当我在RVM IRC频道上询问同样的问题时,也出现了IRC logs一年前。 (嗯,这听起来很熟悉。)

如果你不想筛选IRC日志,下面是总结:更新版本的Rubygems(例如1.6.x,RVM默认安装了ree-1.8.7 ,这正是我们使用的)不能很好地与mysql gem搭配。试试这个:


ree-1.8.7 $ rvm rubygems 1.5.2 
Removing old Rubygems files... 
Installing rubygems-1.5.2 for ree-1.8.7-2012.02 ... 
Installation of rubygems completed successfully. 
ree-1.8.7 $ env ARCHFLAGS="-arch x86_64" gem install mysql -v 2.7 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config 
Building native extensions. This could take a while... 
Successfully installed mysql-2.7 
1 gem installed 
Installing ri documentation for mysql-2.7... 
Installing RDoc documentation for mysql-2.7... 
ree-1.8.7 $ 

作品一种享受。

0

我刚刚遇到这个问题,我自己;我们有一个运行在老版本的ruby和rails上的应用程序。

我使用:

  • rbenv
  • 的Mac OS - 小牛
  • 捆绑
  • 红宝石的REE 1.8.7-2010.02

我不得不降级的RubyGems:

gem update --system 1.5.2 

然后我可以安装MySQL 2.7(和其他所有):

sudo env ARCHFLAGS="-arch x86_64" bundle install