在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
,然后按照上面所示进行编译。