2009-07-21 2 views
1

나는 Leopard를 실행하는 iMac에서 루비의 기초를 배우기 시작했습니다. 내 시스템에 지금ruby가 require tk 명령문에서 tk를 볼 수있게하는 방법은 무엇입니까?

버전은 최신 "곡괭이"책에 해당하기 때문에 독립적으로도 (MacPorts를 통해) 루비 1.9를 설치, 루비 1.8.6

입니다하지만./옵션/지역/bin에

(내가 MacPorts를 사용하는 경우가 설치된)

는/usr/bin에/루비 1.9.1에 대한 루비 설치 위치는 루비 1.8.6의 설치 위치는 내 문제는 내가 명령 루비 HelloWorld.rb I를 호출 할 때 파일 HelloWorld.rb

require 'tk' 
root = TkRoot.new { title "Hello world" } 
TkLabel.new(root) do 
    text 'Hello world!' 
end 
Tk.mainloop 

에 매우 표준 예 다음 의 요구 'TK'문에 관련된 오류 메시지, 함께 할 수있다 내가 기대하는 결과를 얻으십시오. 프로그램이 실행됩니다. 내가 명령 ruby1.9의 HelloWorld.rb 를 호출 할 때

그러나, 나는 오류 메시지가 얻을

HelloWorld.rb : 1 : 나는 웹과 다양한 게시물을 검색 한

'require': no such file to load -- tk (LoadError) from HelloWorld.rb:1:in에서 그러나 지금까지는 이 ruby1.9가 tk를 요구할 때 tk 을 찾을 수 있도록하기 위해서 무엇이 필요한지에 대한 명확한 설명을 찾지 못했습니다.

gem1.9 명령 (/ opt/local/bin에도 있음) 실행과 관련이 있습니까?

내가 tk 위 설치 gem1.9 는 sudo를 호출 시도했지만 그 오류 메시지 오류가 발생합니다 : 로컬 또는 어떤 제안이 크게 감사하겠습니다 저장소

에 보석 TK를 찾을 수 없습니다.

+0

내가 "맥"을 추가 좋을 것 및 "tk"태그도이 질문에 사용됩니다. – statenjason

답변

1

./configure 호출에서 with-tcltk-framework 플래그를 사용하여 루비를 컴파일해야합니다. 자세한 내용은 TkDocs - Installing Tk 페이지에서 확인할 수 있습니다. 첫 번째 섹션은 Mac OS X이며 그 옆에있는 Ruby 로고가있는 부분 만 필요한 것입니다.

웹 사이트에서 Ruby 1.9.x for Tk를 사용하지 않는 것이 좋습니다. 그러나 그것이 작동하는지 확실하게 알 수있는 유일한 방법은 직접 시도하는 것입니다.

6

루비 용 TK 바인딩은 컴파일 된 코드를 사용하므로 순수 루비가 아니므로 루비 버전마다 두 가지 설치가 필요합니다.

Darwinports는 기본적으로 TK를 지원하는 루비 1.9를 빌드하지 않습니다. 당신도 내가 DarwinPorts를 사용 했으므로 (see the portfile)

그것은 오랜만 년대 tk 또는 mactk 변형을 선택해야합니다,하지만 난이 구문 생각 :

port install ruby19 +mactk
+0

예, 명령 : 포트 설치 ruby19 + mactk 작동! –

관련 문제