Ruby奇怪的错误

每当我需要ruby或irb文件时,我都会收到此错误:

LoadError: no such file to load -- (insert any filename).rb from :29:in `require' from :29:in `require' from (irb):1 from /usr/bin/irb1.9.1:12:in `' 

它发生即使文件存在我使用ruby1.9.1据我所知,我还没有安装rubygems。 我在Ubuntu 10.10 Maverick Meerkat上运行。 请大家帮忙,这个问题很烦人! 在此先感谢,ell。

编辑:我忘了说,无论文件在哪里,即使它在同一目录中并且肯定存在,我总是得到这个错误。

Rubygems默认安装了ruby 1.9。

检查您尝试加载的文件是否位于变量$:中列出的目录中,或者在require中指定文件的完整路径。 或者,将目录添加到$:explicit:

 $: << '/my/lib/path' require 'mylib' 

在Ruby 1.9.2中,我猜你正在使用的版本,当前目录不再在$LOAD_PATH 。 如果require相对于require调用所在文件路径的文件,则应使用require_relative

如果你真的想要相对于当前目录的文件,那么你可以将当前目录添加到$LOAD_PATH如下所示:

 $LOAD_PATH << '.' 

但是,这种改变是有原因的,所以你不应该轻易做到这一点。 毕竟,这将使您的应用程序或多或少地随机运行,具体取决于您刚启动应用程序时刚刚进入的目录。 更糟糕的是,攻击者可以让他代表他执行任意代码,如果他可以让你从他控制的目录中运行应用程序。

你在用p0吗? 我在ruby-1.9.2-p0上得到了很多 。 换句话说,尝试做一个未链接(例如,不使用--with-baseruby--with-baseruby ./configure set

 curl ftp://ftp.ruby-lang.org//pub/ruby/1.9/ruby-1.9.2-p136.tar.gz | tar xz cd ruby-1.9.2-p136 ./configure make -j2 sudo make install 

从最开始。 对我来说,固定的syck不在那里(虽然有一个不同的问题:/ ), yaml ,甚至stringiozlib