Обходим грабли при установке Ruby on Rails в RVM под Ubuntu
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)