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-dev
和 sudo 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
其次,我尝试通过在终端中运行以下命令来更新系统上的 rubygems
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
之后只需安装bundle
或bundle install
【讨论】:
以上是关于MySQL 安装:错误:无法构建 gem 原生扩展的主要内容,如果未能解决你的问题,请参考以下文章
错误:安装 mysql2 时出错:错误:无法在 AWS Linux 上构建 gem 原生扩展
gem install:无法构建 gem 原生扩展(找不到头文件)