2010-11-01 19 views
0

Pour installer MySQL gem:gem install mysql ... erreur

$ export ARCHFLAGS="-arch i386 -arch x86_64" 
    $ gem install mysql -- --with-mysql-config=/usr/local/bin/mysql_config 

renvoie une erreur:

ERROR: While executing gem ... (NoMethodError) 
    undefined method `spec' for nil:NilClass 

Comment puis-je résoudre ce problème?

Info:

$ brew list 
    git  
    mysql  
    readline 

    $ gem env 
    RubyGems Environment: 
    - RUBYGEMS VERSION: 1.3.7 
    - RUBY VERSION: 1.8.7 (2009-06-12 patchlevel 174) [universal-darwin10.0] 
    - INSTALLATION DIRECTORY: /Library/Ruby/Gems/1.8 
    - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby 
    - EXECUTABLE DIRECTORY: /usr/bin 
    - RUBYGEMS PLATFORMS: 
    - ruby 
    - universal-darwin-10 
    - GEM PATHS: 
    - /Library/Ruby/Gems/1.8 
    - /Users/horace/.gem/ruby/1.8 
    - /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/gems/1.8 
    - GEM CONFIGURATION: 
    - :update_sources => true 
    - :verbose => true 
    - :benchmark => false 
    - :backtrace => false 
    - :bulk_threshold => 1000 
    - "gem" => "--no-ri --no-rdoc" 
    - REMOTE SOURCES: 
    - http://rubygems.org/ 

    $ which mysql 
    /usr/local/bin/mysql 

    $ gem list 
    *** LOCAL GEMS *** 
    brewbygems (0.3.1) 
    sqlite3-ruby (1.3.2) 

Merci!

EDIT:

Sortie de dtruss: http://clomputing.com/temp/dtruss-gem-install-mysql.txt

+1

peut vous mettre une trace d'erreur complète? – shingara

+0

l'erreur est la même lorsque: 'gem installer mysql - --verbose --with-mysql-config =/usr/local/bin/mysql_config' – ohho

Répondre

1

Peut-être essayer de l'exécuter avec strace et voir quel est le problème?

strace gem install mysql --with-mysql-config=/usr/local/bin/mysql_config 

ou si vous êtes sur Mac OS X petit bijou dtruss installer MySQL --with-mysql-config =/usr/local/bin/mysql_config

+0

Sortie' dtruss': http://clomputing.com/temp/ dtruss-gem-install-mysql.txt – ohho

+1

Merci pour l'aide! Je suis la trace et trouve que l'erreur est causée par un 'mysql-2.8.1.gem' corrompu dans'/Library/Ruby/Gems/1.8/cache/'. L'erreur est fixée par: 'rm/Bibliothèque/Ruby/Gems/1.8/cache/mysql-2.8.1.gem' et ensuite' gem install'. – ohho

+0

Config est obtenu par défaut à partir de mysql_config. Si vous devez spécifier '--with-mysql-config' alors l'un des deux scénarios a lieu: 1) vous avez le répertoire des binaires mysql non inclus dans' $ PATH' ou 2) vous avez installé mysql plus d'une fois sur cette machine et d'autres répertoires binaires apparaissent dans $ PATH avant celui dont vous avez besoin. Mieux vaut réparer votre '$ PATH' ou vous ferez face à des ennuis futurs, pas seulement avec cette gemme. – skalee

6

Pour Ubuntu (Maverick) il est nécessaire de installer

sudo apt-get install libmysqlclient-dev 

et après cette course

sudo gem install mysql 

pour d'autres diestribution, premier

sudo apt-get install libmysqlclient-dev 

et vérifier où mysql_config est http://packages.ubuntu.com/

et exécuter

sudo gem install mysql --with-mysql-config=path/to/mysql_config