ruby-on-rails - 卸载并重新安装 Ruby 和 Rails 后,为什么找不到它?

标签 ruby-on-rails ruby rvm rbenv

几天来,我一直在为 Rails 应用程序苦苦挣扎。我尽我所能,问了一些关于 SO 的问题,并试图收集所有我能收集到的信息和技巧。总结如下:

几天前,当我运行 rails s 时,我得到了以下信息,我知道我删除了 ruby​​-2.0.0-p0:

`require': dlopen(/Users/git/gitlab/vendor/bundle/ruby/2.0.0/gems/posix-spawn-0.3.6/lib/posix_spawn_ext.bundle, 9): Library not loaded: /home/.rvm/rubies/ruby-2.0.0-p0/lib/libruby.2.0.0.dylib (LoadError)
      Referenced from: /Users/git/gitlab/vendor/bundle/ruby/2.0.0/gems/posix-spawn-0.3.6/lib/posix_spawn_ext.bundle
      Reason: image not found - /Users/git/gitlab/vendor/bundle/ruby/2.0.0/gems/posix-spawn-0.3.6/lib/posix_spawn_ext.bundle

有人告诉我这可能与 RVM 有关。我从 RVM 切换到 rbenv,然后卸载/重新安装了 Ruby(不是内置的 OS X)和 Rails,在运行 rails s 时得到了相同的消息。

然后我卸载并完全删除了 Macports 并再次尝试使用 rbenv 并得到相同的消息。

我尝试将 /home/.rvm/rubies/ruby-2.0.0-p0/lib/libruby.2.0.0.dylib 符号链接(symbolic link)到 /usr/local,我收到了同样的消息。

我试着尝试导出 DYLD_LIBRARY_PATH 但我得到了相同的消息。

我卸载了 rbenv、Rails,然后返回到 Macports 和 RVM,但我仍然收到相同的消息。

有人可以帮忙吗?

我正在使用 OS X。

ruby -v 输出 ruby 2.0.0p195(2013-05-14 修订版 40734)[x86_64-darwin12.4.0] rails -v 输出 Rails 3.2.13

我删除了 ruby​​-2.0.0-p0。


编辑:

grep rvm ~/.bashrc 输出:

PATH=$HOME/.rvm/bin:$PATH # Add RVM to PATH for scripting

grep rvm ~/.bash_profile 输出:

[[ -s "$HOME/.rvm/scripts/rvm" ]] && source "$HOME/.rvm/scripts/rvm" # Load RVM into a shell session *as a function*

echo $PATH 输出:

/home/.rvm/gems/ruby-2.0.0-p195/bin:/home/.rvm/gems/ruby-2.0.0-p195@global/bin:/home/.rvm/rubies/ruby-2.0.0-p195/bin:/home/.rvm/bin:/opt/local/bin:/opt/local/sbin:/Applications/MAMP/bin/php/php5.4.4/bin:/usr/local/ActivePerl-5.16/site/bin:/usr/local/ActivePerl-5.16/bin:/usr/local/mysql/bin:/sw/bin:/sw/sbin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/usr/local/ant/bin:/usr/local/mongodb/bin:/home/bin:/Users/otherhome/Desktop/Sites/apache-ant/bin:/usr/local/bro/bin:/opt/bro/bin

gem env 输出:

RubyGems Environment:
  - RUBYGEMS VERSION: 2.0.3
  - RUBY VERSION: 2.0.0 (2013-05-14 patchlevel 195) [x86_64-darwin12.4.0]
  - INSTALLATION DIRECTORY: /home/.rvm/gems/ruby-2.0.0-p195
  - RUBY EXECUTABLE: /home/.rvm/rubies/ruby-2.0.0-p195/bin/ruby
  - EXECUTABLE DIRECTORY: /home/.rvm/gems/ruby-2.0.0-p195/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-12
  - GEM PATHS:
     - /home/.rvm/gems/ruby-2.0.0-p195
     - /home/.rvm/gems/ruby-2.0.0-p195@global
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/

rvm info 输出:

system:
    uname:       "Darwin MacBook-Pro-de-moi.local 12.4.0 Darwin Kernel Version 12.4.0: Wed May  1 17:57:12 PDT 2013; root:xnu-2050.24.15~1/RELEASE_X86_64 x86_64"
    system:      "osx/10.8/x86_64"
    bash:        "/bin/bash => GNU bash, version 3.2.48(1)-release (x86_64-apple-darwin12)"
    zsh:         "/bin/zsh => zsh 4.3.11 (i386-apple-darwin12.0)"

  rvm:
    version:      "rvm 1.21.7 () by Wayne E. Seguin <wayneeseguin@gmail.com>, Michal Papis <mpapis@gmail.com> [https://rvm.io/]"
    updated:      "13 hours 8 minutes 18 seconds ago"

  ruby:
    interpreter:  "ruby"
    version:      "2.0.0p195"
    date:         "2013-05-14"
    platform:     "x86_64-darwin12.4.0"
    patchlevel:   "2013-05-14 revision 40734"
    full_version: "ruby 2.0.0p195 (2013-05-14 revision 40734) [x86_64-darwin12.4.0]"

  homes:
    gem:          "/home/.rvm/gems/ruby-2.0.0-p195"
    ruby:         "/home/.rvm/rubies/ruby-2.0.0-p195"

  binaries:
    ruby:         "/home/.rvm/rubies/ruby-2.0.0-p195/bin/ruby"
    irb:          "/home/.rvm/rubies/ruby-2.0.0-p195/bin/irb"
    gem:          "/home/.rvm/rubies/ruby-2.0.0-p195/bin/gem"
    rake:         "/home/.rvm/gems/ruby-2.0.0-p195@global/bin/rake"

  environment:
    PATH:         "/home/.rvm/gems/ruby-2.0.0-p195/bin:/home/.rvm/gems/ruby-2.0.0-p195@global/bin:/home/.rvm/rubies/ruby-2.0.0-p195/bin:/home/.rvm/bin:/opt/local/bin:/opt/local/sbin:/Applications/MAMP/bin/php/php5.4.4/bin:/usr/local/ActivePerl-5.16/site/bin:/usr/local/ActivePerl-5.16/bin:/usr/local/mysql/bin:/sw/bin:/sw/sbin:/usr/local/bin:/usr/local/sbin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/git/bin:/usr/local/ant/bin:/usr/local/mongodb/bin:/home/bin:/Users/otherhome/Desktop/Sites/apache-ant/bin:/usr/local/bro/bin:/opt/bro/bin"
    GEM_HOME:     "/home/.rvm/gems/ruby-2.0.0-p195"
    GEM_PATH:     "/home/.rvm/gems/ruby-2.0.0-p195:/home/.rvm/gems/ruby-2.0.0-p195@global"
    MY_RUBY_HOME: "/home/.rvm/rubies/ruby-2.0.0-p195"
    IRBRC:        "/home/.rvm/rubies/ruby-2.0.0-p195/.irbrc"
    RUBYOPT:      ""
    gemset:       ""

which ruby​​ 输出:

/home/.rvm/rubies/ruby-2.0.0-p195/bin/ruby

最佳答案

您的 Rails 认为它​​应该使用 --deployment/或 --path 来自 bundler - 这是 gems 的路径:/Users/git/gitlab/vendor/bundle/ruby/2.0.0/gems,不幸的是,bundler 不够智能,无法正确处理 ruby​​ 中的更改,您需要删除整个目录 rm -rf/Users/git/gitlab/vendor/bundlebundle install 再次。

我建议您停止使用 --deployment/或 --path bundler 中的标志,删除目录 rm -rf/Users/git/gitlab/vendor/bundle, rm -rf/Users/git/gitlab/.bundle/ 然后在gemset中安装gems,这样就不会再出现这个问题了。

如果是 capistrano 部署,请为 bundler/capistrano 设置此标志:

set :bundle_dir, ''
set :bundle_flags, '--system --quiet'

防止将 --deployment--path 标志与 bundler 一起使用。

关于ruby-on-rails - 卸载并重新安装 Ruby 和 Rails 后,为什么找不到它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17556581/

相关文章:

mysql - 如何使用 Controller 中给定的凭据检查数据库连接

html - Firefox 在打印时在大 div block 之前添加分页符

javascript - "ActionController::UnknownFormat"作为将 AJAX 与 format.js 结合使用的结果

ruby - 使用 `Object#send` 方法作为最佳实践

ruby - 将 rvm 与独立的 ruby​​ 脚本一起使用

ruby-on-rails - 使用 capstrano 部署时如何禁用 rvm 输出?

ruby-on-rails - 尝试在 Windows 上通过 Cygwin 调用 rails 命令时出错(通过 railsinstaller 安装)

ruby-on-rails - 使用 RSpec 和不同的路由名称测试 Ruby-on-Rails Controller

ruby - 实例变量声明

ruby - 如何使用rvm将rubygems-1.4.2安装到ruby 1.8.7?