【问题标题】:rails server command unable to find librariesrails server 命令找不到库
【发布时间】:2012-02-01 20:14:04
【问题描述】:

我已经安装了 rails、mysql2 gem 和 mysql,并使用rails new simple_cms -d mysql 创建了一个名为 simple_cms 的项目。现在,当我执行rails server 启动WEBricks 时,我得到了这样的快乐:

/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle: dlopen(/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle, 9): Library not loaded: /usr/local/mysql/lib/libmysqlclient.16.dylib (LoadError)
  Referenced from: /Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
  Reason: image not found - /Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundle
    from /Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2.rb:9
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:68:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:66:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `each'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler/runtime.rb:55:in `require'
    from /Library/Ruby/Gems/1.8/gems/bundler-1.0.21/lib/bundler.rb:122:in `require'
    from /Users/tyre77/Dropbox/Broetry In Motion/RailsTestApp/simple_cms/config/application.rb:7
    from /Library/Ruby/Gems/1.8/gems/railties-3.2.1/lib/rails/commands.rb:53:in `require'
    from /Library/Ruby/Gems/1.8/gems/railties-3.2.1/lib/rails/commands.rb:53
    from /Library/Ruby/Gems/1.8/gems/railties-3.2.1/lib/rails/commands.rb:50:in `tap'
    from /Library/Ruby/Gems/1.8/gems/railties-3.2.1/lib/rails/commands.rb:50
    from script/rails:6:in `require'
    from script/rails:6

我已将 .bash_profile 更改为如下所示:(不确定是否相关)

PS1="\u \w$ "
alias ll="ls -lahG"

export PATH="/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/$PATH"


# include .bashrc if it exists
if [ -f $HOME/.bashrc ]; then
    . $HOME/.bashrc
fi

# startup virtualenv-burrito
if [ -f $HOME/.venvburrito/startup.sh ]; then
    . $HOME/.venvburrito/startup.sh
fi

见: Unable to start rails server 但我的 mysql 版本不同,即使将 0.2.6 更改为 0.3.11 也无法解决

【问题讨论】:

  • 你是如何安装 MySQL 的?另外,你为什么使用 Apple 的 Ruby 而不是 RVM 或 rbenv?
  • @MaurícioLinhares 我通过 dev.mysql.com 安装它并使用 DMG。
  • @MaurícioLinhares 为什么我不使用内置的 Ruby?

标签: mysql ruby ruby-on-rails-3 mysql2


【解决方案1】:

问题是 Ruby 找不到构建 MySQL gem 所需的库,有很多方法可以解决这个问题,但由于您似乎刚刚开始使用 Ruby,我认为准备好您的环境是值得的这样你就不会再看到这种东西了,步骤如下:

首先我建议你安装Homebrew,安装 Homebrew,安装 MySQL:

brew install mysql

这将在您的机器中安装 MySQL,包括在您需要时构建 MySQL gem 所需的库。

然后你应该安装RVM 来安装你的rubies(在安装RVM之前你需要运行brew install git)。安装 RVM 后,您就可以开始安装任何您想要的 rubies。

然后你问,为什么不能使用内置的 Ruby? Rails 将在 4.0 上放弃对 Ruby 1.8.* 分支的支持,社区通常使用 RVM(或 rbenv)来安装和管理安装到您机器上的 rubies。

【讨论】:

  • 太棒了!那么自制软件像 virtualenv 吗?如果我已经下载了 mysql DMG,是否需要再下载一次(听起来我需要 tar)?
  • 完全删除你安装的 MySQL 并让它与 homebrew 一起安装。 RVM 接近于 virtualenv。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多