Есть ли простой способ включить Tk для Ruby в OS X v10.6+?

Начиная с Snow Leopard (OS X v10.6) Apple по умолчанию поставляет 64-битный Ruby. К сожалению, в комплекте нет 64-битного Tk, поэтому следующий ruby-код не сработает:

require 'tk'

Есть ли простой способ включить Tk для Ruby в Snow Leopard и выше? Например, установить 32-битный рубин или что-то в этом роде. Я пытался перекомпилировать Ruby с поддержкой Tk, но это кажется не таким уж простым - учебники, найденные в Google, относятся к некоторым параметрам в скрипте Ruby ./configure, которых нет в реальном коде Rby, загруженном с официального сайта :(. Я буду рад любому подсказки - у меня есть приложение Ruby с графическим интерфейсом Tk, и мне нужно, чтобы мои пользователи могли его использовать :)


person grigoryvp    schedule 12.06.2011    source источник


Ответы (2)


Tk отлично строится в 64-битном режиме на OSX, но только если у вас есть исходники из серии 8.6«ZIP»«TGZ» (все еще находится в стадии бета-тестирования по разным причинам, но вполне пригоден для использования). Конечно, вы захотите убедиться, что вы настроили --enable-aqua --enable-64bit, но я предполагаю, что это довольно очевидно.

(Увы, я не могу сказать, как потом интегрировать сборку Tk с вашей установкой Ruby, хотя есть некоторая документация в Интернете, которая кажется несколько актуальной. Я подчеркиваю, что я только искал ее в Google; в этом я не говорю о своем опыте.)

person Donal Fellows    schedule 12.06.2011
comment
К сожалению, я не могу построить Tk в Snow Leopard. ./configure --enable-aqua --enable-64bit && make приводит к tkMacOSXBitmap.c:262: error 'CIconHandle' undeclared - person grigoryvp; 12.06.2011
comment
Какую версию вы используете? Вам нужна версия, на которую я указал, чтобы она использовала Cocoa на серверной части, а не старые версии, использующие Carbon. (CIconHandle — это Carbon.) Для справки: я использую сборки на основе какао уже около 2 лет… - person Donal Fellows; 16.06.2011

Где недавно было большое улучшение по сравнению с документацией Tk. У них нет полных инструкций о том, как включить Tk для Ruby на OSX 10.6+. Для этого требуется бинарный дистрибутив ActiveTcl 8.5+ и компиляция ruby ​​из исходников. Команда, которую я использовал в OSX 10.7 с XCode 4.2 для компиляции ruby ​​и замены стандартной установки ruby ​​(опасно!):

./configure --prefix=/usr --with-arch=x86_64,i386 --enable-pthread --enable-shared --with-gcc=clang
make
sudo make install
person grigoryvp    schedule 07.12.2011