我有一些问题时,试图安装mysql2宝石为Rails。当我试图通过运行bundle install或gem install mysql2来安装它时,它会给我以下错误:

安装mysql2错误:错误:未能建立gem本地扩展。

我如何解决这个问题并成功安装mysql2?


当前回答

我也得到了这个错误。通过安装开发包来解决。我使用arch,它是:

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用户的更新解决方案。我在跑步

Windows 10

MySql 8.0.30

Ruby 3.1.2

我的Ruby版本来自rubyinstaller.org,包含了MYSYS开发工具包

我下载了一个MariaDB C连接器库msi安装文件v3.1.17,运行它,它在程序文件的目录中安装了相关文件。我把这个目录复制到另一个位置,重命名它,这样它就没有任何空格,然后运行命令:

gem install mysql2 --platform=ruby -- --with-mysql-dir="c:/my-mariadb-connector-path-with-no-spaces"

这给了我一颗有用的宝石。

这是该库的特定版本,而不是最新的版本。在MariaDB网站上寻找下载选项有点令人困惑,所以这里是直接下载链接。

https://dlm.mariadb.com/2319542/Connectors/c/connector-c-3.1.17/mariadb-connector-c-3.1.17-win64.msi

在我走到这一步之前,我尝试了好几种方法,但都没有奏效。我在下面列出了它们作为背景信息,但如果你感兴趣的只是一个可行的解决方案,那么你现在可以停止阅读了。

一些来源建议,如果你安装了MYSYS devkit,你可以用下面的命令构建gem:

ridk exec gem install mysql2 --platform=ruby -- --use-system-libraries

这并不适合我。

您可能还看到过建议下载MySQl连接器库的归档版本(6.1)。我尝试了这个,gem编译,但当我尝试启动我的应用程序时,我得到了一个错误消息:“不正确的MySQL客户端库版本!这个gem是为6.1.11编译的,但客户端库是10.5.5。”

在MySQL V8及以上版本中,C库不再是可选的额外选项,而是包含在主安装中。我找到了相关文件,将它们复制到一个没有空格的目录路径,并尝试了通常的命令。宝石再次编译,但应用程序不会启动。这次错误消息显示“此gem是为8.0.30编译的,但客户端库是10.5.5”

我还尝试了MariaDB库的最新版本。错误消息说该gem是为10.6.8编译的。你需要上面描述的特定版本,是的,即使你使用的是Oracle公司分发的“原始”MySql,它也确实是你需要的MariaDB库

在Ubuntu/Debian和其他使用aptitude的发行版上:

sudo apt-get install libmysql-ruby libmysqlclient-dev

libmysql-ruby包已经被ruby-mysql所取代。这就是我找到解决办法的地方。

如果上面的命令不能工作,因为libmysql-ruby无法找到,下面的命令应该足够了:

sudo apt-get install libmysqlclient-dev

在使用yum的Red Hat/CentOS和其他发行版上:

sudo yum install mysql-devel

在Mac OS X和Homebrew上:

brew install mysql

你试过用

 gem install mysql -- --with-mysql-lib=/usr/lib/mysql/lib 

来指定基本目录的位置以及完成gem安装所必需的MySQL库的路径?

来源: MySQL Gem安装错误:未能建立Gem本地扩展 MySQL论坛::Ruby::帮助安装MySQL绑定Ruby

如果您正在使用yum,请尝试:

sudo yum install mysql-devel

在升级到Mac OS X Mountain Lion后尝试安装mysql2 gem时,出现“您必须先安装开发工具”错误。显然,执行此升级将删除命令行编译器。

修复:

我卸载了旧版本的Xcode(在/Developer/Library中运行卸载脚本)。然后删除“/Developer”目录。 去AppStore下载Xcode。 打开Xcode,进入首选项->下载,安装命令行工具。