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
,甚至stringio
和zlib
!