MySQL 安装:错误:无法构建 gem 原生扩展

Posted

技术标签:

【中文标题】MySQL 安装:错误:无法构建 gem 原生扩展【英文标题】:MySQL Install: ERROR: Failed to build gem native extension 【发布时间】:2011-01-11 04:12:38 【问题描述】:

我正在尝试将 mysql 安装到最新版本,因为某些安装出现问题。我运行命令gem install mysql 并收到以下信息:

构建原生扩展。这 可能需要一段时间... 错误:错误 安装 mysql: 错误: 失败 构建 gem 原生扩展。

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb:4:警告: 不安全的世界可写目录 /usr/bin 在 PATH 中,模式 040777 extconf.rb:4: 警告:不安全的世界可写目录 PATH 中的 /usr/bin,模式 040777 extconf.rb:7:警告:不安全的世界 PATH 模式下的可写目录 /usr/bin 040777 mkmf.rb 找不到头文件 红宝石在 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Gem 文件将继续安装在 /图书馆/Ruby/Gems/1.8/gems/mysql-2.8.1 供检查。结果记录到 /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

我已经搜索并尝试了很多东西,从安装特定版本到尝试重新安装 ruby​​,但没有任何运气。

我可能会出错的任何想法?

我正在尝试将 MySQL 安装到最新版本,因为某些安装出现问题。我运行命令gem install mysql 并收到以下信息:

构建原生扩展。这 可能需要一段时间... 错误:错误 安装 mysql: 错误: 失败 构建 gem 原生扩展。

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb:4:警告: 不安全的世界可写目录 /usr/bin 在 PATH 中,模式 040777 extconf.rb:4: 警告:不安全的世界可写目录 PATH 中的 /usr/bin,模式 040777 extconf.rb:7:警告:不安全的世界 PATH 模式下的可写目录 /usr/bin 040777 mkmf.rb 找不到头文件 红宝石在 /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h

Gem 文件将继续安装在 /图书馆/Ruby/Gems/1.8/gems/mysql-2.8.1 供检查。结果记录到 /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

我已经搜索并尝试了很多东西,从安装特定版本到尝试重新安装 ruby​​,但没有任何运气。

我可能会出错的任何想法?

编辑:我从 Snow Leopard DVD 上安装了 XCode,错误只是稍微更改为以下内容:

构建原生扩展。这可能需要一段时间... 错误:安装mysql时出错: 错误:无法构建 gem 原生扩展。

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb extconf.rb:4:警告:PATH 中不安全的世界可写目录 /usr/bin,模式 040777 extconf.rb:4:警告:PATH 中不安全的世界可写目录 /usr/bin,模式 040777 extconf.rb:7:警告:PATH 中不安全的世界可写目录 /usr/bin,模式 040777 extconf.rb:17:警告:PATH 中不安全的世界可写目录 /usr/bin,模式 040777 检查 -lmysqlclient 中的 mysql_query()... 否 检查 -lm 中的 main()... 是 检查 -lmysqlclient 中的 mysql_query()... 否 检查 -lz 中的 main() ......是的 检查 -lmysqlclient 中的 mysql_query()... 否 检查 -lsocket 中的 main()... 否 检查 -lmysqlclient 中的 mysql_query()... 否 检查 -lnsl 中的 main()... 否 检查 -lmysqlclient 中的 mysql_query()... 否 检查 -lmygcc 中的 main() ... 否 检查 -lmysqlclient 中的 mysql_query()... 否 * extconf.rb 失败 * 由于某种原因无法创建 Makefile,可能缺少 必要的库和/或头文件。查看 mkmf.log 文件了解更多信息 细节。您可能需要配置选项。

提供的配置选项: --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 --没有-make-prog --srcdir=。 --curdir --ruby=/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby --with-mysql-config --没有-mysql-config --with-mysql-dir --没有-mysql-dir --with-mysql-include --without-mysql-include=$mysql-dir/include --with-mysql-lib --without-mysql-lib=$mysql-dir/lib --with-mysqlclientlib --没有-mysqlclientlib --with-mlib --没有-mlib --with-mysqlclientlib --没有-mysqlclientlib --with-zlib --没有-zlib --with-mysqlclientlib --没有-mysqlclientlib --with-socketlib --不带socketlib --with-mysqlclientlib --没有-mysqlclientlib --with-nsllib --没有-nsllib --with-mysqlclientlib --没有-mysqlclientlib --with-mygcclib --没有-mygcclib --with-mysqlclientlib --without-mysqlclientlib

Gem 文件将继续安装在 /Library/Ruby/Gems/1.8/gems/mysql-2.8.1 中以供检查。 结果记录到 /Library/Ruby/Gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out

在命令行上执行“which mysql”不会返回任何内容,这意味着它无法识别它。我还安装了 MySQL 系统首选项选项,我无法阻止 MySQL 运行。现在我完全不知道该怎么办了!

编辑编辑

我刚刚使用本指南 http://hivelogic.com/articles/installing-mysql-on-mac-os-x 完全重新安装了 MySQL

不幸的是,这也不起作用,我仍然收到相同的错误。我什至不能在命令行中执行 mysql -uroot,我收到以下错误:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

所以我想我什么都试过了。

**已解决*

抱歉,这不起作用的原因是 MySQL 路径。我在这里写过博客:http://www.kieransenior.co.uk/2010/02/mysql-cant-connect-using-ruby-on-rails-mac-os-x-snow-leopard/

【问题讨论】:

【参考方案1】:

在 Debian(或 Ubuntu)系统上,只需使用以下命令安装 libmysqlclient-dev 软件包:

sudo apt-get install libmysqlclient-dev

然后:

gem install mysql

它将安装没有任何错误。

【讨论】:

太棒了!在 Ubuntu 14.10 64 位中工作 对我也有用,Ubuntu 14.4 LTS 值得信赖【参考方案2】:

Installing the mysql gem on OSX

在终端中..首先执行“locate mysql_config”然后将以下命令中的路径替换为该文件所在的位置

$ sudo gem install mysql -- —–with-mysql-config=/usr/local/mysql/bin/mysql_config
Building native extensions. This could take a while…
Successfully installed mysql-2.7
1 gem installed

【讨论】:

我为 OSX 安装了 XAMPP,所以我的命令是:gem install mysql -- --with-mysql-config=/Applications/XAMPP/bin/mysql_config。不需要 sudo! 仅供参考。我仍然无法安装,但后来我意识到 /usr/local/mysql/bin 不在我的 PATH 环境变量中。一旦我在我的 PATH 上得到它,我就可以毫无问题地安装它。 我必须sudo locate mysql_config 才能获得配置路径。否则,它返回消息:WARNING: The locate database (/var/db/locate.database) does not exist. ... 在这个答案最终对我有用之前,我必须安装 xcode 命令行工具。请参阅此相关答案:***.com/questions/761521/…,然后尝试sudo gem install mysql1 etc,就像在此答案中一样:) @JoshBurson 如果你想要一份在 OSX 上从头开始安装 mysql 的完整指南,我认为这是一个完全不同的故事。【参考方案3】:

首先,您需要区分 MySQL 作为服务器、MySQL 作为客户端以及 Ruby 绑定到 MySQL。

我对 Mac 不熟悉,但对于 *nix 操作系统,您需要通过包管理器安装 MySQL。使用

安装 Ruby 绑定
gem install mysql

您需要 ruby​​ 的开发头文件(在 Ubuntu 中是 ruby​​-dev 包)和 MySQL-Client 的开发头文件(目前在 Ubuntu 中为 libmysqlclient16-dev)。我不知道它们在 Mac 上的名称是否不同,但是在你安装了这些之后,Ruby 绑定应该安装没有任何错误。

【讨论】:

毋庸置疑,有一个多打包版本可以两者兼得。我也经历过这个过程。我认为您是对的,我确实需要区分两者,因为这主要是我的问题。或许,另一种选择是安装 MAMP 并使用它?那我需要什么? MAMP 代表 Mac、Apache、MySQL、php。所以你仍然需要一个 MySQL-Server 和 Apache 2,以及 apache 的 php 库。我不确定您是否可以在包管理器中选择 MAMP,它会安装所有必需的文件。也许 Mac 用户可以帮助你。 确实不能满足对 MAMP 的需求,但这只是提供 MySQL 实例的一种简单方法。 这正是我在 Ubuntu 上所需要的:sudo apt-get install ruby-devsudo gem install mysql。谢谢! 是的,这行得通:'sudo apt-get install ruby​​-dev libmysqlclient16-dev' 然后'sudo gem install mysql'【参考方案4】:

许多人发现this post 有帮助。

另外,我需要先输入:

yum install mysql-devel

然后:

gem install mysql 

对于某些人,您可能需要输入:

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

【讨论】:

老兄,如果我可以给你 2 我会的!虽然很高兴注意到这个 yum 命令可能只对某些版本的 LINUX 有用。就我而言,CentOS 6.0【参考方案5】:

在 OSX 山狮上:如果您安装了 brew,然后 brew install mysql 并按照 instructions 在您的机器上使用 mysql 创建测试数据库。 你不用一路走过去,我也不需要 在我这样做之后,我能够捆绑安装和 rake。

【讨论】:

这是唯一对我有用的解决方案!干杯伙伴!【参考方案6】:

为了解决

Gem::Ext::BuildError: ERROR: 未能构建 gem 原生扩展 mysql2 出错,

我认为 libmysql-ruby 已更改为 ruby-mysql

只需尝试以下命令,

sudo apt-get install ruby-mysql

然后

sudo apt-get install libmysqlclient-dev

【讨论】:

【参考方案7】:

我有类似的经历,所以这里是我尝试过的事情

首先,我尝试通过在终端中运行以下命令来安装 mysql 所需的包

sudo apt-get install build-essential libmysqlclient-dev

其次,我尝试通过在终端中运行以下命令来更新系统上的 ruby​​gems

sudo gem update --system

但我仍然遇到同样的问题。

这对我有用

经过大量研究,我意识到我使用的是几乎过时的 mysql gem 版本。我只需要使用 mysql2 gem (mysql2 gem) 而不是 mysql gem,所以我通过在终端中运行以下命令来修复它

gem install mysql2

这对我来说很好。在运行最后一个命令之前,请确保您已经运行了第一个和第二个命令,以确保您的系统上一切正常。

就是这样。

我希望这会有所帮助

【讨论】:

这个命令救了我gem install mysql2谢谢【参考方案8】:

我也忘了真正安装 MySQL。遵循本指南很有帮助。

http://www.djangoapp.com/blog/2011/07/24/installation-of-mysql-server-on-mac-os-x-lion/

除了将这些行添加到我的 .profile 中:

export PATH="/usr/local/mysql/bin:$PATH"
alias mysql=/usr/local/mysql/bin/mysql
alias mysqladmin=/usr/local/mysql/bin/mysqladmin

【讨论】:

【参考方案9】:

你可以尝试重新安装最新版本的xcode/dev。雪豹工具 - 这应该可以解决您的错误

【讨论】:

这是我做的第一件事。我的机器上安装了 Snow Leopard 的 XCode 版本。【参考方案10】:

如果你是从源代码安装,这里有一个教程。如果它有帮助会很高兴http://raihan90.blogspot.com/2009/03/mysql-step-by-step-hacking-into-mysql.html

【讨论】:

【参考方案11】:

注意:需要指定--key,而不是--with-mysql-config=/usr/local/mysql/bin/mysql_config

【讨论】:

再一次,这个答案在很多地方都是浮动的。在我的例子中,它不起作用。另外,我相信 /usr/local/ 中不存在 mysql。【参考方案12】:

如果你使用 Percona Mysql 服务器

$ yum install Percona-Server-devel-55

$ gem 安装 mysql

【讨论】:

【参考方案13】:
yum -y install gcc mysql-devel ruby-devel rubygems
gem install mysql2

【讨论】:

【参考方案14】:

您的 Ubuntu 操作系统需要为 mysql 客户端安装库 sudo apt-get install libmysqlclient-dev

之后只需安装bundlebundle install

【讨论】:

以上是关于MySQL 安装:错误:无法构建 gem 原生扩展的主要内容,如果未能解决你的问题,请参考以下文章

错误:安装 mysql2 时出错:错误:无法在 AWS Linux 上构建 gem 原生扩展

gem install:无法构建 gem 原生扩展(找不到头文件)

在 OSX 上安装 rmagick gem 时出错 - 错误:无法构建 gem 原生扩展

安装 pg gem;错误:无法构建 gem 原生扩展

puma gem - 无法构建 gem 原生扩展

无法构建 gem 原生扩展(安装 Compass)