нормальная установка Ruby 1.9 и Rails 3 через RVM

Для тех кто не знает, RVM – Ruby Version Manager, это такая штука которая позволяет иметь одновременно вагон разных версий Ruby, причем не только Ruby, а и IronRuby, REE, Rubinius и т.д. и при этом все они будут работать и не конфликтовать.

Все что тут будет сделано делалось на Fedora’х 13 и 15.

установка RVM

Для начала установим Git.

1
# yum install git -y

Далее офсайт RVM рекомендует выполнить не под рутом следующую команду:

1
2
3
4
5
6
7
$ bash < <(curl -s https://rvm.beginrescueend.com/install/rvm)
Cloning into rvm...
remote: Counting objects: 4986, done.
remote: Compressing objects: 100% (2340/2340), done.
remote: Total 4986 (delta 3224), reused 3588 (delta 1959)
Receiving objects: 100% (4986/4986), 1.63 MiB | 87 KiB/s, done.
Resolving deltas: 100% (3224/3224), done.

Нужно отметить, что в Fedora 15 эта команда действительно сработала и все прошло гладко, однако в Fedora 13 у меня так не получилось. Но не беда, кстати если у вас не установлен curl его надо обязательно поставить, в Fedora 13 можно просто скачать скрипт и запустить его:

1
2
$ wget https://rvm.beginrescueend.com/install/rvm
$ chmod u+x rvm && sh rvm

установка Ruby и примочек

После установки RVM можно приступить к установке ruby, gem и прочего.
Устанавливаем Ruby 1.9.2 (перед этим убедитесь что установлен gcc с соответсвующими фишками):

1
2
3
4
5
6
7
8
9
10
11
12
13
$ rvm install 1.9.2
Installing Ruby from source to: /home/username/.rvm/rubies/
ruby-1.9.2-p180,this may take a while depending on
your cpu(s)...
ruby-1.9.2-p180 - #fetching
ruby-1.9.2-p180 - #extracted to /home/username/.rvm/src/
ruby-1.9.2-p180 (already extracted)
Fetching yaml-0.1.3.tar.gz to /home/username/.rvm/archives
...
$ rvm ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]
$ rvm gem -v
1.6.2

Чтобы можно было запускать руби без ‘rvm’ добавляем в конец  ~/.bashrc

1
[[ -s "$HOME/.rvm/scripts/rvm" ]] && . "$HOME/.rvm/scripts/rvm"

и перезапускаем консоль.

установка Rails 3

Если попытатся сейчас установить рельсы, то скорее всего произойдет старая история с zlib’ом:

1
2
3
4
5
# gem install rails
ERROR:  Loading command: install (LoadError)
    no such file to load -- zlib
ERROR:  While executing gem ... (NameError)
    uninitialized constant Gem::Commands::InstallCommand

Чтобы это исправить сначала установим сам zlib:

1
# yum install zlib zlib-devel

А потом ищем куда RVM кинул сорцы Ruby и компилим zlib вручную:

1
2
3
4
5
6
# find / -name ruby-1.9.2*
...
/home/username/.rvm/src/ruby-1.9.2-p180
...
# cd /home/username/.rvm/src/ruby-1.9.2-p180 && cd ext/zlib
# ruby extconf.rb && make && make install

Теперь можно и установить сами рельсы:

1
# gem install rails

После чего сделать тестовое приложение:

1
2
3
4
5
6
$ rails new wapp
$ cd wapp
$ rails server
Could not find gem 'sqlite3 (>= 0)' in any of the gem
sources listed in your Gemfile.
Run `bundle install` to install missing gems.

Если появилась такая шляпа насчет sqlite3, то разумеется нужно установить этот гем:

1
2
# yum install sqlite-devel.x86_64
# gem install sqlite3

И в конце еще кое-что нужно установить:

1
2
3
4
# yum install openssl-devel
$ cd /home/username/.rvm/src/ruby-1.9.2-p180
$ cd ext/openssl
$ ruby extconf.rb && make && make install

Ну и еще совсем чуть-чуть (Readline нужен для консоли Rails):

1
2
3
# yum install readline readline-devel
$ cd /home/username/.rvm/src/ruby-1.9.2-p180/ext/readline
$ ruby extconf.rb && make && make install

вуаля

1
2
3
4
5
6
7
8
9
10
11
$ rails server
=> Booting WEBrick
=> Rails 3.0.8 application starting in development on
http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server
[2011-06-10 17:36:30] INFO  WEBrick 1.3.1
[2011-06-10 17:36:30] INFO  ruby 1.9.2 (2011-02-18)
[x86_64-linux]
[2011-06-10 17:36:30] INFO  WEBrick::HTTPServer#start:
pid=20796 port=3000

P.S. подробнее о RVM и о том какие чудеса можно с ним творить читайте на оффсайте: https://rvm.beginrescueend.com/

One Comments to “нормальная установка Ruby 1.9 и Rails 3 через RVM”

  1. lukmus пишет:

    если не хотите возиться с .bashrc, то есть способ удобнее и красивее:
    ставим rvm под рутом, после чего:

    # rvm use 1.9.2 --default
    $ ruby -v
    ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]

Leave a Reply to lukmus

(обязательно)

(обязательно)