Ruby gem install tk help me

Hello everyone, dear forum members.
I am using ubuntu and encountered error while doing sudo gem install tk and I am waiting for your help. Thank you in advance
error:

tuncay@tuncay-Aspire-ES1-531:~$ sudo gem install tk
[sudo] password for tuncay: 
Building native extensions. This could take a while...
ERROR:  Error installing tk:
	ERROR: Failed to build gem native extension.

    current directory: /var/lib/gems/2.5.0/gems/tk-0.2.0/ext/tk
/usr/bin/ruby2.5 -r ./siteconf20200523-16468-d69lfn.rb extconf.rb
check functions.checking for ruby_native_thread_p() in ruby.h... yes
checking for rb_errinfo() in ruby.h... yes
checking for rb_safe_level() in ruby.h... yes
checking for rb_hash_lookup() in ruby.h... yes
checking for rb_proc_new() in ruby.h... yes
checking for rb_obj_untrust() in ruby.h... yes
checking for rb_obj_taint() in ruby.h... yes
checking for rb_set_safe_level_force() in ruby.h... yes
checking for rb_sourcefile() in ruby.h... yes
checking for rb_thread_alive_p() in ruby.h... no
checking for rb_thread_check_trap_pending() in ruby.h... yes
checking for ruby_enc_find_basename() in ruby.h... yes
check libraries.checking for t_open() in -lnsl... no
checking for socket() in -lsocket... no
checking for dlopen() in -ldl... yes
checking for log() in -lm... yes
Use ActiveTcl libraries (if available).
Search tclConfig.sh and tkConfig.sh.
Fail to find [tclConfig.sh, tkConfig.sh]
Use X11 libraries (or use TK_XINCLUDES/TK_XLIBSW information on tkConfig.sh).
checking for XOpenDisplay() in -lX11... yes
Search tcl.h
checking for tcl.h... no
Search tk.h
checking for tk.h... no
Search Tcl library......*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/usr/bin/$(RUBY_BASE_NAME)2.5
	--enable-shared
	--with-tk-old-extconf
	--without-tk-old-extconf
	--with-tk-old-extconf
	--without-tk-old-extconf
	--with-ActiveTcl
	--without-ActiveTcl
	--with-tk-shlib-search-path
	--without-tk-shlib-search-path
	--with-tcltkversion
	--without-tcltkversion
	--with-tcl-build-dir
	--without-tcl-build-dir
	--with-tk-build-dir
	--without-tk-build-dir
	--with-tcl-config
	--without-tcl-config
	--with-tk-config
	--without-tk-config
	--with-tclConfig-dir
	--without-tclConfig-dir
	--with-tkConfig-dir
	--without-tkConfig-dir
	--with-tclConfig-file
	--without-tclConfig-file
	--with-tkConfig-file
	--without-tkConfig-file
	--with-tcllib
	--without-tcllib
	--with-tklib
	--without-tklib
	--with-tcl-dir
	--without-tcl-dir
	--with-tk-dir
	--without-tk-dir
	--with-tcl-include
	--without-tcl-include
	--with-tk-include
	--without-tk-include
	--with-tcl-lib
	--without-tcl-lib
	--with-tk-lib
	--without-tk-lib
	--with-tcltk-framework
	--without-tcltk-framework
	--with-tcl-framework-dir
	--without-tcl-framework-dir
	--with-tk-framework-dir
	--without-tk-framework-dir
	--with-tcl-framework-header
	--without-tcl-framework-header
	--with-tk-framework-header
	--without-tk-framework-header
	--with-X11
	--without-X11
	--with-X11-dir
	--without-X11-dir
	--with-X11-include
	--without-X11-include
	--with-X11-lib
	--without-X11-lib
	--enable-tcltk-stubs
	--disable-tcltk-stubs
	--enable-tcl-h-ver-check
	--disable-tcl-h-ver-check
	--enable-tk-h-ver-check
	--disable-tk-h-ver-check
	--enable-mac-tcltk-framework
	--disable-mac-tcltk-framework
	--enable-tcltk-framework
	--disable-tcltk-framework
	--enable-pthread
	--disable-pthread
	--enable-tcl-thread
	--disable-tcl-thread
	--enable-space-on-tk-libpath
	--disable-space-on-tk-libpath
	--with-nsllib
	--without-nsllib
	--with-socketlib
	--without-socketlib
	--with-dllib
	--without-dllib
	--with-mlib
	--without-mlib
	--with-tcl-build-dir
	--without-tcl-build-dir
	--with-tk-build-dir
	--without-tk-build-dir
	--with-tcltkversion
	--without-tcltkversion
	--with-ActiveTcl
	--without-ActiveTcl
	--enable-space-on-tk-libpath
	--disable-space-on-tk-libpath
	--enable-tcltk-stubs
	--disable-tcltk-stubs
	--with-tcltk-stubs
	--without-tcltk-stubs
	--with-tcl-dir
	--without-tcl-dir
	--with-tcl-include
	--without-tcl-include=${tcl-dir}/include
	--with-tcl-lib
	--without-tcl-lib=${tcl-dir}/lib
	--with-tk-dir
	--without-tk-dir
	--with-tk-include
	--without-tk-include=${tk-dir}/include
	--with-tk-lib
	--without-tk-lib=${tk-dir}/lib
	--with-tclConfig-file
	--without-tclConfig-file
	--with-tkConfig-file
	--without-tkConfig-file
	--with-tclConfig-dir
	--without-tclConfig-dir
	--with-tkConfig-dir
	--without-tkConfig-dir
	--with-tcl-framework-header
	--without-tcl-framework-header
	--with-tk-framework-header
	--without-tk-framework-header
	--with-tcl-framework-dir
	--without-tcl-framework-dir
	--with-tk-framework-dir
	--without-tk-framework-dir
	--with-tcltk-framework
	--without-tcltk-framework
	--enable-tcltk-framework
	--disable-tcltk-framework
	--with-tcltk-framework
	--without-tcltk-framework
	--enable-tcltk-framework
	--disable-tcltk-framework
	--enable-mac-tcltk-framework
	--disable-mac-tcltk-framework
	--with-tk-shlib-search-path
	--without-tk-shlib-search-path
	--with-tklib
	--without-tklib
	--with-tcllib
	--without-tcllib
	--with-X11
	--without-X11
	--with-X11-dir
	--without-X11-dir
	--with-X11-include
	--without-X11-include=${X11-dir}/include
	--with-X11-lib
	--without-X11-lib=${X11-dir}/lib
	--with-X11-lib
	--without-X11-lib
	--with-X11lib
	--without-X11lib
	--enable-tcl-h-ver-check
	--disable-tcl-h-ver-check
	--enable-tk-h-ver-check
	--disable-tk-h-ver-check

Warning:: cannot find Tcl library. tcltklib will not be compiled (tcltklib is disabled on your Ruby. That is, Ruby/Tk will not work). Please check configure options.

Can't find proper Tcl/Tk libraries. So, can't make tcltklib.so which is required by Ruby/Tk.
If you have Tcl/Tk libraries on your environment, you may be able to use them with configure options (see ext/tk/README.tcltklib).
At present, Tcl/Tk8.6 is not supported. Although you can try to use Tcl/Tk8.6 with configure options, it will not work correctly. I recommend you to use Tcl/Tk8.5 or 8.4.

To see why this extension failed to compile, please check the mkmf.log which can be found here:

  /var/lib/gems/2.5.0/extensions/x86-linux/2.5.0/tk-0.2.0/mkmf.log

extconf failed, exit code 1

Gem files will remain installed in /var/lib/gems/2.5.0/gems/tk-0.2.0 for inspection.
Results logged to /var/lib/gems/2.5.0/extensions/x86-linux/2.5.0/tk-0.2.0/gem_make.out
tuncay@tuncay-Aspire-ES1-531:~$ 

Installing Tk on Ubuntu Linux

Installing Tk on Ubuntu Linux is very easy. To install Tk and Ruby’s Tk bindings, simply install the libtcltk-ruby package. This will install Tk and Ruby’s Tk bindings in addition to any other packages needed to run Tk programs written in Ruby. You can either do this from the graphical package manager or by running the following command in a terminal.

$ sudo apt-get install libtcltk-ruby

Once the libtcltk-ruby package is installed, you will be able to write and run Tk programs in Ruby.

1 Like
There is no installation candidate for the 'libtcltk-ruby' package, and the libtcltk-ruby package does not exist, but is pointed out from another package.
This situation is lost because this package is lost, aging, or another
it may mean that it resides in the software source.

gave the error

You probably have to go on an Ubuntu forum, Because i can’t find a solution for the latest version.

You might try this one before

sudo apt-get update
sudo apt-get install libtcltk-ruby
sudo apt-get install tk

or

su
apt-get update
apt-get install libtcltk-ruby 
apt-get install tk
1 Like

I can’t give you specific help, but that error message means you don’t have the -dev libraries installed for the compilation - see how it cannot find ‘tcl.h’ etc. You first have to install the right tcl libraries to support the compilation, which is information which may be in the gem’s documentation.

1 Like

The librairy is provided by Ruby by choosing some setting option while you are compiling the Ruby interpreter with TCL support. Now the executable of Ruby provide by Rubygem are compile without this support. Because most people do not need it.

The solution: Learn tho compile a C program.