2011-12-29 138 views
12

我在我的ubyntu 11.10上使用rvm。我的readline不工作,我试过ruby extconf.rb但它没有通过。输出为波纹管:Readline不能在rvm工作 - Ubuntu 11.10

$ 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 

我尝试安装好libncurses5-dev的&中的libreadline5-dev的

$ sudo apt-get install libncurses5-dev libreadline5-dev 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
Package libreadline5-dev is not available, but is referred to by another package. 
This may mean that the package is missing, has been obsoleted, or 
is only available from another source 
However the following packages replace it: 
    libreadline-gplv2-dev:i386 lib64readline-gplv2-dev:i386 libreadline-gplv2-dev 

E: Package 'libreadline5-dev' has no installation candidate 

这里有什么问题?谁能帮忙?

回答

7

我得到了解决:

运行命令

rvm requirements 

它显示了这些要求和依赖性。安装并重新安装红宝石上rvm

rvm remove 1.9.2 
rvm install 1.9.2 

它的工作原理!

+0

这对我有效,但是只有在彻底删除/ usr/local/rvm并从头重新安装rvm。看起来'rvm remove 1.9.2'不足以清除任何被缓存的内容。 – 2012-03-03 07:52:21

2

你试过:

rvm pkg install readline 

然后通过RVM --with-readline-dir=$rvm_path/usr安装Ruby?

http://beginrescueend.com/packages/readline/

FWIW,我建议给rbenv + ruby-build一去,如果你从来没有考虑它。比使用RVM少了许多麻烦。

+0

我试过了,但不起作用! – Sayuj 2011-12-29 09:56:08

+0

当你说“不行”时,你的意思是你得到错误还是其他的东西?你会得到什么错误(如果你得到它们)? – d11wtq 2011-12-29 10:06:19

+0

我做了'rvm remove 1.9.2','rvm pkg install readline'和'rvm install 1.9.2 --with-readline-dir = $ rvm_path/usr'。没有错误。但是,当我尝试'irb'时,它显示,'Readline不能被要求,如果你需要完成或历史安装readline然后重新安装红宝石。 您可以按照'rvm notes'的依赖关系和/或阅读文档页面https://rvm.beginrescueend.com/packages/readline/。确保你'rvm删除X; rvm install X'在获得readline库之后用readline支持重新编译你的ruby。 ruby​​-1.9.2-p290:001>' – Sayuj 2011-12-29 10:22:44

21

同样的问题在这里Readline errors prevent me running rails console

Ubuntu下,你可以使用该系统的readline安装。

rvm uninstall ${YOURUBYVERSION} 
sudo apt-get install libreadline-dev 
rvm install ${YOURUBYVERSION} --with-readline-dir=/usr/include/readline 

用你想要的ruby版本替换$ {YOURUBYVERSION}。

+0

libreadline-dev已经是最新版本 – Sayuj 2012-01-04 09:12:01

+1

嗨,跳转点是 '--with-readline-dir =/usr/include/readline' – zzeroo 2012-01-06 11:34:13

5

出于某种原因,我不能发表评论,@ zzeroo的答案,但我想,他是使用

--with-readline-dir=/usr/include/readline 

,而不是

--with-readline-dir=$rvm_path/usr 

我敲我的头提请注意这样一个事实,很长一段时间撞在墙上,改变这一点对我来说是固定的。

2

我GOOGLE了几天,但没有答案帮助我,所以我的解决办法是:

完全删除RVM How to remove rvm

删除所有红宝石包。首先,找出哪些包你有:

dpkg -l | grep ruby 

然后进行

sudo apt-get purge {PACKAGE}

其中{PACKAGE}是要删除(我有ruby ruby1.8 ruby1.9.1

然后我做了包全新安装RVM Install RVM并安装红宝石1.9.2与

rvm install 1.9.2 

现在它应该工作!

1

我试过了一切,但没有奏效。我必须做rvm implode(安装所有需求之后),然后rvm install 1.8.7; rvm安装1.9.3和它wor