簡體   English   中英

紅寶石奇怪的錯誤

[英]Ruby Strange Error

每當我需要使用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上運行。 請幫忙,這個問題很煩人! 預先感謝,ell。

編輯:我忘了說,無論文件在哪里,即使它在同一目錄中並確定存在,我也總是收到此錯誤。

在Ruby 1.9.2(我猜是您正在使用的版本)中,當前目錄不再位於$LOAD_PATH 如果要相對於require調用所在文件的路徑來require文件,則應改用require_relative

如果您確實 require相對於當前目錄的文件,則可以將當前目錄添加到$LOAD_PATH如下所示:

$LOAD_PATH << '.'

但是,進行此更改是有原因的,因此您不應輕易做到這一點。 畢竟,這將使您的應用程序或多或少隨機地運行,這取決於啟動應用程序時恰好位於的目錄。 更糟糕的是,如果攻擊者可以使您從自己控制的目錄中運行應用程序,則可以使您代表他執行任意代碼。

Rubygems默認與ruby 1.9一起安裝。

檢查您要加載的文件是否位於變量$:中列出的目錄中,或者在require中指定文件的完整路徑。 或者,將目錄添加到$:中:

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

您正在使用p0嗎? 我在ruby-1.9.2-p0上得到了很多 嘗試執行未鏈接的(例如,不使用--with-baseruby--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 ,甚至是stringiozlib

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM