Ruby wymaga 'tk' daje LoadError: brak takiego pliku do załadowania - tk
Nie jestem w stanie zdobyć rubinuwymagać „tk” z powodzeniem. Używam rvm, ruby 2.0.0, ActiveTcl-8.6 i Ubuntu 12.04 LTS. Uciekłemżyczenie dostarczane z ActiveTcl i wydaje się działać.
Sprawdziłem witrynę RVMhttp://rvm.io/integration/tk i kilka pytań StackOverflow takich jak tenRVM Ruby z instalacją TK (OSX).
próbowałemrvm zainstaluj 2.0.0 --enable-shared --enable-pthread --with-tk --with-tcl kilka razy w różnych wersjach ruby bez powodzenia.
jakieś pomysły?
Kiedy biegnę irb i robięwymagać'tk Otrzymuję następujące informacje:
LoadError: cannot load such file -- tk
from /home/brooks/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/brooks/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from (irb):2
from /home/brooks/.rvm/rubies/ruby-2.0.0-p353/bin/irb:12:in `<main>'
Kiedy to działa, myślę, że powinieneśprawdziwe zwrócony.
Nie próbowałem niczego innego, głównie dlatego, że nie wiem, co jeszcze zrobić. Sprawdzałem, jak wymagają działania i sprawdzam ścieżkę obciążenia za pomocąruby -e '$:' dostaję
[brooks@ubuntu:~/sites/depot]$ruby -e 'puts $:'
/home/brooks/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0
/home/brooks/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/x86_64-linux
/home/brooks/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby
/home/brooks/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/vendor_ruby/2.0.0
/home/brooks/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/vendor_ruby/2.0.0/x86_64-linux
/home/brooks/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/vendor_ruby
/home/brooks/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0
/home/brooks/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/2.0.0/x86_64-linux
Myślę, że to wygląda tak, jak można się spodziewać. Przepraszamy za formatowanie, jestem nowym użytkownikiem edytora.
Podążając za pomysłem, że jest to problem ze ścieżką, znalazłem tk.rb w moich plikach i spróbowałem w irb:
2.0.0-p353 :003 > require '/home/brooks/.rvm/src/ruby-2.0.0-p353/ext/tk/lib/tk'
LoadError: cannot load such file -- tcltklib
from /home/brooks/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/brooks/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/brooks/.rvm/src/ruby-2.0.0-p353/ext/tk/lib/tk.rb:6:in `<top (required)>'
from /home/brooks/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from /home/brooks/.rvm/rubies/ruby-2.0.0-p353/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
from (irb):3
from /home/brooks/.rvm/rubies/ruby-2.0.0-p353/bin/irb:12:in `<main>'
Więc teraz jestwymagać 'tcltklib' w pliku tk.rb, który powoduje problem. To wydaje się potwierdzać, że istnieje problem z $ PATH lub $ load_path. Ale wyszukiwanie pliku tcltklib.rb nic nie pokazuje. Istnieje plik tcltklib.c.
Spróbowałem jeszcze kilku rzeczy. Po dokładniejszym przeczytaniu wyników instalacji ruby za pośrednictwem rvm, pojawiło się ostrzeżenie o tym, że lib X11 nie jest instalowany i że Tk nie byłby aktywny po kompilacji ruby. Zrobiłemsudo apt-get zainstaluj libx11-dev i wtedyrvm zainstaluj 2.0.0 --enable-shared --enable-pthread --with-tk --with-tcl jeszcze raz. Tym razem w irbwymagać „tk” spowodował zrzut pamięci. Spróbowałem tego innym razem i zadziałało. Następnie uruchomiłem krótki skrypt ruby, który również używawymagać „tk”. Zwalnia również ją, ale działała po kilku próbach. Teraz jest hitem lub brakiem dla obu, czasem działa, czasem zrzuty pamięci.