安装mysql2时出错:无法构建gem原生扩展
当我尝试安装Rails的mysql2
gem时遇到一些问题。 当我尝试通过运行bundle install
或gem install mysql2
来安装它时,它给了我以下错误:
安装mysql2时出错:错误:无法构建gem原生扩展。
我怎样才能解决这个问题,并成功安装mysql2
?
在Ubuntu / Debian和其他使用aptitude的发行版上:
sudo apt-get install libmysql-ruby libmysqlclient-dev
软件包libmysql-ruby
已经被淘汰,取而代之的是ruby-mysql
。 这是我找到解决方案的地方。
如果上述命令不起作用,因为找不到libmysql-ruby
,那么以下就足够了:
sudo apt-get install libmysqlclient-dev
在Red Hat / CentOS和其他使用yum的发行版中:
sudo yum install mysql-devel
在Mac OS X上用Homebrew :
brew install mysql
我在Mac上使用自制软件安装开源程序。 我不得不安装mac开发工具,以安装自制软件,但在那之后,这是一个简单的:
brew install mysql
安装mysql。 自从我没有一个MySQL的宝石问题。
这里是Windows用户的解决方案,希望它有帮助!
在Windows上使用MySQL和Rails 3
-
安装railsinstaller – > http://www.railsinstaller.org (我安装到C:\ Rails)
-
安装MySQL (我使用MySQL 5.5) – > dev.mysql.com/downloads/installer/
—为mySQL安装—
如果你还没有安装这两个文件,你可能需要他们让你的MySQL去
vcredist_x86.exe – > http://www.microsoft.com/download/en/details.aspx?id=5555 dotNetFx40_Full_x86_x64.exe – > http://www.microsoft.com/download/en/details.aspx?id = 17718
使用默认安装Developer Machine
-MySQL服务器配置 –
港口:3306
windows服务名称:MySQL55
mysql root pass:root(你可以稍后改变)
(用户名:root)
-MySQL服务器配置 –—为mySQL安装—
—安装mysql2 gem —
重要: 使用Git Bash Command Line (这是使用railsinstaller安装的) – > start / Git Bash
gem install mysql2 – '–with-mysql-lib =“c:\ Program Files \ MySQL \ MySQL Server 5.5 \ lib”–with-mysql-include =“c:\ Program Files \ MySQL \ MySQL Server 5.5 \包括”'
现在,宝石应该已经正确安装
最后复制libmysql.dll文件
C:\ Program Files \ MySQL \ MySQL Server 5.5 \ lib
至
C:\ Rails的\ Ruby1.9.2 \ BIN—安装mysql2 gem —
你现在可以使用你的Rails应用程序与MySQL,如果你不知道如何创建一个Rails 3的应用程序与MySQL读…
—获取与MySQL的Rails 3应用程序—
打开命令提示符(而不是Git Bash) – >开始/ cmd
导航到您的文件夹(c:\ Sites)
创建新的rails应用程序
rails new world
删除文件c:\ Sites \ world \ public \ index.html
编辑文件c:\ Sites \ world \ config \ routes.rb
添加这一行 – > root:to =>'cities#index'
打开命令提示符(生成视图和控制器)
rails generate scaffold city ID:integer Name:string CountryCode:string District:string Population:integer
编辑文件c:\ Sites \ world \ app \ models \ city.rb,看起来像这样
class City < ActiveRecord::Base set_table_name "city" end
编辑文件c:\ Sites \ world \ config \ database.yml看起来像这样
development: adapter: mysql2 encoding: utf8 database: world pool: 5 username: root password: root socket: /tmp/mysql.sock
添加到gemfile
gem 'mysql2'
打开命令提示符窗户cmd,而不是Git Bash(运行你的应用程序!)
导航到您的应用程序文件夹(c:\ Sites \ world)
rails s
在这里打开你的浏览器 – > http:// localhost:3000
—获取与MySQL的Rails 3应用程序—
我有几台电脑,32位和64位处理器,他们运行在Ubuntu Linux,Maverick(10.10)发布。
我有同样的问题,对我来说, sudo apt-get install libmysql-ruby libmysqlclient-dev
做的工作!
如果你正在使用百胜尝试:
sudo yum install mysql-devel
你有没有尝试过使用
gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib
指定base目录的位置以及完成gem安装所需的MySQL库路径?
来源: MySQL Gem Install错误:无法构建gem原生扩展 MySQL Forums :: Ruby ::需要为Ruby安装MySQL绑定
如果你仍然有麻烦… …。
尝试安装
sudo apt-get install ruby1.9.1-dev
MacOS用户的另一种方法
如果你用“brew”来安装mysql:
gem install mysql2 -v 'xxx' -- --with-mysql-config=/usr/local/Cellar/mysql/yyy/bin/mysql_config
xxx =您要安装的mysql2 gem的版本
yyy =你安装了ls /usr/local/Cellar/mysql
。
我有我的Windows 7这个问题。这显然是一个不兼容的问题,解决方案如下:从较旧的InstantRails安装程序下载mysql.dll文件。 链接http://tinyurl.com/24ocp8u将只下载mysql.dll文件(它链接到InstantRails的svn仓库)。; 接下来,将该文件复制到您的Ruby / bin文件夹中。 现在,你很好走;)
我也有这个错误。 通过安装开发包解决。 我正在使用拱门,它是:
sudo pacman -S base-devel
其中安装了:
m4, autoconf, automake, bison, fakeroot, flex, libmpc, ppl, cloog-ppl, elfutils, gcc, libtool, make, patch, pkg-config
但我认为它实际上需要make和gcc。 错误输出说(在我的机器等):
“你必须先安装开发工具。”
所以这是一个明显的决定,它有帮助。
这在Windows中解决了我的问题:
subst X: "C:\Program files\MySQL\MySQL Server 5.5" gem install mysql2 -v 0.xx --platform=ruby -- --with-mysql-dir=X: --with-mysql-lib=X:\lib\opt subst X: /D
我在我的Mac上运行到这个错误,发现我需要从MySQL 32位升级到MySQL 64位得到这个错误消失。 我在Intel MacBook Pro上用ruby 1.9.2和rails3.0.0运行OSX 10.6
我还需要安装xcode才能获得像编译gem所需的“make”之类的unix工具。
一旦完成,我能够运行gem install mysql和gem install mysql2而不会报错。
你必须安装一些依赖项
sudo apt-get install libmysql-ruby libmysqlclient-dev
对于Windows用户:你设置你的mysql的lib和include路径,例如,如果你使用xampp你可以这样:
gem install mysql2 -- '--with-mysql-lib="C:\xampp\mysql\lib" --withmysql-include="C:\xampp\mysql\include"'
解决方案仅适用于Mac OS X
如果你已经用homebrew安装了MySQL,那么对于我来说,卸载MySQL和通过MySQL网站( https://www.mysql.com/ )安装MySQL Community Edition是非常有效的。
安装完毕后,只需重新输入gem install mysql2
命令即可,如有需要sudo gem install mysql2
,如果获得权限拒绝的问题。
我得到了在Mac OS X 10.6.6上构建的gem 1)确保安装了开发工具包2)从源代码中下载当前的MySQL包(5.5.8)3)从cmake.org安装cmake工具4 )按照mysql配置文件中INSTALL-SOURCE的2.11节的说明5) sudo gem install mysql2 -- --srcdir=/usr/local/mysql/include
gem已经成功建立,但是在文档中有两个错误: rdoc和ri抱怨。 但是现在当我尝试要求“mysql2”时,我得到了一个
LoadError: no such file to load -- mysql2/mysql2
我希望我得到的错误是libmysqlclient.16.dylib无法找到,因为我们在另一篇文章(搜索install_name_tool)中找到了。
我的$ PATH中有/ usr / local / mysql(这是我的源文件和构建文件所在的位置),所以我有点难住。 如果有人有任何想法,我会睡几个小时后再回来看看。
如果仍然出现错误,请遵循Rails 3上的mysql2 gem安装步骤 –
http://rorguide.blogspot.com/2011/03/installing-mysql2-gem-on-ruby-192-and.html
大部分用户都能够安装mysql2 gem。
在得到更正的mysql-dev问题之后,您可能需要删除错误的mysql2安装。 仔细看$ bundle安装后的消息。 你可能需要
rm -rf vendor/cache/ rm -rf ./Zentest
这将清除不良的mysql2安装,以便最后的$ bundle安装可以创建一个好的。
下载正确的版本的mysqllib.dll,然后将其复制到红宝石斌真的为我工作。 按照这个链接plains mysql2 gem编译为错误的mysql客户端库
得到了“你必须先安装开发工具”。 在升级到Mac OS X Mountain Lion后尝试安装mysql2 gem时出错。 显然做这个升级删除命令行编译器。
修理:
- 我卸载了我非常旧版本的Xcode(在/ Developer / Library中运行卸载脚本)。 然后删除/ Developer目录。
- 去AppStore并下载Xcode。
- 启动Xcode并进入首选项 – >下载,并安装命令行工具。
你得到这个问题,因为你还没有安装MySql。 在安装mysql2 gem之前。 安装MySQL。 之后,MySQL2的宝石将安装。
我只是想为Mac用户专门添加这个答案。
我的服务器运行得很好,直到我更新了我的xcode。 一开始我的rails服务器的错误是这样的
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. /Users/user/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb --with-mysql- checking for rb_thread_blocking_region()... /Users/user/.rvm/rubies/ruby-1.9.3- p448/lib/ruby/1.9.1/mkmf.rb:381:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
并有建议在错误消息的末尾安装mysql2 gem。 所以,当我试图安装它,我得到了这个问题上面提到的错误。 我得到的错误如下
ERROR: Error installing mysql2: ERROR: Failed to build gem native extension.
所以正如在这篇文章中建议,我试着“brew安装mysql”,并退出说,MySQL版本如此已经安装。 但之前有人警告说
Warning: You have not agreed to the Xcode license. Builds will fail! Agree to the license by opening Xcode.app or running: xcodebuild -license
然后我尝试了这个sudo xcodebuild -license
并在最后输入“agree”。 你必须成为同意许可证的根源。
在此之后,我再次尝试捆绑安装,然后一切正常正常工作。 [即使由于这个xcode更新,我也有我的塔问题。]
对于那些使用Windows 7和64位MySQL的人
如果你想使用64位MySQL,你应该按照这里的说明(也在这里 )。
还有一个定制的64位连接器 ,没有麻烦工作。