【发布时间】:2011-03-24 23:07:55
【问题描述】:
当我尝试加载 Rails 控制台(或加载运行 Apache/Passenger 的网站)时,我收到一个错误,提示它无法加载我已经安装的 gem:
> 脚本/控制台 加载开发环境(Rails 2.3.8) 没有要加载的文件——authlogic /usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' /usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `require' /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require' /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in' /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require' /var/lib/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:215:in `load' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:307:in `load_gems' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:307:in `each' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:307:in `load_gems' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:164:in `进程' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in `send' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in `run' /home/nblade/vipreblade/src/console/config/environment.rb:11 /usr/lib/ruby/1.8/irb/init.rb:254:in `require' /usr/lib/ruby/1.8/irb/init.rb:254:in `load_modules' /usr/lib/ruby/1.8/irb/init.rb:252:in `每个' /usr/lib/ruby/1.8/irb/init.rb:252:in `load_modules' /usr/lib/ruby/1.8/irb/init.rb:21:in `setup' /usr/lib/ruby/1.8/irb.rb:54:in `start' /usr/bin/irb:13 没有要加载的文件——机械师 /usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' /usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `require' /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require' /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in' /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require' /var/lib/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:215:in `load' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:307:in `load_gems' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:307:in `each' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:307:in `load_gems' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:164:in `进程' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in `send' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in `run' /home/nblade/vipreblade/src/console/config/environment.rb:11 /usr/lib/ruby/1.8/irb/init.rb:254:in `require' /usr/lib/ruby/1.8/irb/init.rb:254:in `load_modules' /usr/lib/ruby/1.8/irb/init.rb:252:in `每个' /usr/lib/ruby/1.8/irb/init.rb:252:in `load_modules' /usr/lib/ruby/1.8/irb/init.rb:21:in `setup' /usr/lib/ruby/1.8/irb.rb:54:in `start' /usr/bin/irb:13 没有要加载的文件——authlogic /usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' /usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `require' /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require' /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in' /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require' /var/lib/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:215:in `load' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:307:in `load_gems' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:307:in `each' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:307:in `load_gems' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:169:在“进程”中 /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in `send' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in `run' /home/nblade/vipreblade/src/console/config/environment.rb:11 /usr/lib/ruby/1.8/irb/init.rb:254:in `require' /usr/lib/ruby/1.8/irb/init.rb:254:in `load_modules' /usr/lib/ruby/1.8/irb/init.rb:252:in `每个' /usr/lib/ruby/1.8/irb/init.rb:252:in `load_modules' /usr/lib/ruby/1.8/irb/init.rb:21:in `setup' /usr/lib/ruby/1.8/irb.rb:54:in `start' /usr/bin/irb:13 没有要加载的文件——机械师 /usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require' /usr/lib/ruby/1.8/rubygems/custom_require.rb:36:in `require' /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require' /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:521:in `new_constants_in' /var/lib/gems/1.8/gems/activesupport-2.3.8/lib/active_support/dependencies.rb:156:in `require' /var/lib/gems/1.8/gems/rails-2.3.8/lib/rails/gem_dependency.rb:215:in `load' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:307:in `load_gems' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:307:in `each' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:307:in `load_gems' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:169:在“进程”中 /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in `send' /var/lib/gems/1.8/gems/rails-2.3.8/lib/initializer.rb:113:in `run' /home/nblade/vipreblade/src/console/config/environment.rb:11 /usr/lib/ruby/1.8/irb/init.rb:254:in `require' /usr/lib/ruby/1.8/irb/init.rb:254:in `load_modules' /usr/lib/ruby/1.8/irb/init.rb:252:in `每个' /usr/lib/ruby/1.8/irb/init.rb:252:in `load_modules' /usr/lib/ruby/1.8/irb/init.rb:21:in `setup' /usr/lib/ruby/1.8/irb.rb:54:in `start' /usr/bin/irb:13 缺少这些必需的宝石: 授权逻辑 机械师 你正在运行: /usr/bin/ruby1.8 上的 ruby 1.8.7.249 /var/lib/gems/1.8 中的 rubygems 1.3.5 运行 rake gems:install 来安装缺少的 gem。所以,我按照以下说明安装 gems:
> sudo rake 宝石:安装 --trace (在 /home/nblade/vipreblade/src/console 中) 弃用警告:vendor/plugins/delayed_job/tasks、vendor/plugins/easy-fckeditor/tasks、vendor/plugins/jrails/tasks 和 vendor/plugins/restful_authentication/tasks 中的 Rake 任务已弃用。请改用 lib/tasks。 (从 /var/lib/gems/1.8/gems/rails-2.3.8/lib/tasks/rails.rb:10 调用) ** 调用 gems:install (first_time) ** 调用 gems:base (first_time) ** 执行 gems:base ** 调用环境(first_time) ** 执行环境 ** 执行 gems:install它没有安装任何东西,所以我检查了我的 gem 环境以获得良好的测量:
> 宝石环境 RubyGems 环境: - 红宝石版本:1.3.5 - 红宝石版本:1.8.7(2010-01-10 补丁级别 249)[i486-linux] - 安装目录:/var/lib/gems/1.8 - 红宝石可执行文件:/usr/bin/ruby1.8 - 可执行目录:/var/lib/gems/1.8/bin - 红宝石平台: - 红宝石 - x86-linux - 宝石路径: - /var/lib/gems/1.8 - 宝石配置: - :update_sources => 真 - :详细 => 真 - :基准 => 假 - :回溯 => 假 - :bulk_threshold => 1000 - “宝石” => “--no-ri --no-rdoc” - :sources => ["http://gemcutter.org", "http://gems.github.com"] - 远程资源: - http://gemcutter.org - http://gems.github.com > 哪颗宝石 /usr/bin/gem > ls -al /usr/bin/gem lrwxrwxrwx 1 root root 21 2010-07-14 11:29 /usr/bin/gem -> /etc/alternatives/gem > ls -al /etc/alternatives/gem lrwxrwxrwx 1 root root 15 2010-07-14 11:29 /etc/alternatives/gem -> /usr/bin/gem1.8 > ls -al /usr/bin/gem1.8 -rwxr-xr-x 1 根 545 2009-10-09 17:51 /usr/bin/gem1.8 > 回声 $PATH /var/lib/gems/1.8/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games > 回声 $GEM_PATH /var/lib/gems/1.8: > 哪个红宝石 /usr/bin/红宝石 > ls -al /usr/bin/ruby lrwxrwxrwx 1 root root 7 2010-07-13 19:54 /usr/bin/ruby -> ruby1.8 > ls -al /usr/bin/ruby1.8 -rwxr-xr-x 1 root root 5488 2010-03-19 10:53 /usr/bin/ruby1.8 > /usr/bin/ruby -v ruby 1.8.7 (2010-01-10 补丁级别 249) [i486-linux]我还验证了宝石已安装:
> ls -al /var/lib/gems/1.8/gems | grep 授权逻辑 drwxr-xr-x 7 根根 4096 2010-08-03 12:14 authlogic-2.1.5 > ls -al /var/lib/gems/1.8/gems | grep 机械师 drwxr-xr-x 4 根根 4096 2010-08-03 12:14 机械师-1.0.6所以,很明显我做错了什么,但我不确定还有什么要检查的。有什么建议吗?
谢谢。
【问题讨论】:
-
你可能安装了多个版本的 Ruby 吗?
-
这是我考虑的,所以我仔细检查了:> which ruby /usr/bin/ruby > ls -al /usr/bin/ruby lrwxrwxrwx 1 root root 7 2010-07-13 19:54 /usr/bin/ruby -> ruby1.8 > ls -al /usr/bin/ruby1.8 -rwxr-xr-x 1 root root 5488 2010-03-19 10:53 /usr/bin/ruby1.8
-
谢谢!在我的情况下,gem 更新后突然 gem env 显示
INSTALLATION DIRECTORY: /usr/lib/ruby/gems/1.9.1要么从 /var/lib/gems/1.9.1/gems/ 更改,要么突然丢失。用软链接修补。在我安装 100 个之前,gem1.9.1 list是空的,我所有的脚本都失败了。
标签: ruby-on-rails ruby console rubygems gem