gpt4 book ai didi

macos - Rails 服务器无法在 OSX 10.6.5 上使用 rvm 和 ruby​​ 1.9.2-p0 启动 mysql2

转载 作者:行者123 更新时间:2023-12-03 07:36:21 24 4
gpt4 key购买 nike

启动 Rails 服务器时出现以下错误:

$ rails server
/Users/ssmith/.rvm/gems/ruby-1.9.2-p0/gems/mysql2-0.2.6/lib/mysql2.rb:7:in `require': dlopen(/Users/ssmith/.rvm/gems/ruby-1.9.2-p0/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.16.dylib (LoadError)
Referenced from: /Users/ssmith/.rvm/gems/ruby-1.9.2-p0/gems/mysql2- 0.2.6/lib/mysql2/mysql2.bundle
Reason: image not found - /Users/ssmith/.rvm/gems/ruby-1.9.2-p0/gems/mysql2-
0.2.6/lib/mysql2/mysql2.bundle

我在rvm use ruby​​-1.9.2-p0命令后使用以下命令安装了mysql2:

$ gem install mysql2 -- --with-mysql-dir=/usr/local/mysql --with-mysql-config=/usr/local/mysql/bin/mysql_config
Building native extensions. This could take a while...
Successfully installed mysql2-0.2.6
1 gem installed
Installing ri documentation for mysql2-0.2.6...
Enclosing class/module 'mMysql2' for class Client not known
Installing RDoc documentation for mysql2-0.2.6...
Enclosing class/module 'mMysql2' for class Client not known

我的 Gemfile 和 database.yml 文件中都有 mysql2,并且捆绑安装顺利完成

$ bundle show mysql2
/Users/ssmith/.rvm/gems/ruby-1.9.2-p0/gems/mysql2-0.2.6

我知道 Rails 服务器错误是由于它不知道 OSX 上的 mysql_config 位置,但是在 gem install 上我指定了正确的位置。然而,RVM 的 gem 似乎并不尊重 mysql_config 位置。

谁有办法解决这个问题吗?

最佳答案

问题来自于 mysql2 gem 缺少 MySQL 的动态库。

install_name_tool ...更干净的解决方案需要更新您的DYLD_LIBRARY_PATH以向其中添加MySQL库。为此,请更新您的 ~/.bash_profile 以添加 MySQL 库文件夹:

导出 DYLD_LIBRARY_PATH="/usr/local/mysql/lib:$DYLD_LIBRARY_PATH"

注意:您可能需要根据安装更新 MySQL 位置

这应该保持干净,但也确保任何需要 MySQL 动态库的 gem 或代码都能找到它们。

引用:http://lightyearsoftware.com/2011/02/mysql-5-5-on-mac-os-x/

2012 年 7 月引用更新:OS X 10.8 中的更改使上述简单方法变得不那么优雅。如果设置该变量,则每次运行 setuid 或 setgid 程序时,您都会在 stderr 上收到此警告:

dyld: DYLD_ environment variables being ignored because main executable (...) is setuid or setgid

使用 Phusion Passenger Standalone 的 Ruby 开发人员每五秒就会在控制台中看到此消息。它变得非常令人恼火,速度非常快。

我已向 Apple 提交了一个错误。 OpenRadar 也有。

同时,还有第三种方法可以修复客户端库路径问题,不需要设置 DYLD_LIBRARY_PATH(解决此 10.8 问题)或使用 install_name_tool 破解 .bundle 文件:

$ brew install mysql

关于macos - Rails 服务器无法在 OSX 10.6.5 上使用 rvm 和 ruby​​ 1.9.2-p0 启动 mysql2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4512362/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com