Ruby gem环境 issue-LoadError: no such file to load -- robots[英] Ruby gem environment issue - LoadError: no such file to load -- robots

本文是小编为大家收集整理的关于Ruby gem环境 issue-LoadError: no such file to load -- robots的处理方法,想解了Ruby gem环境 issue-LoadError: no such file to load -- robots的问题怎么解决?Ruby gem环境 issue-LoadError: no such file to load -- robots问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我正在尝试使用 anemone gem 编写爬虫,这需要 robots gem.无论出于何种原因,机器人绝对不会包括在内.这是我的一些环境信息:

$ gem list -d robots

*** LOCAL GEMS ***

robots (0.10.1)
    Author: Kyle Maxwell
    Homepage: http://github.com/fizx/robots
    Installed at: /usr/local/lib/ruby/gems/1.9.1

    Simple robots.txt parser

$ gem env
RubyGems Environment:
  - RUBYGEMS VERSION: 1.8.10
  - RUBY VERSION: 1.9.2 (2011-02-18 patchlevel 180) [x86_64-darwin10.7.0]
  - INSTALLATION DIRECTORY: /usr/local/lib/ruby/gems/1.9.1
  - RUBY EXECUTABLE: /usr/local/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/local/bin
  - RUBYGEMS PLATFORMS:
    - ruby
    - x86_64-darwin-10
  - GEM PATHS:
     - /usr/local/lib/ruby/gems/1.9.1
     - /Users/ryan/.gem/ruby/1.9.1
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :benchmark => false
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - http://rubygems.org/

$ gem which robots
/usr/local/lib/ruby/gems/1.9.1/gems/robots-0.10.1/lib/robots.rb

有什么想法吗?所有其他宝石都正确加载,我以前从未遇到过这个问题.请注意,我使用的是 ruby​​ 版本 1.9,因此隐式需要 ruby​​gems.添加

require 'rubygems'

...到前面的脚本返回 false,因为该文件已经包含在内,并且对这种情况没有帮助.有什么想法吗?

编辑:发布失败代码的示例.请注意,返回 false 的 ruby​​gems 并不意味着 ruby​​gems 无法加载——而是它已经被加载.看到这篇文章:http://www.ruby-forum.com/topic/157442

$ irb
irb(main):001:0> require 'rubygems'
=> false
irb(main):002:0> require 'active_record'
=> true
irb(main):003:0> require 'mechanize'
=> true
irb(main):004:0> require 'robots'
LoadError: no such file to load -- robots
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `require'
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require'
    from /usr/local/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
    from (irb):4
    from /usr/local/bin/irb:12:in `<main>'
irb(main):005:0> 

推荐答案

gem 好像是用错误的权限创建的;在 github 上为此打开了一个错误.

更改权限

sudo chmod a+r /usr/local/lib/ruby/gems/1.9.1/gems/robots-0.10.1/lib/robots.rb

应该修复它,但要注意其他权限问题.你可能会更好

sudo chmod -R a+r /usr/local/lib/ruby/gems/1.9.1/gems/robots-0.10.1

递归地使 gem 中的所有文件可读.

robots.rb 文件(和其他一些文件)正在以 -rw-rw---- 权限安装,因此任何使用本地安装 rvm 或类似安装 gems 的本地用户都不会受到此影响.

本文地址:https://www.itbaoku.cn/post/786634.html