2012-03-01 166 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