如何解决这条Ruby错误信息?

时间:2015-03-12 18:09:45

标签: ruby

我想运行一个Ruby脚本(https://github.com/jjyg/rbircd)但是我收到以下错误消息:

root@li140-48:~/rbircd# ruby -r ircd.rb -e 'Ircd.run("ircd.conf", "irc_log.txt")'
/usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- ircd.rb (LoadError)
    from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'

我不确定这是什么告诉我,因为我对Ruby很新,但对我而言,它似乎抱怨没有ircd.rb这样的文件,但是这个文件就在那里。 / p>

我误解了它给出的错误信息吗?

ls rbircd/
  README
  crypto.rb
  ircd.conf
  ircd.rb   
  ircd_commands.rb
  oper_mkpass.rb

2 个答案:

答案 0 :(得分:0)

您需要执行以下操作:

[arup@Ruby]$ cat > so/a.rb
class Foo
  def foo
    12
  end
end
^C
[arup@Ruby]$ cat so/a.rb
class Foo
  def foo
    12
  end
end
[arup@Ruby]$ ruby -ra -e "puts Foo.new.foo"
 ..'require': cannot load such file -- a (LoadError)
[arup@Ruby]$ ruby -Iso -e 'p $LOAD_PATH.first'
"/home/arup/Ruby/so"
[arup@Ruby]$ ruby -Iso -e "puts Foo.new.foo"
-e:1:in '<main>': uninitialized constant Foo (NameError)
[arup@Ruby]$ ruby -Iso -ra -e "puts Foo.new.foo"
12

使用ruby -h阅读以下内容:

  • -rlibrary - 在执行脚本之前需要库

  • -Idirectory - 指定$ LOAD_PATH目录(可多次使用)

答案 1 :(得分:0)

限定您的图书馆路径

您需要使用带有-r标记的完整路径或相对路径。例如,以下内容应包含您的ircd.rb库:

ruby -r ./ircd.rb -e 'Ircd.run("ircd.conf", "irc_log.txt")'