Rails 3
Материал из 1GbWiki.
Версия 12:31, 2 ноября 2011 (править) Renton (Обсуждение | вклад) (→Установка Ruby) ← К предыдущему изменению |
Текущая версия (20:18, 15 августа 2024) (править) (отменить) Dmih (Обсуждение | вклад) |
||
(27 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
+ | {{устарело}} | ||
+ | |||
+ | <table cellspacing="0"> | ||
+ | <tr style="background: #F7D9D9"> | ||
+ | <td width="950px" style="vertical-align:top; border-top: 1px solid #D63838; border-left: 1px solid #D63838; border-bottom: 1px solid #D63838; border-right: 1px solid #D63838; padding: 1em;"> | ||
+ | <span style="font-size: 28px; font-weight: bold;">Эта инструкция устарела и больше не будет обновляться.<br /><br /> | ||
+ | Используйте [[Rails - быстрый старт]]</span> | ||
+ | </td> | ||
+ | </tr> | ||
+ | </table> | ||
+ | <br /> | ||
+ | <br /> | ||
Данная статья подразумевает, что вы уже знакомы с хостингом приложений Rails от 1Gb.ru, умеете самостоятельно переключать сайт в режим RoR, работать в консоли и выполнять базовую настройку приложения. Эта статья для тех, кто хочет воспользоваться самыми последними версиями Ruby и фреймворка Rails, и понимает, с какими трудностями он может столкнуться. | Данная статья подразумевает, что вы уже знакомы с хостингом приложений Rails от 1Gb.ru, умеете самостоятельно переключать сайт в режим RoR, работать в консоли и выполнять базовую настройку приложения. Эта статья для тех, кто хочет воспользоваться самыми последними версиями Ruby и фреймворка Rails, и понимает, с какими трудностями он может столкнуться. | ||
Строка 5: | Строка 17: | ||
== Настройка окружения == | == Настройка окружения == | ||
- | + | '''1.''' В личном кабинете в разделе <code>/Хостинг Ruby on Rails/</code> переключите сайт в режим Rails-хостинга. | |
=== Установка Ruby === | === Установка Ruby === | ||
- | На новых | + | Для установки Ruby on Rails '''3-ей''' версии нам потребуется Ruby '''1.9'''.<br /> |
- | $ | + | На новых серверах хостинга 1Gb.ru, версия ruby 1.9 уже установлена общесистемно в каталог /opt, чтобы это проверить, нужно выполнить такую команду: |
+ | $ /opt/ruby/current/bin/ruby -v | ||
если Ruby есть, то увидите примерно такой ответ: | если Ruby есть, то увидите примерно такой ответ: | ||
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux] | ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux] | ||
- | в этом случае можно пропустить шаг установки | + | в этом случае можно пропустить шаг установки Ruby и переходить к пункту '''"6 . Настройка переменных окружения"'''. |
- | Если ruby нет, то переходим к установке. | + | Если ruby нет, то переходим к установке.<br /><br /> |
- | + | '''1.''' Создаем каталог для исходных текстов: | |
$ mkdir ~/src && cd ~/src | $ mkdir ~/src && cd ~/src | ||
- | + | '''2.''' Скачиваем последнюю версию Ruby командой: | |
- | | + | $ <nowiki>links -dump https://ftp.ruby-lang.org/pub/ruby/1.9/ | fgrep '.bz2 ' | sort -nk4 | tail -n 1 | awk '{system ("wget https://ftp.ruby-lang.org/pub/ruby/1.9/"$1)}'</nowiki> |
- | + | ||
- | + | ||
- | + | либо скачиваем вручную с сайта http://www.ruby-lang.org/en/downloads/ желаемую версию Ruby. | |
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | + | ||
- | * Настройка переменных окружения. В | + | '''3.''' Распаковка: |
- | | + | $ tar xvfj ruby-1.* |
- | export GEM_HOME="$HOME/.gems" | + | |
- | + | '''4.''' Устанавливаем Ruby в свой домашний каталог в папку ~/opt | |
- | export PATH="$GEM_HOME/bin:$HOME/opt/ruby/current/bin:$PATH" | + | $ cd ruby-1.* && ./configure --prefix=${HOME}/opt/ruby/$(echo ${PWD##*/} \ |
+ | | sed 's/^ruby-\(.*\)$/\1/') --disable-install-doc --disable-install-rdoc --disable-install-capi && make && make install | ||
+ | при конфигурации вы можете добавить еще какие-то свои опции, но на мой взгляд ничего заслуживающего внимания там нет.<br /><br /> | ||
+ | '''5.''' Если все прошло успешно, переходим в каталог с ruby и для удобства делаем symlink: | ||
+ | $ cd ~/opt/ruby && rm -f current && ln -vs $(ls -1t | head -n 1) current | ||
+ | |||
+ | '''6.''' '''Настройка переменных окружения.'''<br /> | ||
+ | В файл <code>~/.bashrc</code> добавляем пути к локальным gems, ruby: | ||
+ | $ grep -q RUBYOPT ~/.bashrc || sed -i '/^# rails environment/,+5d;/happen/a #\n# rails 3 environment\nunset RUBYOPT\ | ||
+ | export GEM_HOME="${HOME}/.gems"\nexport GEM_PATH="${GEM_HOME}:${HOME}/opt/ruby/current/lib/ruby:/opt/ruby/current/lib/ruby"\ | ||
+ | export PATH="${GEM_HOME}/bin:${HOME}/opt/ruby/current/bin:/opt/ruby/current/bin:${PATH}"' ~/.bashrc | ||
Полностью файл <code>~/.bashrc</code> может выглядить так: | Полностью файл <code>~/.bashrc</code> может выглядить так: | ||
- | # /etc/skel/.bashrc | + | <nowiki># /etc/skel/.bashrc |
# | # | ||
# This file is sourced by all *interactive* bash shells on startup, | # This file is sourced by all *interactive* bash shells on startup, | ||
Строка 42: | Строка 57: | ||
# that can't tolerate any output. So make sure this doesn't display | # that can't tolerate any output. So make sure this doesn't display | ||
# anything or bad things will happen ! | # anything or bad things will happen ! | ||
- | + | # | |
+ | # rails 3 environment | ||
unset RUBYOPT | unset RUBYOPT | ||
- | export GEM_HOME="$HOME/.gems" | + | export GEM_HOME="${HOME}/.gems" |
- | export GEM_PATH="$GEM_HOME:$HOME/opt/ruby/current/lib/ruby/ | + | export GEM_PATH="${GEM_HOME}:${HOME}/opt/ruby/current/lib/ruby:/opt/ruby/current/lib/ruby" |
- | export PATH="$GEM_HOME/bin:$HOME/opt/ruby/current/bin:$PATH" | + | export PATH="${GEM_HOME}/bin:${HOME}/opt/ruby/current/bin:/opt/ruby/current/bin:${PATH}" |
# Test for an interactive shell. There is no need to set anything | # Test for an interactive shell. There is no need to set anything | ||
# past this point for scp and rcp, and it's important to refrain from | # past this point for scp and rcp, and it's important to refrain from | ||
# outputting anything in those cases. | # outputting anything in those cases. | ||
- | if | + | if [[ $- != *i* ]] ; then |
# Shell is non-interactive. Be done now! | # Shell is non-interactive. Be done now! | ||
return | return | ||
Строка 63: | Строка 79: | ||
# Put your fun stuff here. | # Put your fun stuff here. | ||
- | export PERL5LIB=/ | + | export PERL5LIB=${HOME}/perl/lib64/perl5:${HOME}/perl/lib64/perl5/site_perl:${HOME}/perl/lib64/perl5/vendor_perl</nowiki> |
- | + | '''7.''' Импорт окружения: | |
$ source ~/.bashrc | $ source ~/.bashrc | ||
== Установка пакетов == | == Установка пакетов == | ||
- | + | '''1.''' Ставим Rails и сопутствующие пакеты: | |
- | $ gem install rails --no-rdoc --no-ri | + | $ gem install rails --no-rdoc --no-ri --version '< 4' |
проверяем версию: | проверяем версию: | ||
$ rails -v | $ rails -v | ||
Rails 3.0.3 | Rails 3.0.3 | ||
- | $ gem install sqlite3-ruby | ||
- | $ gem install mysql | ||
- | По умолчанию, на хостинге ставится web-сервер [https://github.com/fauna/mongrel Mongrel], но он до сих пор не работает нормально с Rails 3-ей версии, поэтому будем использовать [http://code.macournoyer.com/thin/ Thin] | ||
- | $ gem install thin | ||
- | + | $ gem install sqlite3-ruby --no-rdoc --no-ri | |
- | | + | $ gem install mysql --no-rdoc --no-ri |
+ | $ gem install execjs --no-rdoc --no-ri | ||
+ | $ gem install therubyracer --no-rdoc --no-ri | ||
+ | |||
+ | По умолчанию на хостинге 1Gb.ru для обслуживания Rails приложений ставится web-сервер [https://github.com/fauna/mongrel Mongrel], но он до сих пор не работает с Rails 3, поэтому вместо него будем использовать [http://code.macournoyer.com/thin/ Thin] | ||
+ | $ gem install thin --no-rdoc --no-ri | ||
+ | |||
+ | '''2.''' Для того чтобы вместо Mongrel'а запускался наш web-сервер, в файле <code>~/.railsrc</code> прописываем версию своего Rails и полный путь к web-серверу: | ||
+ | $ echo -e "RAILS_VERSION=3\nMONGREL_BIN_MY=\${HOME}/.gems/bin/thin" > ~/.railsrc | ||
== Настройка приложения и запуск == | == Настройка приложения и запуск == | ||
- | + | '''1.''' Удаляем старое приложение и ставим свое: | |
- | $ rm -rf ~/http/ | + | $ rm -rf ~/http/ && rails new ~/http |
- | $ | + | |
+ | '''2.''' Добавляем в приложение библиотеку для запуска JavaScript кода непосредственно из Ruby: | ||
+ | $ echo "gem 'execjs'" >> ~/http/Gemfile | ||
+ | $ echo "gem 'therubyracer'" >> ~/http/Gemfile | ||
- | + | '''3.''' Подключаем thin в приложение: | |
- | + | $ echo "gem 'thin'" >> ~/http/Gemfile | |
- | + | ||
- | + | '''4.''' Запускаем: | |
- | $ killall -9 mongrel_rails | + | $ killall -9 mongrel_rails; ~/init.d/mongrel start |
- | + | Если все сделали правильно, то у вас откроется вот такая тестовая страница приложения http://test-l19-ror3.1gb.ru/ . | |
== См. также == | == См. также == | ||
* [[Юникс шелл]] | * [[Юникс шелл]] | ||
* [[Ruby on Rails: использование gems]] | * [[Ruby on Rails: использование gems]] | ||
+ | * [[Как обновить RubyGems]] | ||
== Ссылки == | == Ссылки == |
Текущая версия
Эта инструкция устарела и больше не будет обновляться. |
Данная статья подразумевает, что вы уже знакомы с хостингом приложений Rails от 1Gb.ru, умеете самостоятельно переключать сайт в режим RoR, работать в консоли и выполнять базовую настройку приложения. Эта статья для тех, кто хочет воспользоваться самыми последними версиями Ruby и фреймворка Rails, и понимает, с какими трудностями он может столкнуться.
Также справедливо отметить, что любой хостинг, прежде всего, стремится предоставить стабильные и проверенные версии программных продуктов, с целью обеспечить максимальную устойчивость и переносимость web-приложений. Поэтому, если вы хотите идти в одном шаге с разработчиками, то в первую очередь вам необходимо рассчитывать только на свои силы.
Содержание |
[править] Настройка окружения
1. В личном кабинете в разделе /Хостинг Ruby on Rails/
переключите сайт в режим Rails-хостинга.
[править] Установка Ruby
Для установки Ruby on Rails 3-ей версии нам потребуется Ruby 1.9.
На новых серверах хостинга 1Gb.ru, версия ruby 1.9 уже установлена общесистемно в каталог /opt, чтобы это проверить, нужно выполнить такую команду:
$ /opt/ruby/current/bin/ruby -v
если Ruby есть, то увидите примерно такой ответ:
ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-linux]
в этом случае можно пропустить шаг установки Ruby и переходить к пункту "6 . Настройка переменных окружения".
Если ruby нет, то переходим к установке.
1. Создаем каталог для исходных текстов:
$ mkdir ~/src && cd ~/src
2. Скачиваем последнюю версию Ruby командой:
$ links -dump https://ftp.ruby-lang.org/pub/ruby/1.9/ | fgrep '.bz2 ' | sort -nk4 | tail -n 1 | awk '{system ("wget https://ftp.ruby-lang.org/pub/ruby/1.9/"$1)}'
либо скачиваем вручную с сайта http://www.ruby-lang.org/en/downloads/ желаемую версию Ruby.
3. Распаковка:
$ tar xvfj ruby-1.*
4. Устанавливаем Ruby в свой домашний каталог в папку ~/opt
$ cd ruby-1.* && ./configure --prefix=${HOME}/opt/ruby/$(echo ${PWD##*/} \ | sed 's/^ruby-\(.*\)$/\1/') --disable-install-doc --disable-install-rdoc --disable-install-capi && make && make install
при конфигурации вы можете добавить еще какие-то свои опции, но на мой взгляд ничего заслуживающего внимания там нет.
5. Если все прошло успешно, переходим в каталог с ruby и для удобства делаем symlink:
$ cd ~/opt/ruby && rm -f current && ln -vs $(ls -1t | head -n 1) current
6. Настройка переменных окружения.
В файл ~/.bashrc
добавляем пути к локальным gems, ruby:
$ grep -q RUBYOPT ~/.bashrc || sed -i '/^# rails environment/,+5d;/happen/a #\n# rails 3 environment\nunset RUBYOPT\ export GEM_HOME="${HOME}/.gems"\nexport GEM_PATH="${GEM_HOME}:${HOME}/opt/ruby/current/lib/ruby:/opt/ruby/current/lib/ruby"\ export PATH="${GEM_HOME}/bin:${HOME}/opt/ruby/current/bin:/opt/ruby/current/bin:${PATH}"' ~/.bashrc
Полностью файл ~/.bashrc
может выглядить так:
# /etc/skel/.bashrc # # This file is sourced by all *interactive* bash shells on startup, # including some apparently interactive shells such as scp and rcp # that can't tolerate any output. So make sure this doesn't display # anything or bad things will happen ! # # rails 3 environment unset RUBYOPT export GEM_HOME="${HOME}/.gems" export GEM_PATH="${GEM_HOME}:${HOME}/opt/ruby/current/lib/ruby:/opt/ruby/current/lib/ruby" export PATH="${GEM_HOME}/bin:${HOME}/opt/ruby/current/bin:/opt/ruby/current/bin:${PATH}" # Test for an interactive shell. There is no need to set anything # past this point for scp and rcp, and it's important to refrain from # outputting anything in those cases. if [[ $- != *i* ]] ; then # Shell is non-interactive. Be done now! return fi # Midnight Commander chdir enhancement if [ -f /usr/share/mc/mc.gentoo ]; then . /usr/share/mc/mc.gentoo fi # Put your fun stuff here. export PERL5LIB=${HOME}/perl/lib64/perl5:${HOME}/perl/lib64/perl5/site_perl:${HOME}/perl/lib64/perl5/vendor_perl
7. Импорт окружения:
$ source ~/.bashrc
[править] Установка пакетов
1. Ставим Rails и сопутствующие пакеты:
$ gem install rails --no-rdoc --no-ri --version '< 4'
проверяем версию:
$ rails -v Rails 3.0.3
$ gem install sqlite3-ruby --no-rdoc --no-ri $ gem install mysql --no-rdoc --no-ri $ gem install execjs --no-rdoc --no-ri $ gem install therubyracer --no-rdoc --no-ri
По умолчанию на хостинге 1Gb.ru для обслуживания Rails приложений ставится web-сервер Mongrel, но он до сих пор не работает с Rails 3, поэтому вместо него будем использовать Thin
$ gem install thin --no-rdoc --no-ri
2. Для того чтобы вместо Mongrel'а запускался наш web-сервер, в файле ~/.railsrc
прописываем версию своего Rails и полный путь к web-серверу:
$ echo -e "RAILS_VERSION=3\nMONGREL_BIN_MY=\${HOME}/.gems/bin/thin" > ~/.railsrc
[править] Настройка приложения и запуск
1. Удаляем старое приложение и ставим свое:
$ rm -rf ~/http/ && rails new ~/http
2. Добавляем в приложение библиотеку для запуска JavaScript кода непосредственно из Ruby:
$ echo "gem 'execjs'" >> ~/http/Gemfile $ echo "gem 'therubyracer'" >> ~/http/Gemfile
3. Подключаем thin в приложение:
$ echo "gem 'thin'" >> ~/http/Gemfile
4. Запускаем:
$ killall -9 mongrel_rails; ~/init.d/mongrel start
Если все сделали правильно, то у вас откроется вот такая тестовая страница приложения http://test-l19-ror3.1gb.ru/ .
[править] См. также
[править] Ссылки
- Ruby on Rails (рус.) - общая информация на сайте 1Gb.ru.
- Ruby on Rails (англ.) - официальный сайт проекта, дистрибутивы, статьи, документация.