abra este arquivo no seu editor de teste como root " /usr/share/tcltk/tk8.5/tk.tcl " vá para line18 altere isto: package require -exact Tk 8.5.11 Para isso: package require -exact Tk 8.5.10
Ok, foi o que eu fiz antes de chegar a um terminal com várias mensagens de erro ...
Primeiro, instalei o ruby1.9.1 usando o apt-get. (Todos os pacotes ruby1.9.1 incluindo ruby1.9.1-examples e ruby1.9.1-full).
Depois, eu instalei tcl8.5 e tk8.5 incluindo seus pacotes de desenvolvimento de forma similar.
Depois instalei o libtcltk-ruby1.9.1
Como esperado, o ruby --version diz que eu obtive
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]
Mas no irb, quando eu preciso de 'tk' ele diz:
RuntimeError: tcltklib: fail to Tk_Init(). Can't find a usable tk.tcl in the following directories:
/usr/share/tcltk/tcl8.5/tk8.5 /usr/lib/tk8.5 /usr/local/lib/tcltk/tk8.5 /usr/local/share/tcltk/tk8.5 /usr/lib/tcltk/tk8.5 /usr/share/tcltk/tk8.5 /lib/tk8.5 /usr/library
/usr/share/tcltk/tk8.5/tk.tcl: version conflict for package "Tk": have 8.5.10, need exactly 8.5.11
version conflict for package "Tk": have 8.5.10, need exactly 8.5.11
while executing
"package require -exact Tk 8.5.11"
(file "/usr/share/tcltk/tk8.5/tk.tcl" line 18)
invoked from within
"source /usr/share/tcltk/tk8.5/tk.tcl"
("uplevel" body line 1)
invoked from within
"uplevel #0 [list source $file]"
This probably means that tk wasn't installed properly.
from /usr/lib/ruby/1.9.1/tk.rb:31:in 'initialize'
from /usr/lib/ruby/1.9.1/tk.rb:31:in 'initialize'
from /usr/lib/ruby/1.9.1/tk.rb:1245:in 'new'
from /usr/lib/ruby/1.9.1/tk.rb:1245:in 'block in <module:TkCore>'
Procedimento semelhante funcionou quando usei ruby1.8 e a mesma versão de tcl e tk, mas isso não parece funcionar. Eu acho que tem algo a ver com esses pacotes e suas dependências.
Então, finalmente, minha pergunta é: Como instalar o tk e o ruby, se eu quiser programar o Tk GUI no ruby1.9?
abra este arquivo no seu editor de teste como root " /usr/share/tcltk/tk8.5/tk.tcl " vá para line18 altere isto: package require -exact Tk 8.5.11 Para isso: package require -exact Tk 8.5.10