Instalando Ruby/Tk no OSX apenas com Macports (sem ActiveTcl)


Tentei sem sucesso instalar o Ruby com suporte à Tcl/Tk através do Macports, mas descobri que existe um bug que ocorre em alguns sistemas.

Para contornar o problema, edite o arquivo de configuração do Macports, provavelmente instalado em /opt/local/etc/macports/macports.conf e desabilite a opção portautoclean alterando seu valor para no (o padrão é yes).

Tente instalar o ruby executando o comando: sudo port install ruby+thread_hooks+tk

Em um Terminal, edite o portfile do ruby com o comando: sudo port ed ruby

Procure o grupo variant tk conflicts mactk e certifique de que ele fique da seguinte forma:

variant tk conflicts mactk {
configure.args-delete --without-tk
configure.args-append --with-tk
configure.args-delete --enable-pthread
depends_lib-append port:tcl \
port:tk
}

Como a instalação anterior falhou e o portautoclen está desativado, as dependências e os sources continuam na máquina. Então acesso o diretório do source do ruby:

cd /opt/local/var/macports/build/
cd _opt_local_var_macports_sources_rsync.macports.org_release_ports_lang_ruby/
cd work/ruby-1.8.7-p22/ext/tk

E gere o Makefile com o comando:

sudo ruby extconf.rb --without-X11 --with-tcl-include=/opt/local/include --with-tk-include=/opt/local/include --with-tk-lib=/opt/local/lib --with-tcl-lib=/opt/local/lib

Delete os resíduos da tentativa de compilação anterior: sudo make clean

Compile o ruby com a extensão para tcl/tk: sudo make

Quando tudo der certo, instale: sudo make install

Para finalizar, teste se tudo está como deveria:

henrique@Azgard:/opt/local/lib$ irb
irb(main):001:0> require 'tcltklib'
=> true

Tenho certeza de que existem maneiras mais simples de instalar o ruby+tk, mas esse post é resultado de uma daquelas “expedições investigatórias” onde no final você consegue o que quer e volta para o propósito original! ;)

, , , , , ,

  1. Nenhum comentário ainda.
(não será publicado)