2013-08-04 12 views
9

異なるOSとRails 3と4で3回Rails環境をセットアップしました。コンソールを開いてRubyを入力するか、データベースをrails consoleまたはrails dbconsoleで調べるまでスムーズに進みます。私は次のように何かを得る:readlineで何が問題になっていますか?

$ rails console 
/home/tobias/.rvm/rubies/ruby-1.9.2-p180/lib/ruby/1.9.1/irb/completion.rb:9:in  `require': no such file to load -- readline (LoadError) 
from /home/tobias/.rvm/rubies/ruby-1.9.2-p18080/lib/ruby/1.9.1/irb/completion.rb:9:in `<top (required)>' 
from /home/tobias/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.9/lib/rails/commands/console.rb:3:in `require' 
from /home/tobias/.rvm/gems/ruby-1.9.2-p180/gemsems/railties-3.0.9/lib/rails/commands/console.rb:3:in `<top (required)>' 
from /home/tobias/.rvm/gems/ruby-1.9.2-p180/gems/railties-3.0.9/lib/rails/commands.commandsrb:20:in `require' 
from /home/tobias/.rvm/gems/ruby-1.9.2-p180/gems/railsilties-3.0.9/lib/rails/commands.rb:20:in `<top (required)>' 
from scriptt/rails:6:in `require' 
from script/rails:6:in `<main>' 

これは "Fixing readline for the Ruby on Rails console" からです。これは私の問題を二度解決しました。

今、私はRailsの4とルビー2を使用していますし、それがうまくいったまで:ブログは私にこの時間を助けていない

[email protected] ~/src/rpg $ rails console 
/home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/completion.rb:9:in `require': /usr/local/lib/libreadline.so.6: undefined symbol: UP - /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/x86_64-linux/readline.so (LoadError) 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/completion.rb:9:in `<top (required)>' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands/console.rb:3:in `require' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands/console.rb:3:in `<top (required)>' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:53:in `require' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:53:in `<top (required)>' 
    from bin/rails:4:in `require' 
    from bin/rails:4:in `<main>' 

。 StackOverflowのは、関連する質問があります。

最後のものは、私のgemfileにgem 'rb-readline'を追加することを提案しました。私は、行を追加bundle installを実行し、これを得た:

[email protected] ~/src/rpg $ rails console 
Loading development environment (Rails 4.0.0) 
/home/mto/.rvm/scripts/irbrc.rb:30:in `block in <top (required)>': uninitialized constant Readline (NameError) 
/home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/input-method.rb:150:in `gets': uninitialized constant IRB::ReadlineInputMethod::Readline (NameError) 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb.rb:472:in `block (2 levels) in eval_input' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb.rb:624:in `signal_status' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb.rb:471:in `block in eval_input' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/ruby-lex.rb:190:in `call' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/ruby-lex.rb:190:in `buf_input' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/ruby-lex.rb:105:in `getc' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/slex.rb:206:in `match_io' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/slex.rb:76:in `match' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/ruby-lex.rb:290:in `token' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/ruby-lex.rb:266:in `lex' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/ruby-lex.rb:237:in `block (2 levels) in each_top_level_statement' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/ruby-lex.rb:233:in `loop' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/ruby-lex.rb:233:in `block in each_top_level_statement' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/ruby-lex.rb:232:in `catch' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb/ruby-lex.rb:232:in `each_top_level_statement' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb.rb:488:in `eval_input' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb.rb:397:in `block in start' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb.rb:396:in `catch' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/2.0.0/irb.rb:396:in `start' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands/console.rb:90:in `start' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands/console.rb:9:in `start' 
    from /home/mto/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/gems/2.0.0/gems/railties-4.0.0/lib/rails/commands.rb:64:in `<top (required)>' 
    from bin/rails:4:in `require' 
    from bin/rails:4:in `<main>' 

Rails 3: uninitialized constant IRB::ReadlineInputMethod::Readline (NameError) in Heroku」をバージョン0.4.2に宝石を結ぶことによって、問題を解決しました。私は0.5.0を持っていた。

Rubyのような中心的な場所を持っているシンプルなライブラリは、私が推測するように、なぜそんなに痛みを伴うのでしょうか?これを簡単にするために何かが行われていますか?

これは、コンソールから行を読み込むためのライブラリです。上記の例でどこが間違っていますか?私はなぜ、どのように、そして何を知りたいのですか?

+2

rvm(https://github.com/wayneeseguin/rvm/issues)のバグを報告してください - これはautolibsで適切なライブラリ/ヘッダーをインストールすることで処理する必要がありますが、確認するにはデバッグが必要ですそれは正常に動作します – mpapis

+0

私は1つのサーバで同じ問題を抱えていますが、他のサーバではありません。私が見ている唯一の違いは 'rbenv'バージョン' rbenv 0.4.0-74-g95a039a'が 'rb-readline' 'rbenv 0.4.0-75-gbe5e1a'が動作していません。宝石 'rb-radline v0.4.2'を私のGemfileに追加すると、@ deepender-singlaというトリックになりました。 – fguillen

答えて

5

あなたはこれを行うことができ、それが私の仕事:

gem install rb-readline 

そして、あなたのプロジェクトのGemfileに以下の行を追加します。

gem 'rb-readline', '~> 0.4.2' 

更新されたバージョンが得られますように私はこのバージョンに宝石をロックしています何らかのエラー。

+0

答えをありがとう。なぜそれが0.5で動作していないのか、誰かがこれを修正しようとしているのかどうかはわからないので、私はそれを受け入れません。私の主なポイントは、このような中央の図書館はすぐに使えるということです。 – toftis

+0

ああ、私はあなたの仕事が影響を受けないように時間内にこれを使うことができるかもしれないと思いました。 –

+0

これは私には役に立たなかった。 : – Magne

0

上記の回答はうまくいきます。どちらの

gem install rb-readline 

全体またはGemfile

gem 'rb-readline' 

プロジェクトに上記の宝石を追加することによって、しかし、あなたたちはあなたのGemfileで余分な宝石を含めたいとしていない場合は、ダウンロードした宝石のシステムをインストールしますルビは、ソースファイルを使用して -

sudo apt-get install libreadline-gplv2-dev libncurses5-dev 
cd ~/.rvm/src/ruby-1.9.2-p180/ 
make clean 
cd ~/.rvm/src/ruby-1.9.2-p180/ext/readline 
ruby extconf.rb 
cd ~/.rvm/src/ruby-1.9.2-p180/ 
make 
make install 

必要に応じて:)を使用してください。これは役に立ちます:

関連する問題