I'm trying to install Redmine 2.1.4 on Windows Server 2003. For it to work, I need to install activerecord-mysql-adapter
gem, which in turn seems to rely on mysql-2.9.0.gem
. I've downloaded the latter from rubygems and executed:
gem install mysql-2.9.0.gem
which gives the following output:
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
I'm guessing, one possibility is I'm lacking MySQL C Connector library. I've downloaded both mysql-connector-c-6.0.2-win32.msi
and mysql-connector-c-6.0.2-win32-vs2005.msi
from http://dev.mysql.com/downloads/connector/c/ , but both installers exited with:
I also tried copying C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib\\debug\\libmysql.dll
to C:\\Ruby193\\bin
, but it also didn't solve the mysql-2.9.0.gem installation issue.
What else can I try?
EDIT
From the logs I figured, Ruby was looking for libs under, surprise, surprise, $RUBY_HOME\\lib, not $RUBY_HOME\\bin, as found in some sources mentioned in the question. So moving the libmysql from $MySQL_HOME\\lib to $RUBY_HOME\\lib helped a little, but now Ruby cannot find some other libs and headers. So I'm guessing, I need to use the an option like:
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"
which won't work either (probably because of spaces in path).
Try with no installer version of connector from http://dev.mysql.com/downloads/connector/c/ and extract the content in root folder or a folder path which does not have any space for and then try to install mysql gem
example
gem install mysql --platform=ruby -- --with-mysql-dir=C:/mysql-connector-c-noinstall-6.0.2-win32
I've released mysql gem version 2.9.0 with both ruby
and x86-mingw32
pre-compiled binaries.
If you let RubyGems determine the right platform, it will automatically install x86-mingw32
platform gem for you, which will avoid the compilation process.
Once installed, it will show you a set of instructions indicating you to download MySQL Connector/C and placing it's DLLs in the right place:
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.
E.g. C:\Ruby\bin
======================================================================================================
Successfully installed mysql-2.9.0-x86-mingw32
1 gem installed
There is no need to download or install MySQL if you only need to connect to an already running version of MySQL.
Both RubyGems and Bundler will automatically detect the right platform and install the right pre-compiled binaries without the need to compile them on your own.
If you're behind a proxy, use --http-proxy
parameter of gem install
(see help) or set HTTP_PROXY
environment variable.
Hope that helps.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.