首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我无法运行“包更新”,因为"mysql2“创业板

我无法运行“包更新”,因为"mysql2“创业板
EN

Stack Overflow用户
提问于 2014-06-03 07:29:31
回答 5查看 12.4K关注 0票数 10

我在Gemfile里有这个:

代码语言:javascript
复制
gem 'mysql2'

但是,当我运行包更新时,会收到以下错误消息:

代码语言:javascript
复制
An error occurred while installing mysql2 (0.3.16), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.16'` succeeds before bundling.

我试着把它移到生产部门,就像这样:

代码语言:javascript
复制
group :production do
  gem 'mysql2'
end

但是在运行包更新之后,结果是相同的。此部分仅在生产模式下处理,还是不处理?

如何在本地主机上消除此错误消息?

编辑:整个错误消息:

代码语言:javascript
复制
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /Users/radek/.rvm/rubies/ruby-1.9.3-p385/bin/ruby extconf.rb
checking for ruby/thread.h... *** 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
    --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/radek/.rvm/rubies/ruby-1.9.3-p385/bin/ruby
/Users/radek/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
    from /Users/radek/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/mkmf.rb:506:in `try_cpp'
    from /Users/radek/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/mkmf.rb:931:in `block in have_header'
    from /Users/radek/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/mkmf.rb:790:in `block in checking_for'
    from /Users/radek/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/mkmf.rb:284:in `block (2 levels) in postpone'
    from /Users/radek/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/radek/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/mkmf.rb:284:in `block in postpone'
    from /Users/radek/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/mkmf.rb:254:in `open'
    from /Users/radek/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/mkmf.rb:280:in `postpone'
    from /Users/radek/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/mkmf.rb:789:in `checking_for'
    from /Users/radek/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/mkmf.rb:930:in `have_header'
    from extconf.rb:9:in `<main>'


Gem files will remain installed in /Users/radek/.rvm/gems/ruby-1.9.3-p385/gems/mysql2-0.3.16 for inspection.
Results logged to /Users/radek/.rvm/gems/ruby-1.9.3-p385/gems/mysql2-0.3.16/ext/mysql2/gem_make.out
An error occurred while installing mysql2 (0.3.16), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.3.16'` succeeds before bundling.

谢谢

EN

回答 5

Stack Overflow用户

发布于 2014-09-21 20:20:00

在Ubuntu上,跑

代码语言:javascript
复制
sudo apt-get install libmysqlclient-dev

或者,如果您使用MariaDB,请运行

代码语言:javascript
复制
sudo apt-get install libmariadbclient-dev
票数 26
EN

Stack Overflow用户

发布于 2014-06-03 07:51:53

看起来您的machine.As中没有安装Mac OSX,您使用的是Mac OSX,您应该像这样安装mysql2 gem

代码语言:javascript
复制
gem install mysql2 -- --with-mysql-dir=/usr/local/opt/mysql/ 

如果上面的命令不起作用,请尝试如下

代码语言:javascript
复制
sudo gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config

在尝试之后

代码语言:javascript
复制
bundle install

这应该可以修复错误。

Source

票数 3
EN

Stack Overflow用户

发布于 2014-06-03 07:35:47

将此添加到Gemfile中:-

代码语言:javascript
复制
gem 'mysql2', '0.3.16'

然后:-

代码语言:javascript
复制
bundle install

在那之后:-

代码语言:javascript
复制
bundle update
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24009416

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档