在ubuntu上使用rvm安装ruby 1.9.3

在ubuntu上使用rvm安装ruby 1.9.3,rvm,readline,ruby-1.9.3,libreadline,Rvm,Readline,Ruby 1.9.3,Libreadline,可能重复: 我已经安装了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/ \

可能重复:

我已经安装了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)
我已经安装了libreadlinedev(版本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.

想法?

我一直觉得让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

我最后做的是从rvm usr/lib/path中删除所有libreadline

手动下载已安装的libreadline5开发包(.deb),因为新的ubuntu发行版只有libreadline6开发包作为候选

转到rvm ruby 1.9.3 src并:

ruby extconf.rb --with-editline-dir=/usr/ --with-readline-dir=/usr/
make
sudo make install
现在就像一个符咒

非常痛苦的事情:)

编辑:

还请记住,readline现在也使用libeditline dev,您可以在配置ruby readline时手动禁用,并传递:--disable libedit

 ruby extconf --disable-libedit

我试着做rvm pkg readline,安装ubuntu pkgs等等,但没有成功。对我有用的是:

gem install rb-readline
并将以下行添加到文件中:

gem 'rb-readline'

这对我来说很有效,但是我试着运行
rvm requirements
来获得应该存在的包的列表。DUH!我的错误是假设安装libreadline6 dev会自动安装libreadline6。我使用的是ruby 1.9.3-p194。帮我修好了!为我工作!非常感谢,非常感谢!我在这里尝试了所有的解决方案,在rvm页面中也尝试了所有的解决方案,但都没有成功。我已经试着让它工作了好几个小时了!这很有效。再次感谢+1是构建readline的非常好的替代方案。我以前从源代码处安装过数百个库,但无法在某台机器上构建readline扩展。修复得非常好。。给那个把它捆成宝石的家伙一顶帽子。我很想了解更多。如何在ubuntu 12.04上手动安装libreadline5 dev?在线上没有太多的内容。@user938363只需要像这样安装它:
sudo apt get install libreadline5 dev
,然后按照上面所示进行编译。