2014-04-07 12 views
9

Mam kilka błędów w mojej aplikacji Rails i próbuję uruchomić Rails konsoli wydając następującą komendę:Szyny konsoli: w `wymagają ': nie można załadować taki plik - readline (LoadError)

rails console 

Bez względu na to, co staram, jestem zawsze otrzymuję ten sam błąd:

/usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/completion.rb:9:in `require': cannot load such file -- readline (LoadError) 
    from /usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/completion.rb:9:in `<top (required)>' 
    from /opt/mammie/web/icosole/vendor/bundle/ruby/2.1.0/gems/railties-3.1.3/lib/rails/commands/console.rb:3:in `require' 
    from /opt/mammie/web/icosole/vendor/bundle/ruby/2.1.0/gems/railties-3.1.3/lib/rails/commands/console.rb:3:in `<top (required)>' 
    from /opt/mammie/web/icosole/vendor/bundle/ruby/2.1.0/gems/railties-3.1.3/lib/rails/commands.rb:37:in `require' 
    from /opt/mammie/web/icosole/vendor/bundle/ruby/2.1.0/gems/railties-3.1.3/lib/rails/commands.rb:37:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

ja naprawdę próbowali wszelkich możliwych rozwiązanie znalazłem w internecie, jak wiele osób spotkać ten sam błąd. Niestety nic nie działa. Kiedy próbuję następujące polecenie:

ruby /usr/local/rvm/src/ruby-2.1.1/ext/readline/extconf.rb 

dostaję następujące wyjście

checking for tgetnum() in -lncurses... yes 
checking for readline/readline.h... yes 
checking for readline/history.h... yes 
checking for readline() in -lreadline... no 
checking for readline() in -ledit... no 
checking for editline/readline.h... no 
*** /usr/local/rvm/src/ruby-2.1.1/ext/readline/extconf.rb failed *** 

Wskazując, że czegoś brakuje, ale zainstalowanie readline z apt-get nie czyni różnicy albo. Zgaduję, że może to mieć coś wspólnego z niekompatybilnymi wersjami klejnotów, ponieważ konsola działała krótko jakiś czas temu. Czy są jakieś znane problemy dotyczące wersji z readline? Wygląda na to, że ludzie mają problemy z tym klejnotem.

+0

naprawdę znaleźć na następującej stronie pomocne: https: // github.com/guard/guard/wiki/Add-Readline-support-to-Ruby-na-Mac-OS-X # using-rvm-and-homebrew Miałem problemy z readline i irb, a także konsolami rails. Dla mnie poszedłem za sekcją homebrew. – Brian

Odpowiedz

1

miałem ten problem jakiś czas temu rozwiązał wpisując: rvm requirements i instalacji co wrócił. Wydawało się, że była to starsza wersja rvm, więc może nie być już istotna.

4

W końcu znalazłem rozwiązanie. Było to połączenie kilku problemów (wersje klejnotów, sprzeczne biblioteki readline).

Po pierwsze, refetched readline lib

sudo apt-get install libreadline-dev 

Potem odinstalowane rubin

rvm remove 2.1.1 

zainstalowałem rubin ponownie

rvm install 2.1.1 

Powiedziałem RVM aby użyć domyślnego (2.1. 1) Rubinowy

rvm use default 

I ponownie zainstalować Rails i readline

gem install rails 
gem install readline 

mam błąd ponownie uruchamiając konsolę, ale nieco inna:

/usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/completion.rb:9:in `require': /usr/local/lib/libreadline.so.6: undefined symbol: UP - /usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/x86_64-linux/readline.so (LoadError) 
    from /usr/local/rvm/rubies/ruby-2.1.1/lib/ruby/2.1.0/irb/completion.rb:9:in `<top (required)>' 
    from /opt/mammie/web/icosole/vendor/bundle/ruby/2.1.0/gems/railties-3.1.3/lib/rails/commands/console.rb:3:in `require' 
    from /opt/mammie/web/icosole/vendor/bundle/ruby/2.1.0/gems/railties-3.1.3/lib/rails/commands/console.rb:3:in `<top (required)>' 
    from /opt/mammie/web/icosole/vendor/bundle/ruby/2.1.0/gems/railties-3.1.3/lib/rails/commands.rb:37:in `require' 
    from /opt/mammie/web/icosole/vendor/bundle/ruby/2.1.0/gems/railties-3.1.3/lib/rails/commands.rb:37:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 

Więc po tej instrukcji (http://vkarthickeyan.wordpress.com/2012/02/16/mysql-symbol-lookup-error-usrlocalliblibreadline-so-6-undefined-symbol-up/), mam go do praca:

cd /usr/local/lib 
mkdir temp 
mv libreadline* temp 
ldconfig 
apt-get update 

Dzięki hunterboerner za pomoc!

+2

'Klejnot instalacji readline' powinien być' gem install rb-readline' – aqingsao

1

to działało ok na maszynie Solaris, który nie miał readline, może pracować dla Ciebie:

$ bundle exec irb 
irb(main):001:0> require File.expand_path('config/boot') 
=> true 
irb(main):002:0> require File.expand_path('config/environment') 
NOTE: Gem.source_index is deprecated, use Specification. It will be removed on or after 2011-11-01. 
Gem.source_index called from /export/home/deploy/recon/shared/bundle/ruby/1.8/gems/rails-2.3.18/lib/rails/gem_dependency.rb:21. 
Warning: NLS_LANG is not set. fallback to US7ASCII. 
=> true 
irb(main):027:0> require 'console_app' 
=> true 
Powiązane problemy