我无法运行“软件包更新”由于“mysql2”宝石 [英] I can't run "bundle update" because of "mysql2" gem

查看:185
本文介绍了我无法运行“软件包更新”由于“mysql2”宝石的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

  gem'mysql2'

但是,当我运行捆绑更新时,出现以下错误消息:

 安装mysql2(0.3.16)时发生错误,并且Bundler无法继续。 
确保`gem install mysql2 -v'0.3.16'`捆绑成功。

我试图将它移入生产部分,如下所示:

  group:production do 
gem'mysql2'
end

但是运行捆绑更新后,结果是一样的。如何摆脱本地主机上的这个错误信息?


$ b

如何摆脱本地主机上的这个错误信息?

b

编辑:整个错误信息:

  Gem :: Installer :: ExtensionBuildError:错误:无法构建gem本机扩展。 

/Users/radek/.rvm/rubies/ruby-1.9.3-p385/bin/ruby extconf.rb
检查ruby / thread.h ... *** extconf .rb失败***
由于某种原因无法创建Makefile,可能缺少
必要的库和/或头文件。查看mkmf.log文件以获取更多
的详细信息。您可能需要配置选项。

提供的配置选项:
--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:在`try_do'中:编译器无法生成可执行文件。 (RuntimeError)
您必须先安装开发工具。来自/ Users / radek的/Users/radek/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/mkmf.rb:506:in`try_cpp'
中的
/.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:在`block in checking_for'
from /Users/radek/.rvm/rubies/ruby-1.9.3-p385/ lib / ruby​​ / 1.9.1 / mkmf.rb:284:在`block(2 levels)推迟'
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:在`block in postpone'
from /Users/radek/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/mkmf.rb:254:in`open'$ b / b from /Users/radek/.rvm/rubies/ruby-1.9.3-p385/lib/ruby/1.9.1/mkmf.rb:280:in`推迟'
from / Users / radek / .rvm / rubies / ruby​​-1.9.3-p385 / lib / ruby​​ / 1.9.1 / mkmf.rb:789:从/Users/radek/.rvm/rubies/ruby-1.9开始执行`checking_for'
。 3-P385 / LIB /红宝石/ 1.9.1 /mkmf.rb:930:in`have_header'
from extconf.rb:9:in< main>'


Gem文件将保持安装在/ Users / radek / .rvm / gems / ruby​​-1.9.3-p385 / gems / mysql2-0.3.16进行检查。
结果记录到/Users/radek/.rvm/gems/ruby-1.9.3-p385/gems/mysql2-0.3.16/ext/mysql2/gem_make.out
安装mysql2时发生错误(0.3.16),Bundler无法继续。
确保`gem install mysql2 -v'0.3.16'`捆绑成功。

谢谢

解决方案<在Ubuntu上运行

  sudo apt-get install libmysqlclient-dev 

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

  sudo apt-get install libmariadbclient-dev 


I have this in the Gemfile:

gem 'mysql2'

But when I run bundle update, I get this error message:

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.

I've tried to move this into the production section, like this:

group :production do
  gem 'mysql2'
end

But after running bundle update, the result is the same. This section is processed only in the production mode, or not?

How to get rid of this error message on localhost?

EDIT: The whole error message:

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.

Thank you

解决方案

On Ubuntu, run

sudo apt-get install libmysqlclient-dev

Or, if you use MariaDB, run

sudo apt-get install libmariadbclient-dev

这篇关于我无法运行“软件包更新”由于“mysql2”宝石的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆