MySQL 在Snow Leopard系统下安装MySQL gem时可能出现的问题以及如何解决
在本文中,我们将介绍在Snow Leopard系统下安装MySQL gem时可能出现的问题以及如何解决。
阅读更多:MySQL 教程
问题描述
在Snow Leopard系统下,当我们尝试通过gem安装mysql时,可能会遇到以下错误信息:
$ sudo gem install mysql -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
...
ld: warning: in /usr/local/mysql/lib/libmysqlclient.dylib, file is not of required architecture
ld: warning: in /usr/local/mysql/lib/mysql/libmysqlclient.a, file is not of required architecture
ld: warning: in /usr/local/mysql/lib/mysql/libmysqlclient_r.a, file is not of required architecture
ld: warning: in /usr/local/mysql/lib/mysql/libmysqlclient.18.dylib, file is not of required architecture
ld: warning: in /usr/local/mysql/lib/mysql/libmysqlclient.15.dylib, file is not of required architecture
ld: warning: in /usr/lib/libssl.dylib, file is not of required architecture
ld: warning: in /usr/lib/libcrypto.dylib, file is not of required architecture
ld: dynamic main executables must be at least 4K for 32-bit code slices, prebinding disa
解决方法
这个错误发生的原因是Mac OS X Snow Leopard默认是64位的,而MySQL的安装包默认是32位的,因此gem安装时会出现这个错误。
解决这个问题的方法是安装一个64位的版本的MySQL,并将其路径传递给gem安装命令。以下是一些解决方案:
解决方案1
使用Homebrew安装64位版本的MySQL:
$ brew install mysql
$ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- --with-mysql-config=/usr/local/Cellar/mysql/<VERSION>/bin/mysql_config
其中,<VERSION>指的是你安装的MySQL版本号。
解决方案2
手动安装64位版本的MySQL:
- 首先,从MySQL官网下载64位的MySQL安装包,并进行安装。
-
然后,通过以下命令运行gem安装:
$ sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- \ --with-mysql-config=/usr/local/mysql/bin/mysql_config \ --with-opt-lib=/usr/local/mysql/lib --with-opt-include=/usr/local/mysql/include
解决方案3
如果你已安装了MySQL的32位版本,你可以使用fat_binary工具将其转换为fat binary:
$ sudo /Developer/Library/universal-binaries/fat_binary.pl /usr/local/mysql/lib/libmysqlclient.{a,dylib}
然后运行以下命令安装gem:
sudo env ARCHFLAGS="-arch x86_64" gem install mysql -- \
--with-mysql-config=/usr/local/mysql/bin/mysql_config \
--with-opt-lib=/usr/local/mysql/lib/ \
--with-opt-include=/usr/local/mysql/include/
总结
在Snow Leopard系统下,安装mysql gem可能会遇到“file is not of required architecture”的错误。要解决这个问题,我们需要安装一个64位版本的MySQL,并将其路径传递给gem安装命令。希望这篇文章对你有所帮助!
极客教程