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
!