2012-02-27 135 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环境变量

相关问题