2012-02-27 128 views

回答

61

這取決於你的平臺上,如何Ruby的編譯,所以不存在「的」答案。您可以通過運行發現:

ruby -e 'puts $:' 

一般,不過,你有標準的,站點和供應商Ruby庫的路徑,包括根據每一個拱形,版本,和一般的目錄。

+3

有一個「了」的回答來指定。 $:或$ LOAD_PATH變量確實給出了搜索的地點的完整列表。你自己記下了一個簡單而乾淨的方式來打印出來...... – Perry 2012-02-28 00:04:29

+2

啊。取決於你如何閱讀這個問題:Ruby的外觀有「答案」,但是如果你運行不同的Ruby或在不同的平臺上,它會改變。例如:MRI 1.8.7和REE將使用不同的路徑,或者Darwin和Linux MRI使用微妙的不同路徑。我不確定哪個,所以對這個答案感覺更舒服。 – 2012-02-28 00:07:11

+2

這已經足夠了,儘管我猜測提問者只是想知道如何找出負載路徑,而不是假設它在各個平臺上是不變的。 – Perry 2012-02-28 00:13:33

1

要求(串)=> true或false

紅寶石試圖加載庫命名爲字符串,返回如果成功的話屬實。如果文件名不能解析爲絕對路徑,它將在$:中列出的目錄中搜索。如果文件的擴展名爲「.rb」,則將其作爲源文件加載;如果擴展名是「.so」,「.o」或「.dll」,或者默認共享庫擴展名是在當前平臺上,那麼Ruby會將共享庫作爲Ruby擴展名加載。否則,Ruby會嘗試在名稱中添加「.rb」,「.so」等。加載的功能的名稱將添加到$:中的數組中。

22

Ruby會查找$LOAD_PATH數組中指定的所有路徑。

您還可以添加要搜索的目錄,像這樣:

$LOAD_PATH.unshift File.expand_path('../path/from/this/file/to/another/directory', __FILE__) 
+0

正是我需要的。謝謝! – Kilhoffer 2013-06-08 19:01:12

7

其他路徑可以通過設置RUBYLIB環境變量

相關問題