Тк установка не работает для ruby1.9.1
Хорошо, это то, что я сделал, прежде чем приземлился на терминал с кучей сообщений об ошибках...
Сначала я установил ruby1.9.1 с помощью apt-get. (Все эти пакеты ruby1.9.1, включая ruby1.9.1-examples и ruby1.9.1-full).
Затем я установил tcl8.5 и tk8.5, включая их пакеты для разработчиков, аналогичным образом.
Затем я установил libtcltk-ruby1.9.1
Как и ожидалось, ruby --version говорит, что у меня есть
ruby 1.9.3p0 (2011-10-30 revision 33570) [x86_64-linux]
Но в irb, когда мне требуется 'tk', он говорит:
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>'
Подобная процедура работала, когда я использовал ruby1.8 и ту же версию tcl и tk, но, похоже, это не сработало. Я думаю, что это как-то связано с этими пакетами и их зависимостями.
Итак, наконец, мой вопрос: как установить tk и ruby, если я хочу запрограммировать Tk GUI на ruby1.9?
1 ответ
Откройте этот файл в редакторе тестов как root "/usr/share/tcltk/tk8.5/tk.tcl" и перейдите к строке 18 и измените это: package require -exact Tk 8.5.11 To to: package require -exact Tk 8.5. 10