Linux Mint 19(Ubuntu 18.10)に Bundler で Ruby/Tk を入れる

Ruby 2.7.0 では以下の方法でインストール可能です。ただし、gem 'tk' を使うと警告がたくさん出ます。(2020/3/12)



Ruby 2.6.0 では以下の方法では tk はインストールできないようです。対策はいまのところわかりません。
なお、Bundler を使わず gem install でインストールするのは成功するので、tk の問題なのではなく、Bundler の問題なのかも知れません。(2019/1/26)

 
Linux Mint 19 に rbenv で Ruby 2.5.1 が入っています。これに Ruby/Tk を入れてみようと思います。
Ubuntu 18.10, Ruby 2.5.3 でも確認しました。

Ruby/Tk は Ruby 2.4 から標準添付ライブラリではなくなりました。なので、Gem として Bundler で入れてみます。


まず、ライブラリを入れます。

$ sudo apt-get update
$ sudo apt-get install tk tcl tk8.6-dev tcl8.6-dev

 
Gemfile に gem 'tk' を追加します。そして次を実行(参考)。

$ bundle config build.tk --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
$ bundle install

これでエラーが出なければ OK です。

実際に入ったか確かめてみます。

$ irb
irb(main):001:0> require 'bundler/setup'
=> true
irb(main):002:0> require 'tk'
=> true

OK ですね!


確認用のサンプルコード。

require 'tk'

TkLabel.new {
  text "Hello, world!"
  bg "red"
  pack
}
TkButton.new {
  text "Close"
  command {exit}
  pack
}
Tk.mainloop

こんな Window が出てきます。
20181222000742
 

※参考
Bundler を使わない人は、ライブラリを入れたあと

$ gem install tk -- --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

でよいようです。ここなどを参照してみて下さい。
 

追記

Ruby/Tk でヒルベルト曲線を描く - Camera Obscura
ここでのコードもそのまま動きました。(5次のヒルベルト曲線)
20181222002952
 
それから下も動きました。
Ruby/Tk で簡単なグラフを描く - Camera Obscura
 
※参考
Ruby Tk リンク - Camera Obscura