2012-01-19 55 views
17

可能重复安装Ruby 1.9.3:
Ruby 1.9.2 and Rails 3 cannot open rails console使用RVM在Ubuntu

我已经安装了RVM和Ruby 1.9.2,无论是正常工作。使用rvm版本1.10.2。我之前安装了rvm软件包readline/zlib,但现在我在使用readline时遇到了很大的麻烦。我试图在rvm中安装ruby 1.9.3,但我总是最终没有找到readline。

我试图按照不同的解决方案:

rvm remove 1.9.3 
rvm pkg install readline 
rvm install 1.9.3 --with-readline-dir=$rvm_path/usr/ \ 
    --with-zlib-dir=$rvm_path/usr/ 

rvm use 1.9.3 
rvmsudo gem install bundler 
bundle install (all gems installed fine) 
rails c/rails s 
.rvm/rubies/ruby-1.9.3-p0/lib/ruby/1.9.1/irb/completion.rb:9:in `require': \ 
    cannot load such file -- readline (LoadError) 

我有libreadline-DEV(第6版,当前的)安装(一切由那些包非常需要)

我也试过以下:当然不是产生

.rvm/src/ruby-1.9.3-p0/ext/readline]$ 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 

.rvm/src/ruby-1.9.3-p0/ext/readline]$ ruby extconf.rb \ 
    --with-readline-dir=/home/claudiocontin/.rvm/usr/ 
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/src/ruby-1.9.3-p0/ext/readline]$ ruby extconf.rb \ 
    --with-readline-lib=/home/claudiocontin/.rvm/usr/ 
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 

的Makefile ...

apt-get install libreadline-dev 
Reading package lists... Done 
Building dependency tree  
Reading state information... Done 
libreadline-dev is already the newest version. 

想法?

回答

12

我最终什么事做的是从RVM USR删除所有libreadline/lib /路径。

已安装libreadline5-dev软件包(本例中是.deb)手动下载,因为新的ubuntu发行版只有libreadline6-dev作为候选软件。

去RVM红宝石1.9.3 src和:

ruby extconf.rb --with-editline-dir=/usr/ --with-readline-dir=/usr/ 
make 
sudo make install 

现在就像一个魅力。

很痛苦的东西:)

编辑:

也请记住,现在的ReadLine还采用libeditline-dev的,你可以手动禁用时配置红宝石的readline,路过:--disable-libedit

ruby extconf --disable-libedit 
+0

如何在ubuntu 12.04上手动安装libreadline5-dev?网上没有太多关于这个。 – user938363

+0

@ user938363 apt-get install就像这样:'sudo apt-get install libreadline5-dev'然后按照上图所示进行编译。 –

5

我一直发现让​​RVM能很好地与软件包一起玩,成为一种巫术。很多时候,它是关于醒目的依赖 - 我放在一起,我已经在过去有运气的脚本,试试这个:

sudo apt-get install zlib1g-dev libssl-dev libsqlite3-dev libmysqlclient-dev imagemagick librmagick-ruby libxml2-dev libxslt1-dev build-essential openssl libreadline6 libreadline6-dev zlib1g libyaml-dev libsqlite3-0 sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev ncurses-dev automake libtool bison libpq-dev libpq5 libmysql-ruby libmysqlclient-dev 

rvm pkg install autoconf 
rvm pkg install zlib 
rvm pkg install readline 
rvm pkg install openssl 
rvm pkg install iconv 
rvm install 1.9.3 
rvm use 1.9.3 --default 
+0

没有运气。仍然一样... – CLod

+0

为我工作,bur为[rbenv](https://github.com/sstephenson/rbenv) – fluxsaas

+0

尝试运行'rvm requirements'以获取应该出现的包列表。 –

45

我试图做rvm pkg readline,安装ubuntu pkgs等没有任何成功。什么工作对我来说:

gem install rb-readline 

和下面的行添加到您的Gemfile:

gem 'rb-readline' 
+1

这也适用于我 –

+0

非常感谢!我在这里尝试了每个解决方案,并且在rvm页面中尝试了每个解决方案,但没有运气一直试图让这个工作几个小时吧!这很好。再次感谢! – AyJay

+0

+1非常适合建立readline。我之前已经安装了数百个来自源代码库的库,但无法获得在特定机器上构建的readline扩展。 – Kelvin