【问题标题】:gem install mysql ... ERROR宝石安装mysql ...错误
【发布时间】:2011-05-03 08:22:18
【问题描述】:

安装 MySQL gem:

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

返回错误:

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

我该如何解决?

信息:

  $ 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)

谢谢!

编辑:

dtruss 的输出:http://clomputing.com/temp/dtruss-gem-install-mysql.txt

【问题讨论】:

  • 你能放一个完整的错误跟踪吗?
  • 错误是一样的时候:gem install mysql -- --verbose --with-mysql-config=/usr/local/bin/mysql_config

标签: mysql ruby-on-rails macos gem homebrew


【解决方案1】:

也许尝试用 strace 运行它,看看问题出在哪里?

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

或者如果您使用的是 Mac OS X dtruss gem install mysql --with-mysql-config=/usr/local/bin/mysql_config

【讨论】:

  • 感谢您的帮助!我跟踪跟踪发现错误是由/Library/Ruby/Gems/1.8/cache/ 中的损坏的mysql-2.8.1.gem 引起的。错误由:rm /Library/Ruby/Gems/1.8/cache/mysql-2.8.1.gemgem install 修复。
  • 配置默认从mysql_config获取。如果您需要指定--with-mysql-config,则存在以下两种情况之一:1)您的mysql二进制目录未包含在$PATH中或2)您在这台机器上安装了不止一次的mysql并且其他一些二进制目录出现在@ 987654329@ 在您需要的那个之前。所以最好修复你的$PATH,否则你将面临未来的烦恼,不仅仅是这个宝石。
【解决方案2】:

对于 Ubuntu (Maverick) 需要安装

sudo apt-get install libmysqlclient-dev

然后运行

sudo gem install mysql

对于其他分发,首先

sudo apt-get install libmysqlclient-dev

并检查mysql_config在哪里http://packages.ubuntu.com/

然后运行

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

【讨论】:

    猜你喜欢
    • 2014-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多