[ruby-list:49521] Re: OSX ruby-tkのextconf.rb
From:
天野 竜太郎 <pikara-giresse82@...>
Date:
2013-08-01 11:25:59 UTC
List:
ruby-list #49521
天野です。
1.9.3-p448の方は、typoの修正で動作しました。
2.0.0-p247は、require "tk"で落ちます。
$ ru2/bin/irb
irb(main):001:0> require "tk"
objc[32377]: Class TKApplication is implemented in both /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and /Library/Frameworks/Tk.framework/Versions/8.5/Tk. One of the two will be used. Which one is undefined.
objc[32377]: Class TKMenu is implemented in both /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and /Library/Frameworks/Tk.framework/Versions/8.5/Tk. One of the two will be used. Which one is undefined.
objc[32377]: Class TKContentView is implemented in both /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and /Library/Frameworks/Tk.framework/Versions/8.5/Tk. One of the two will be used. Which one is undefined.
objc[32377]: Class TKWindow is implemented in both /System/Library/Frameworks/Tk.framework/Versions/8.5/Tk and /Library/Frameworks/Tk.framework/Versions/8.5/Tk. One of the two will be used. Which one is undefined.
RuntimeError: tcltklib: fail to Tk_Init(). Can't find a usable tk.tcl in the following directories:
/System/Library/Frameworks/Tk.framework/Versions/8.5/Resources/Scripts
/System/Library/Frameworks/Tk.framework/Versions/8.5/Resources/Scripts/tk.tcl: version conflict for package "Tk": have 8.5.14, need exactly 8.5.9
version conflict for package "Tk": have 8.5.14, need exactly 8.5.9
while executing
"package require -exact Tk 8.5.9"
(file "/System/Library/Frameworks/Tk.framework/Versions/8.5/Resources/Scripts/tk.tcl" line 20)
invoked from within
"source /System/Library/Frameworks/Tk.framework/Versions/8.5/Resources/Scripts/tk.tcl"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list source $file]"
This probably means that tk wasn't installed properly.
from /Users/ryutaro/ru2/lib/ruby/2.0.0/tk.rb:31:in `initialize'
from /Users/ryutaro/ru2/lib/ruby/2.0.0/tk.rb:31:in `initialize'
from /Users/ryutaro/ru2/lib/ruby/2.0.0/tk.rb:1238:in `new'
from /Users/ryutaro/ru2/lib/ruby/2.0.0/tk.rb:1238:in `<module:TkCore>'
from /Users/ryutaro/ru2/lib/ruby/2.0.0/tk.rb:1152:in `<top (required)>'
from /Users/ryutaro/ru2/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from /Users/ryutaro/ru2/lib/ruby/2.0.0/rubygems/core_ext/kernel_require.rb:45:in `require'
from (irb):1
from ru2/bin/irb:12:in `<main>'
天野 竜太郎
pikara-giresse82@mb.pikara.ne.jp
On 2013/08/01, at 15:59, Hidetoshi NAGAI <nagai@ai.kyutech.ac.jp> wrote:
> 永井@知能.九工大です.
>
> 報告をありがとうございます.
>
> From: 天野 竜太郎 <pikara-giresse82@mb.pikara.ne.jp>
> Subject: [ruby-list:49519] OSX ruby-tkのextconf.rb
> Date: Thu, 1 Aug 2013 15:40:50 +0900
> Message-ID: <02C070E4-DE83-4F18-9B94-0A1E3DD9BADD@mb.pikara.ne.jp>
>
>> paths.map{|dir| dir.strip.chomp('/')}.each{|dir|
>> next unless File.exist?(File.join(dir, "Tcl.framework", "Headers"))
>> next unless File.directory?(tcldir = File.join(dir, "Tcl.framework"))
>> next unless File.exist?(File.join(dir, "Tk.framework"), "Headers")
>> next unless File.directory?(tkdir = File.join(dir, "Tk.framework"))
>> TkLib_Config["tcltk-framework"] = dir
>> return [tcldir, tkdir]
>> }
>
> trunk では修正したのですが,
>
>> next unless File.exist?(File.join(dir, "Tcl.framework", "Headers"))
>> next unless File.exist?(File.join(dir, "Tk.framework"), "Headers")
>
> の Tk.framework の行が typo です.
> お手数ですが,
>
>> next unless File.exist?(File.join(dir, "Tk.framework", "Headers"))
>
> に変更 (括弧の位置が間違い) して試していただけますでしょうか.
>
> よろしくお願い致します.
> --
> 永井 秀利 (nagai@ai.kyutech.ac.jp)
> 九州工業大学大学院情報工学研究院知能情報工学研究系知能情報メディア部門助教
>
>