Установить ruby ​​1.9.3 с помощью rvm на ubuntu

Возможный дубликат:
Ruby 1.9.2 и Rails 3 не могут открыть консоль рельсов

Я уже установил rvm и ruby ​​1.9.2, оба работают нормально. Использование версии rvm 1.10.2. Я ранее устанавливал rvm-пакеты readline/zlib, но теперь у меня большие проблемы с readline. Я пытаюсь установить ruby ​​1.9.3 в rvm, но я всегда заканчиваю тем, что 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.

Идеи?

Ответ 1

То, что я закончил, - удалить всю libreadline из rvm usr/lib/path.

Установленный пакет libreadline5-dev (.deb в этом случае) загружен вручную, потому что новый дистрибутив ubuntu имеет только libreadline6-dev в качестве кандидата.

отправился в 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

Ответ 2

Я попытался сделать rvm pkg readline, установить ubuntu pkgs и т.д. без каких-либо успехов. Что сработало для меня:

gem install rb-readline

И добавьте следующую строку в свой Gemfile:

gem 'rb-readline'

Ответ 3

Я всегда находил, что RVM прекрасно играет с пакетами, чтобы быть немного вуду. Много раз, об улавливании зависимости, я собрал script, с которым мне повезло в прошлом, попробуйте следующее:

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