【发布时间】:2023-04-05 20:06:01
【问题描述】:
新手提醒...
为了解决我的 rails webrick 服务器的问题(即启动它),我使用了旧的 Stackoverflow 答案 old answer 并执行了以下命令
sudo install_name_tool -change libmysqlclient.16.dylib /usr/local/mysql/lib/libmysqlclient.16.dylib /Library/Ruby/Gems/1.8/gems/mysql2-0.2.6/lib/mysql2/mysql2.bundle
但是,我忘记更改版本号。比如我的mysql是0.3.6(相对于命令中的0.2.6),也是libmysqlclient.18而不是.16。
现在当我尝试启动 Rails 服务器时,它说
Could not find gem 'mysql2 (~> 0.2.6)' in any of the gem sources listed in your Gemfile.
我试图用更新的版本重新运行这个命令,但它没有改变任何东西......事实上,它甚至没有询问我的 root 密码......有什么想法可以解决这个问题吗?
更新——这是我在gem list 时产生的宝石列表。第一个回答这个问题的人(在他的 cmets 中)建议我卸载 mysql .0.2.6 但从未安装过该 gem。当我执行上述name_tool 命令时,它告诉系统查找mysql 0.2.6,而我应该告诉它查找mysql2-0.3.6。
abstract (1.0.0)
actionmailer (3.0.9, 3.0.7)
actionpack (3.0.9, 3.0.7)
activemodel (3.0.9, 3.0.7)
activerecord (3.0.9, 3.0.7)
activeresource (3.0.9, 3.0.7)
activesupport (3.0.9, 3.0.7)
arel (2.0.10)
builder (2.1.2)
bundler (1.0.14)
erubis (2.6.6)
i18n (0.5.0)
mail (2.2.19)
mime-types (1.16)
mysql2 (0.3.6)
polyglot (0.3.1)
rack (1.2.3)
rack-mount (0.6.14)
rack-test (0.5.7)
rails (3.0.9, 3.0.7)
railties (3.0.9, 3.0.7)
rake (0.9.1)
rdoc (3.8)
rubygems-update (1.8.5)
thor (0.14.6)
treetop (1.4.9)
tzinfo (0.3.27)
更新 -- 按照 Eric Hu 的回答中的说明,当我从我的项目文件夹中运行 rails server 时得到了这个结果
2011-07-26 01:49:17 rails s
/Library/Ruby/Gems/1.8/gems/mysql2-0.2.11/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.2.11/lib/mysql2/mysql2.bundle, 9): Library not loaded: libmysqlclient.18.dylib (LoadError)
Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.2.11/lib/mysql2/mysql2.bundle
Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.2.11/lib/mysql2/mysql2.bundle
from /Library/Ruby/Gems/1.8/gems/mysql2-0.2.11/lib/mysql2.rb:9
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:68:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:68:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:66:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:66:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:55:in `each'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler/runtime.rb:55:in `require'
from /Library/Ruby/Gems/1.8/gems/bundler-1.0.14/lib/bundler.rb:120:in `require'
from /Users/michaelmitchell/Sites/simple_cms/config/application.rb:7
from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/commands.rb:28:in `require'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/commands.rb:28
from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/commands.rb:27:in `tap'
from /Library/Ruby/Gems/1.8/gems/railties-3.0.9/lib/rails/commands.rb:27
from script/rails:6:in `require'
from script/rails:6
更新——我按照 Eric 在评论中的建议做了捆绑列表
Gems included by the bundle:
* abstract (1.0.0)
* actionmailer (3.0.9)
* actionpack (3.0.9)
* activemodel (3.0.9)
* activerecord (3.0.9)
* activeresource (3.0.9)
* activesupport (3.0.9)
* arel (2.0.10)
* builder (2.1.2)
* bundler (1.0.14)
* erubis (2.6.6)
* i18n (0.5.0)
* mail (2.2.19)
* mime-types (1.16)
* mysql2 (0.2.11)
* polyglot (0.3.1)
* rack (1.2.3)
* rack-mount (0.6.14)
* rack-test (0.5.7)
* rails (3.0.9)
* railties (3.0.9)
* rake (0.9.2)
* rdoc (3.8)
* thor (0.14.6)
* treetop (1.4.9)
* tzinfo (0.3.29)
【问题讨论】:
-
我相信@robert_rouse 的意思是让您卸载您拥有的 mysql2 gem。运行
gem uninstall mysql2 -
好吧,我卸载了 mysql2 然后重新安装了它,我遇到了同样的问题。它仍在寻找 mysql2(0.2.6),即使安装了 mysql2 0.3.6 “在 Gemfile 中列出的任何 gem 源中都找不到 gem 'mysql2 (~> 0.2.6)'。”
-
你是用 gem install mysql2 安装的吗?您应该使用 bundle install (从项目文件夹的根目录)安装 Rails 项目 gem,在在 Gemfile 中指定它们之后
-
我想我刚刚做了 gem install mysql2 ...我是新手,对不起。我不明白你的其余评论
标签: ruby-on-rails rubygems terminal webrick