2014-04-07 14 views
9

Tôi gặp một số lỗi trong ứng dụng Rails của mình và đang cố bắt đầu bảng điều khiển Rails bằng cách phát lệnh sau:Rails console: trong `require ': không thể tải tập tin như vậy - readline (LoadError)

rails console 

Không có vấn đề gì tôi cố gắng, tôi luôn nhận được lỗi tương tự:

/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>' 

tôi đã thực sự cố gắng mỗi giải pháp có thể, tôi tìm thấy trên mạng, càng nhiều người gặp phải lỗi tương tự. Thật không may, không có gì có vẻ hiệu quả. Khi tôi cố gắng lệnh sau:

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

tôi nhận được sau đầu ra

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 *** 

chỉ ra rằng một cái gì đó là mất tích, nhưng cài đặt readline với apt-get không tạo sự khác biệt trong hai. Tôi đoán nó có thể có một cái gì đó để làm với các phiên bản đá quý không tương thích, như giao diện điều khiển làm việc một thời gian ngắn một thời gian trước đây. Có bất kỳ vấn đề phiên bản đã biết nào với readline không? Rất nhiều người dường như đã gặp phải vấn đề với viên đá quý này.

+0

tôi thực sự tìm thấy trang sau hữu ích: https: // github.com/guard/guard/wiki/Add-Readline-hỗ trợ-to-Ruby-on-Mac-OS-X # sử dụng-rvm-và-homebrew Tôi gặp vấn đề với readline và irb, cũng như giao diện điều khiển đường ray. Đối với tôi, tôi theo phần homebrew. – Brian

Trả lời

1

Tôi có vấn đề này trong một thời gian trở lại, giải quyết bằng cách gõ: rvm requirements và cài đặt những gì trở lại. Dường như, mặc dù đây là phiên bản cũ của rvm nên có thể không còn có liên quan

4

Cuối cùng tôi đã tìm được giải pháp. Đó là một sự kết hợp của một số vấn đề (phiên bản đá quý, thư viện readline xung đột).

Đầu tiên, tôi refetched readline lib

sudo apt-get install libreadline-dev 

Sau đó, tôi gỡ bỏ cài đặt ruby ​​

rvm remove 2.1.1 

Tôi đã cài đặt ruby ​​lại

rvm install 2.1.1 

Tôi nói với RVM để sử dụng mặc định (2.1. 1) Ruby

rvm use default 

tôi cài đặt lại Rails và readline

gem install rails 
gem install readline 

Tôi đã nhận ra lỗi một lần nữa tung ra giao diện điều khiển, nhưng một hơi khác nhau một:

/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>' 

Vì vậy, theo hướng dẫn này (http://vkarthickeyan.wordpress.com/2012/02/16/mysql-symbol-lookup-error-usrlocalliblibreadline-so-6-undefined-symbol-up/), tôi đã nhận nó để công việc:

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

Nhờ hunterboerner để được trợ giúp!

+2

'gem install readline' nên là 'gem install rb-readline' – aqingsao

1

này làm việc ra ok trên một máy Solaris mà không có readline, có thể làm việc cho bạn:

$ 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 
Các vấn đề liên quan