нормальная установка 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/
если не хотите возиться с .bashrc, то есть способ удобнее и красивее:
ставим rvm под рутом, после чего:
# rvm use 1.9.2 --default
$ ruby -v
ruby 1.9.2p180 (2011-02-18 revision 30909) [x86_64-linux]