解决 Windows Server 2008 R2 上 gem install mysql2 时 collect2: ld returned 1 exit status

在 Windows Server 2008 R2 上安装 redmine 前要安装一堆依赖。

按照Redmine 安装笔记这篇网志里的步骤:

运行 bundle install --without development test rmagick 时报 undefined method `[]' for nil:NilClass (NoMethodError) 的错。

经查找,从 http://stackoverflow.com/questions/19014117/ruby-mysql2-gem-installation-on-windows-7 得知,需要下载 MySQL Connector C,然后解压到 C:\mysql-connector,再运行 gem install mysql2 --platform=ruby -- '--with-mysql-lib="C:\mysql-connector\lib" --with-mysql-include="C:\mysql-connector\include" --with-mysql-dir="C:\mysql-connector"'

运行后,又报了 collect2: ld returned 1 exit status 的错。

经查找,从 http://www.websofia.com/2011/08/installing-rubys-mysql2-gem-for-mysql-64-bits/ 这里得出是因为需要用 32 位的 MySQL Connector C。

重新去 http://dev.mysql.com/downloads/connector/c 下载 32 位 的 zip 包,解开,把 libmysql.dll 拷贝出来,替换掉 Ruby 里那个,删掉原来的 C:\mysql-connector,把这个 32 位的 zip 包解在 C:\mysql-connector 里,再执行刚才的命令。成功!

Topic: 技术

评论

额,邱总也开始玩rails了?

不是邱总,没玩rails,只是记录一下搭redmine碰到的问题和解决方法。