This, one the surface, appears to be very similar to bug 65858. The solution to that bug was to add 'threads' to IUSE. The most current ebuild for ruby has this so it may be different. Reproducible: Always Steps to Reproduce: 1. emerge ruby 2. Run "irb" 3. Enter "require 'tk'" Actual Results: $ irb irb(main):001:0> require 'tk' LoadError: No such file to load -- tcltklib from /usr/lib/ruby/1.8/tk.rb:7:in `require' from /usr/lib/ruby/1.8/tk.rb:7 from (irb):1:in `require' from (irb):1 irb(main):002:0> Expected Results: Note: Run this under an xterm with xhost access so new windows can be opened. Should have produced another irb prompt. I then should be able to enter the following commands: irb(main):002:0> root = TkRoot.new() { title "Hello, world!" } irb(main):002:0> Tk.mainloop() A window should now pop up that says "Hello, world!" emerge --info Portage 2.0.51.19 (default-linux/x86/2004.3, gcc-3.3.5, glibc-2.3.4.20040808-r1, 2.6.10-gentoo-r6 i686) ================================================================= System uname: 2.6.10-gentoo-r6 i686 Intel(R) Pentium(R) 4 CPU 2.40GHz Gentoo Base System version 1.4.16 Python: dev-lang/python-2.3.4-r1 [2.3.4 (#1, Feb 21 2005, 11:15:51)] ccache version 2.3 [enabled] dev-lang/python: 2.3.4-r1 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.8.5-r3, 1.5, 1.6.3, 1.7.9-r1, 1.4_p6, 1.9.4 sys-devel/binutils: 2.15.92.0.2-r1 sys-devel/libtool: 1.5.10-r4 virtual/os-headers: 2.6.8.1-r2 ACCEPT_KEYWORDS="x86" AUTOCLEAN="yes" CFLAGS="-O2 -march=pentium4 -fomit-frame-pointer" CHOST="i686-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/lib/mozilla/defaults/pref /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/env.d" CXXFLAGS="-O2 -march=pentium4 -fomit-frame-pointer" DISTDIR="/usr/portage/distfiles" FEATURES="autoaddcvs autoconfig ccache distlocks sandbox sfperms" GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/Linux/distributions/gentoo" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="x86 X alsa apache2 apm avi berkdb bitmap-fonts cdparanoia cdr crypt curl divx4linux dvd encode esd fam flac font-server ftp gd gdbm gif gnome gpm gstreamer gtk gtk2 hal imagemagick imap imlib jpeg libg++ libwww mad mbox mikmod mmx motif mozilla mp3 mpeg ncurses nls ogg oggvorbis opengl oss pam pcre pdflib perl png postgres python quicktime readline ruby sdl sockets spell sse ssl svga tcltk tcpd tiff truetype truetype-fonts type1-fonts xml2 xmms xpm xv zlib" Unset: ASFLAGS, CBUILD, CTARGET, LANG, LC_ALL, LDFLAGS, PORTDIR_OVERLAY
I unpack and compiled ruby from /usr/portage/distfiles/ruby-1.8.2.tar.gz from my system. I did a ./configure --prefix=/home/<mylogin>/ruby I then did a make install. Ruby/TK worked. So the problem probably is probably in the configure options used for the ebuild (/usr/portage/dev-lang/ruby/ruby-1.8.2.ebuild).
You probably have the tcltk flag off, which means that Ruby's tk support is probably not built in.
Re-emerge using the tcltk use flag, and this should work.