Обходим грабли при установке Ruby on Rails в RVM под Ubuntu

Опубликовано 29 сентября 2012 ()

The solution to the problem with undefined symbol SSLv2_method is available in English.

RVM и команда Canonical заботливо подготовили пару грабелек, ожидающих каждого, кто ставит рельсы в RVM под Ubuntu. Чтобы собирать руби не четыре раза, а только один, перед установкой нужно провести кое-какие подготовительные действия. Все описанное нужно выполнять сразу после установки RVM.

Поскольку в мире руби все меняется настолько быстро, что за то время, пока напишешь строку кода, в ней уже что-нибудь неправильно из-за изменений в самом языке или каком-нибудь геме, указываю версии.

  • Ruby 1.9.3-p194
  • RVM 1.15.8 (stable)
  • Rails 3.2.8.

Перед началом процедур RVM нужно активировать.

$ source ~/.rvm/scripts/rvm

Во-первых, нужен zlib (для bundler, который используется рельсами).

$ rvm pkg install zlib

Во-вторых, нужен некастрированный openssl (товарищи из Canonical любезно выпилили из своей либы поддержку SSLv2, мол это ненадежно, не модно и вообще).

$ rvm pkg install openssl

В-третьих, нужен readline, если вы собираетесь использовать рельсовую консоль.

$ sudo apt-get install libreadline-dev
$ rvm pkg install readline

Все, теперь можно ставить руби и рельсы.

$ rvm install 1.9.3 --with-openssl-dir=$rvm_path/usr
$ gem install rails

Тех, кто не последовал совету, последовательно ожидают следующие кары:

ERROR:  Loading command: install (LoadError)
    cannot load such file -- zlib
...
undefined symbol: SSLv2_method
...
in `require': cannot load such file -- readline (LoadError)
Хотите оставить комментарий? Можете сделать это в Twitter.