6

我想使用 rails 控制台,我正在使用 ubuntun 11.10 目前我发现了这个问题

错误是什么:

completion.rb:9:in `require': no such file to load -- readline (LoadError)

我找到了解决它的方法:

http://blog.jasonmeridth.com/2010/11/25/readline-error-with-rvm-and-rails-3.html

但似乎在 ubuntu 11.10 中缺少 libreadline5-dev 并替换为版本 6

我安装了第 6 版,也从那里获得了第 5 版

https://launchpad.net/ubuntu/oneiric/i386/libreadline-gplv2-dev/5.2-9ubuntu1

但如果我尝试运行以下代码:

ruby extconf.rb

我会得到以下几行:

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

“否”部分是我的问题,那么我该如何解决这个问题?

4

2 回答 2

12

Ubuntu 11.10 使用较新的 readline 库,它与 rvm 提供的 readline 包不同步

要解决这个问题(假设您使用 rvm 的单用户安装),请执行以下操作:

1) 确保你已经安装了 ubuntus readline 和 editline 开发包

sudo apt-get install libreadline6 libreadline6-dev

2) 配置 ruby​​ 的 readline 扩展以使用系统库,而不是 rvm 的包

rvm pkg uninstall readline
cd ~/.rvm/src/ruby-1.9.2-p290/ext/readline
ruby extconf.rb --with-editline-dir=/usr/ --with-readline-dir=/usr/
make
make install

3)转到您的项目并启动rails控制台



提示:您可以拨打

rvm requirements

查看应该安装哪些 ubuntu 软件包才能使用 rvm ruby

于 2012-01-25T19:18:57.667 回答
0

在编译 ruby​​ 之前,您必须安装 readline 开发包。赶紧跑

sudo apt-get install libreadline6-dev

替代方案(如您链接的文章中所建议),您可以使用 RVM 通过运行来获取适当的 readline 源

rvm package install readline

编辑:一旦你从源代码安装了 readline 包,你可以像这样安装你的红宝石

rvm install 1.9.3 --with-readline-dir="$rvm_path/usr"

如果您已经安装了特定的 ruby​​,只需reinstall使用install.

于 2011-12-20T23:26:39.837 回答