2012-02-27 4 views

답변

61

그것은 당신의 플랫폼에 따라 달라집니다, 어떻게 루비 컴파일, 그래서 "는"대답은 여기에 없다. 당신은 실행하여 확인할 수 있습니다 :

ruby -e 'puts $:' 

일반적으로하지만, 각 아래 아치, 버전 및 일반 디렉토리를 포함한 표준, 사이트 및 공급 업체 루비 라이브러리 경로를 보유하고 있습니다.

+3

변수 RUBYLIB 환경을 설정하여 지정할 수 있습니다. $ : 또는 $ LOAD_PATH 변수는 실제로 검색된 장소의 전체 목록을 제공합니다. 너 자신은 그걸 인쇄 할 수있는 간단하고 깨끗한 방법을 언급했다. ... – Perry

+2

Ah. 당신이 질문을 읽는 방식에 달려 있습니다.이 루비가 보이는 곳에 대한 "답"이 있지만, 다른 루비를 실행하거나 다른 플랫폼에서 실행하면 바뀔 것입니다. 예 : MRI 1.8.7과 REE는 다른 경로를 사용하거나 Darwin과 Linux MRI는 미묘하게 다른 경로를 사용합니다. 나는이 대답에 어느 것이 편안함을 느꼈는지 확실하지 않았다. –

+2

충분히 사실이지만, 질문자가 단순히로드 경로가 플랫폼간에 일정하다고 가정하는 대신로드 경로를 찾는 방법을 알고 싶다고 추측하고 있습니다. – Perry

1

가 필요합니다 (문자열) => true 또는 false는

루비가 성공적으로 실행되면 true를 반환 라이브러리라는 문자열을로드하려고합니다. 파일 이름이 절대 경로로 해석되지 않으면 $ :에 나열된 디렉토리에서 검색됩니다. 파일의 확장자가 ".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

7

추가 경로가 "는"응답이

관련 문제