Подготовка Среды Rails Для Установки Redmine С Помощью Rvm

Для корректной работы многих Rails-приложений необходимы определенные версии их компонентов, такие как версия Ruby, версия самого Rails, а также rake, RubyGems и т.д. И скорее всего в вашем дистрибутиве Linux (в моем случае это сервер Ubuntu 10.04 LTS) версии этих компонентов будут разными.

Можно пойти простым путем — установить нужную версию Ruby из исходного кода, а все остальное сделать с помощью RubyGems. Но мы хотим получить надежный и воспроизводимый результат, а не превращать систему в свалку.

Чтобы решить эту проблему, мы будем использовать RVM (менеджер версий Ruby).

Следующий скрипт (redmine-1.2-prepare.sh) подготавливает среду рельсов к установке.

Редмине версия 1.2 с базой данных в формате sqlite. В качестве веб-сервера используется Apache2+пассажир.

Скрипт создает пользователя Redmine, устанавливает необходимые пакеты, устанавливает RVM в домашний каталог пользователя Redmine, а затем собирает там среду Rails. Далее по сценарию идет пример файла конфигурации для apache2 (redmine.conf), предложенного самим RVM в конце установки (я добавил только www-данные PassengerUser, так как по умолчанию никто не используется).



redmine-1.2-prepare.sh

  
   

#!/bin/bash -e # Define common variables USERNAME=redmine RUN_WITH_USERNAME="sudo -iu $USERNAME http_proxy=$http_proxy https_proxy=$https_proxy" # Create user with $USERNAME id $USERNAME || sudo useradd -rm $USERNAME # Install apache2 sudo apt-get install apache2 # Install RVM and rvm reqirements sudo apt-get install curl $RUN_WITH_USERNAME bash -s stable < <(curl -s https://raw.github.com/wayneeseguin/rvm/master/binscripts/rvm-installer ) # Install packages suggested by rvm-installer sudo apt-get install \ build-essential openssl libreadline6 libreadline6-dev curl \ git-core zlib1g zlib1g-dev libssl-dev libyaml-dev libsqlite3-0 \ libsqlite3-dev sqlite3 libxml2-dev libxslt-dev autoconf libc6-dev \ ncurses-dev automake libtool bison subversion # Prepare environment for Redmine 1.2 ## Define versions REDMINE_VERSION=1.2 RUBY_VERSION=1.8.7 GEM_VERSION=1.6.2 RAKE_VERSION=0.8.7 RACK_VERSION=1.1.3 I18N_VERSION=0.4.2 RAILS_VERSION=2.3.11 ## Install packages necessary to build passenger for apache2 sudo apt-get install libcurl4-gnutls-dev apache2-prefork-dev libapr1-dev libaprutil1-dev ## Prepare GEM_INSTALL="gem install --no-rdoc --no-ri" GEM_VERSION_SHORT=${GEM_VERSION//.

/} cat << EOF | $RUN_WITH_USERNAME bash -e [[ -s "\$HOME/.

rvm/scripts/rvm" ]] && source "\$HOME/.

rvm/scripts/rvm" && \ rvm install $RUBY_VERSION-gems$GEM_VERSION_SHORT && \ rvm use $RUBY_VERSION-gems$GEM_VERSION_SHORT && \ rvm rubygems $GEM_VERSION && \ rvm gemset create redmine$REDMINE_VERSION && \ rvm use $RUBY_VERSION-gems$GEM_VERSION_SHORT@redmine$REDMINE_VERSION ## Install necessary gems $GEM_INSTALL -v=$RAKE_VERSION rake && \ $GEM_INSTALL -v=$RACK_VERSION rack && \ $GEM_INSTALL -v=$I18N_VERSION i18n && \ $GEM_INSTALL -v=$RAILS_VERSION rails && \ $GEM_INSTALL sqlite3 ## Install passenger $GEM_INSTALL passenger ## Build passenger passenger-install-apache2-module -a EOF



redmine.conf



<VirtualHost *:80> # Passenger PassengerUser www-data LoadModule passenger_module /home/redmine/.

rvm/gems/[email protected]/gems/passenger-3.0.11/ext/apache2/mod_passenger.so PassengerRoot /home/redmine/.

rvm/gems/[email protected]/gems/passenger-3.0.11 PassengerRuby /home/redmine/.

rvm/wrappers/[email protected]/ruby # Public directory DocumentRoot /opt/redmine/redmine-1.2/public <Directory /opt/redmine/redmine-1.2/public> AllowOverride None Options -MultiViews </Directory> </VirtualHost>

PS: В скрипте предусмотрена возможность установки с использованием прокси-сервера.

Прокси-сервер должен быть установлен через переменные среды http_proxy и https_proxy. Скрипт протестирован на сервере Ubuntu 10.04 LTS. ОБНОВЛЯТЬ : Не знаю, пробовали ли вы уже этот скрипт или нет, но я нашел в нем одну ошибку, допущенную при «раскраске кода», прошу прощения.

В соответствии "[[ -s "$HOME/.

rvm/scripts/rvm" ]] && источник "$HOME/.

rvm/scripts/rvm" && \" должно быть еще две обратные косые черты "[[ -s "\$HOME/.

rvm/scripts/rvm" ]] && источник "\$HOME/.

rvm/scripts/rvm"" && \".

ОБНОВЛЕНИЕ2 : начиная с Redmine 1.4.x скрипт можно несколько упростить, т.к.

Redmine стал использовать бандлер для управления зависимостями.

ОБНОВЛЕНИЕ3 : последние версии скриптов всегда по ссылке: http://www.helplinux.ru/wiki/en:kb:redmine-installation Теги: #Redmine #ruby onrails #scripting #passenger #open source #rvm #ubuntu #ruby onrails

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.