尝试启动rails控制台时,为什么会出现Readline错误?

更新:我可能在尝试在其他地方找到解决方案时弄乱了我的系统。 我从零开始,安装Ruby 1.9.3顺利安装。 现在试着让ree-1.8.7和…一起玩得很好……


我正在尝试使用RVM在Kubuntu上安装Ruby 1.9.3(我相信11.10)。 到目前为止,我一直有很多关于Readline的问题,但除此之外我找到了答案。

我用这种方式安装了Ruby 1.9.3:

rvm install 1.9.3 # Install of ruby-1.9.3-p0 - #complete cd ~/.rvm/src/ruby-1.9.3-p0/ext/readline/ ~/.rvm/src/ruby-1.9.3-p0/ext/readline $ ../../ruby extconf.rb --with-editline-dir="/usr" --with-readline-dir="/usr" # any other way of doing this resulted in simply readline not being loaded when trying to start the console # I have libreadline6 and libreadline6-dev installed (and all the packages requested in `rvm requirements` make install # compiling readline.c # linking shared-object readline.so # /usr/bin/install -c -m 0755 readline.so /home/mbillard/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/x86_64-linux # installing default readline libraries 

到目前为止,一切看起来都运行正常,但当我尝试启动控制台时,我收到此错误:

 /home/mbillard/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/completion.rb:9:in `require': /home/mbillard/.rvm/usr/lib/libreadline.so.6: undefined symbol: UP - /home/mbillard/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/site_ruby/1.9.1/x86_64-linux/readline.so (LoadError) from /home/mbillard/.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/completion.rb:9:in `' from /home/mbillard/.rvm/gems/ruby-1.9.3-p0@taskman/gems/railties-3.2.1/lib/rails/commands/console.rb:3:in `require' from /home/mbillard/.rvm/gems/ruby-1.9.3-p0@taskman/gems/railties-3.2.1/lib/rails/commands/console.rb:3:in `' from /home/mbillard/.rvm/gems/ruby-1.9.3-p0@taskman/gems/railties-3.2.1/lib/rails/commands.rb:38:in `require' from /home/mbillard/.rvm/gems/ruby-1.9.3-p0@taskman/gems/railties-3.2.1/lib/rails/commands.rb:38:in `' from script/rails:6:in `require' from script/rails:6:in `' 

我尝试使用rvm install 1.9.3 --with-readline-dir="$rvm_path/usr"并在上面的命令中编译Readline时使用$rvm_path但是这些导致了这个错误:

 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 

所以,感谢您提供的任何帮助。

请阅读以下内容的输出:

 rvm requirements 

它将显示您需要安装以充分利用Ruby的库列表

安装完所有库后,清理rvm安装的库并重新安装Ruby:

 rm -rf $rvm_path/usr rvm reinstall 1.9.3 

您需要安装readline开发包。 (这是我的答案与其他现有答案的不同之处):

 apt-get install libreadline-dev 

这样做之后,你可以重新安装Ruby(如已提到的@mpapis),一切都应该有效。

 rvm reinstall 1.9.3 

我有一个类似的问题。 尝试

 brew link readline --force 

这对我有用。

我从这里得到了解决方案:

Rails控制台未加载

Interesting Posts