在 Ubuntu 上安装 mysql gem 的困难

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/4613116/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-31 18:14:13  来源:igfitidea点击:

Difficulties installing mysql gem on Ubuntu

mysqlruby-on-railsrubygemsubuntu-10.04

提问by boddhisattva

I am trying to install the mysql 2.8.1 gem. I would be using it to build a Rails 2.0.2 application on Ubuntu 10.04. I would be using Ruby 1.8.7. I have installed the development dependencies(other gems). For some reasons I am unable to install it. I am not able to exactly figure out how to fix it. Please help!!

我正在尝试安装 mysql 2.8.1 gem。我将使用它在 Ubuntu 10.04 上构建 Rails 2.0.2 应用程序。我将使用 Ruby 1.8.7。我已经安装了开发依赖项(其他 gems)。由于某些原因,我无法安装它。我无法确切地弄清楚如何解决它。请帮忙!!

I get the following in the terminal when I try to install it:

当我尝试安装它时,我在终端中得到以下信息:

mohnish@pc146724-desktop:~/Downloads$ sudo gem install mysql-2.8.1.gem 
Building native extensions.  This could take a while...
ERROR:  Error installing mysql-2.8.1.gem:
    ERROR: Failed to build gem native extension.

/usr/bin/ruby1.8 extconf.rb
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lm... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lz... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lsocket... no
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lnsl... yes
checking for mysql_query() in -lmysqlclient... no
checking for main() in -lmygcc... no
checking for mysql_query() in -lmysqlclient... no
*** 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
    --without-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=/usr/bin/ruby1.8
    --with-mysql-config
    --without-mysql-config
    --with-mysql-dir
    --without-mysql-dir
    --with-mysql-include
    --without-mysql-include=${mysql-dir}/include
    --with-mysql-lib
    --without-mysql-lib=${mysql-dir}/lib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mlib
    --without-mlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-zlib
    --without-zlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-socketlib
    --without-socketlib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-nsllib
    --without-nsllib
    --with-mysqlclientlib
    --without-mysqlclientlib
    --with-mygcclib
    --without-mygcclib
    --with-mysqlclientlib
    --without-mysqlclientlib


Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1 for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out
mohnish@pc146724-desktop:~/Downloads$ 

Thanks for your help!!

谢谢你的帮助!!

回答by Zabba

Try this and then install the mysql gem:

试试这个,然后安装 mysql gem:

sudo apt-get install libmysqlclient-dev 

If that's not sufficient try it like this

如果这还不够,试试这样

 sudo apt-get install libmysqlclient-dev libmysqlclient16 ruby-dev

回答by Andrew Plummer

Try this and then install the mysql gem:

sudo apt-get install libmysqlclient-dev libmysqlclient16

试试这个,然后安装 mysql gem:

sudo apt-get install libmysqlclient-dev libmysqlclient16

This worked after then running sudo gem install mysql.

这在运行 sudo gem install mysql 后起作用。

The documentation still doesn't install correctly (heaps of "No definition" errors, although thats not really a biggie.

文档仍然没有正确安装(大量的“无定义”错误,尽管那不是什么大问题。

回答by Andrei Andrushkevich

You should do what the error message tells you: check the mkmf.log! Search for this file using find /usr/lib/ruby/gems/1.8/gems/ -name mkmf.log. Usually, this error message appears because you forgot to install the -dev package for the extension you were trying to install. So if you wanted to install the mysql gem, you probably forgot to install the libmysqlclient14-dev first. Do an apt-cache search | grep dev to find the appropriate packages.

您应该按照错误消息告诉您的操作:检查 mkmf.log!使用 find /usr/lib/ruby/gems/1.8/gems/ -name mkmf.log 搜索此文件。通常,出现此错误消息是因为您忘记为尝试安装的扩展安装 -dev 包。所以如果你想安装mysql gem,你可能忘记先安装libmysqlclient14-dev。做一个 apt-cache 搜索 | grep dev 找到合适的包。

plz check thisfor more information

请检查这个以获取更多信息

回答by almawhoob

In my case, I had the following error message:

就我而言,我收到以下错误消息:

An error occurred while installing mysql (2.8.1), and Bundler cannot continue. Make sure that gem install mysql -v '2.8.1'succeeds before bundling.

安装mysql(2.8.1)时出错,Bundler无法继续。gem install mysql -v '2.8.1'在捆绑之前确保成功。

I tried: gem install mysql -v '2.8.1', and I got an error message similar to what you got.

我试过:gem install mysql -v '2.8.1',我收到一条与您收到的类似的错误消息。

I fixed it doing the following:

我修复了它执行以下操作:

  • STEP (1): run this: sudo apt-get install libmysqlclient-dev

  • STEP (2): install mysql: gem install mysql -v 2.8.1

  • 步骤(1):运行这个: sudo apt-get install libmysqlclient-dev

  • 步骤(2):安装mysql: gem install mysql -v 2.8.1

You should get a success message similar to this:

您应该会收到与此类似的成功消息:

Successfully installed mysql-2.8.1
Installing ri documentation for mysql-2.8.1 1 gem installed

成功安装 mysql-2.8.1
安装 ri 文档 for mysql-2.8.1 1 gem 安装

I hope my answer helps.

希望我的回答有帮助。