Ruby Странная Ошибка

Всякий раз, когда мне требуется файл в ruby ​​или irb, я получаю эту ошибку:

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

Это происходит, даже если файл существует, я использую ruby1.9.1 и, насколько мне известно, я не установил rubygems. Я работаю на Ubuntu 10.10 Maverick Meerkat. Пожалуйста, помогите, эта проблема очень раздражает! Заранее спасибо, эл.

РЕДАКТИРОВАТЬ: я забыл сказать, что независимо от того, где файл находится, даже если он находится в том же каталоге и определенно существует, я всегда получаю эту ошибку.

3 ответа

Решение

Rubygems устанавливается с ruby ​​1.9 по умолчанию.

Убедитесь, что файл, который вы пытаетесь загрузить, находится в каталоге, указанном в переменной $: или укажите полный путь к файлу в файле require. Или добавьте каталог в $: явно:

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

В Ruby 1.9.2, которая, я думаю, является версией, которую вы используете, текущий каталог больше не находится в $LOAD_PATH, Если хотите require файлы относительно пути к файлу, который require вызов в, вы должны использовать require_relative вместо.

Если вы действительно хотите require файлы относительно текущего каталога, то вы можете добавить текущий каталог в $LOAD_PATH вот так:

$LOAD_PATH << '.'

Тем не менее, это изменение было сделано по причине, поэтому вы не должны делать это легко. В конце концов, это заставит ваше приложение вести себя более или менее случайным образом, в зависимости от того, в каком каталоге вы оказались, когда запускали приложение. Хуже того, злоумышленник может заставить вас выполнить произвольный код от его имени, если он может заставить вас запустить приложение из каталога, находящегося под его контролем.

Вы используете p0? Я получил это много на ruby-1.9.2-p0, Попробуйте сделать несвязанный (например, не используя --with-baseruby) ./configure установить, другими словами

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!

Другие вопросы по тегам