インフラエンジニアbacchiのわかったことまとめ

bacchi.me

Ruby

rvmで入れたRuby2.0にTcl/Tkが入っていない場合の対処法

更新日:

ruby

ローカルサーバーとこのブログのサーバーはrvmでRubyを使っています。

MacでRuby/tkを使って遊んでやろうと思い、まずはtkでGUIが動かせるか確認しようと下記のテストプログラムを実行しました。

require "tk"
TkButton.new(nil,:text => 'hello',
:command => proc{print "hellon"}).pack(:fill=>'x')
TkButton.new(nil,:text => 'quit',:command =>
proc{exit}).pack(:fill=>'x')
Tk.mainloop

ウインドウがポンと出るとワクテカしていると、下記のようなエラーが・・

tkが入っていない・・(^p^)

/usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require\': cannot load such file -- tk (LoadError)
    from /usr/local/rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/custom_require.rb:36:in `require\'
    from test.rb:1:in `
\'

色々調べまくって、Rubyのインストール時に「--with-tk」 「--with-tcl」のオプションが必要なことが判明

下記のようにRubyの再インストールを行いました。

rvm reinstall 2.0.0 --enable-shared --enable-pthread --with-tk --with-tcl

Rubyを再インストールして、tkが入ったか確認!

うん、ちゃんと入っている♪

% irb
2.0.0-p481 :001 > require "tk"
LoadError: cannot load such file -- tk
    from /Users/bacchi/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require\'
    from /Users/bacchi/.rvm/rubies/ruby-2.0.0-p481/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require\'
    from (irb):1

今回はOSX 10.9で設定を行いましたが、Unix系やLinux系のOSでも問題ないはずです。

また、Ruby1.9やRuby2.1でも同じようにインストールすることでTcl/Tkが使えるようになるはず。多分・・(^p^)

Sponsor Link

スポンサーリンク

Sponsor Link

スポンサーリンク

-Ruby
-,

Copyright© bacchi.me , 2020 AllRights Reserved.