Lubuntu 14.04のTcl/Tk 8.6とrbenvに入れたRuby 2.1.5でRuby/Tkを使う
はじめに
前の記事で「現時点でRuby/Tkは8.6には対応してない」と書いたばかりなのですが、こちらのサイトでパッチが公開されていて、Ruby/TkでTcl/Tk 8.6が使えます。(注: Ruby 2.2.0ではパッチが必要なくなったようです。こちらを参照のこと。12/02/15追記)
Tcl/Tk 8.6のインストール
apt-get
でtk-dev
をインストールするとtk8.6-dev
が入ります。
$ sudo apt-get install tk-dev
パッチを当てて、Ruby 2.1.5をビルド
こちらのサイトから、「Ruby-2.1.3 p242用パッチ」tk-diff-ruby-2.1.3-p242.gz
を、ありがたくいただいてきます。2.1.3用となってますが、2.1.5でも問題無いようです。
ruby-buildにはパッチを当てる機能があるのですが、stripのレベルを指定できないようなので、今回はruby-buildを使いません。まず、Rubyの公式サイトから、Ruby 2.1.5のソースruby-2.1.5.tar.gz
をダウンロードし、以下のようにパッチを当ててビルドします。
$ tar zxf ruby-2.1.5.tar.gz $ cd ruby-2.1.5 $ zcat ../tk-diff-ruby-2.1.3-p242.gz | patch -p1 $ ./configure --prefix=$HOME/.rbenv/versions/2.1.5-tk8.6 \ --with-tcltkversion=8.6 \ --with-tcl-lib=/usr/lib/x86_64-linux-gnu \ --with-tk-lib=/usr/lib/x86_64-linux-gnu \ --with-tcl-include=/usr/include/tcl8.6 \ --with-tk-include=/usr/include/tcl8.6 \ --enable-pthread $ make
ビルドが問題なく完了したら、インストールして有効化します。
$ make install
$ rbenv global 2.1.5-tk8.6
$ rbenv rehash
サンプルを動かしてみます。
$ ruby ext/tk/sample/cd_timer.rb 10
うまく動きました。
最後に
記事のタイトルが長い…