由于缺少libmysql,在Windows上安装mysql-2.9.0 gem失败

我正在尝试在Windows Server 2003上安装Redmine 2.1.4。为了工作,我需要安装activerecord-mysql-adapter gem,而后者似乎依赖于mysql-2.9.0.gem 。 我从rubygems下载后者并执行:

 gem install mysql-2.9.0.gem 

它给出了以下输出:

 C:\>gem install mysql-2.9.0.gem Temporarily enhancing PATH to include DevKit... Building native extensions. This could take a while... ERROR: Error installing mysql-2.9.0.gem: ERROR: Failed to build gem native extension. C:/Ruby193/bin/ruby.exe extconf.rb checking for main() in -llibmysql... 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=C:/Ruby193/bin/ruby --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-libmysqllib --without-libmysqllib Gem files will remain installed in C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql-2.9.0 for inspection. Results logged to C:/Ruby193/lib/ruby/gems/1.9.1/gems/mysql-2.9.0/ext/mysql_api/gem_make.out 

我猜,一种可能性是我缺少MySQL C Connector库。 我从http://dev.mysql.com/downloads/connector/c下载了mysql-connector-c-6.0.2-win32.msimysql-connector-c-6.0.2-win32-vs2005.msi / ,但两个安装程序都退出: 在此处输入图像描述

我也尝试将C:\Program Files\MySQL\MySQL Server 5.1\lib\debug\libmysql.dll C:\Ruby193\binC:\Ruby193\bin ,但它也没有解决mysql-2.9.0.gem的安装问题。

我还能尝试什么?

编辑

从我想到的日志中,Ruby正在寻找下的文件,惊喜,惊喜,$ RUBY_HOME \ lib,而不是$ RUBY_HOME \ bin,正如问题中提到的一些来源中所见。 所以将libmysql从$ MySQL_HOME \ lib移动到$ RUBY_HOME \ lib有点帮助,但现在Ruby找不到其他一些库和头文件了。 所以我猜,我需要使用如下选项:

 C:\>gem install mysql-2.9.0.gem --platform=ruby --with-opt-lib="C:/Program Files/MySQL/MySQL Server 5.1/lib" --with-opt-include="C:/Program Files/MySQL/MySQL Server 5.1/include" 

这也不会起作用(可能是因为路径中的空格)。

尝试从http://dev.mysql.com/downloads/connector/c/没有安装程序版本的连接器,并提取根文件夹中的内容或没有任何空间的文件夹路径,然后尝试安装mysql gem

 gem install mysql --platform=ruby -- --with-mysql-dir=C:/mysql-connector-c-noinstall-6.0.2-win32 

我已经发布了带有rubyx86-mingw32预编译二进制文件的mysql gem版本2.9.0。

如果让RubyGems确定合适的平台,它将自动为您安装x86-mingw32平台gem,这将避免编译过程。

安装完成后,它会显示一组说明,指示您下载MySQL Connector / C并将其DLL放在正确的位置:

 C:\Users\Luis>gem install mysql Fetching: mysql-2.9.0-x86-mingw32.gem (100%) ====================================================================================================== You've installed the binary version of mysql. It was built using MySQL Connector/C version 6.0.2. It's recommended to use the exact same version to avoid potential issues. At the time of building this gem, the necessary DLL files where available in the following URL: http://dev.mysql.com/get/Downloads/Connector-C/mysql-connector-c-noinstall-6.0.2-win32.zip/from/pick You can put the lib\libmysql.dll available in this package to your Ruby bin directory. Eg C:\Ruby\bin ====================================================================================================== Successfully installed mysql-2.9.0-x86-mingw32 1 gem installed 

如果您只需连接到已经运行的MySQL版本,则无需下载或安装MySQL。

RubyGems和Bundler都会自动检测正确的平台并安装正确的预编译二进制文件,而无需自己编译它们。

如果您在代理后面,请使用gem install --http-proxy参数(请参阅帮助)或设置HTTP_PROXY环境变量。

希望有所帮助。

Interesting Posts