RVMを使用してRedmineをインストールするためのRails環境の準備

多くのRailsアプリケーションが正常に動作するには、ルビーバージョン、レール自体のバージョン、レーキ、ルビジェムなどの特定のバージョンのコンポーネントが必要です。 Linuxディストリビューション(私の場合はUbuntu 10.04 LTS Server)では、これらのコンポーネントのバージョンが異なる可能性があります。 あなたは簡単な方法で行くことができます-ソースコードから必要なルビーバージョンを入れて、他のすべてをルビジェムで入れてください。 しかし、私たちは、埋立地にならないようにしながら、信頼性と再現性のある結果とシステムを獲得したいと考えています。



この問題を解決するには、RVM(Rubyバージョンマネージャー)を使用します。 次のスクリプト(redmine-1.2-prepare.sh)は、sqlite形式のデータベースでRedmineバージョン1.2をインストールするためのRails環境を準備します。 使用されるWebサーバーはapache2 + passengerです。 このスクリプトは、redmineユーザーを作成し、必要なパッケージをインストールし、redmineユーザーのホームディレクトリにRVMをインストールしてから、そこでrails環境を構築します。



スクリプトの後には、インストールの最後にRVM自身によって提案されたapache2(redmine.conf)のサンプル設定ファイルがあります(デフォルトでは誰も使用されないため、PassengerUser www-dataのみが追加されました)。



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/ruby-1.8.7-p358-gems162@redmine1.2/gems/passenger-3.0.11/ext/apache2/mod_passenger.so PassengerRoot /home/redmine/.rvm/gems/ruby-1.8.7-p358-gems162@redmine1.2/gems/passenger-3.0.11 PassengerRuby /home/redmine/.rvm/wrappers/ruby-1.8.7-p358-gems162@redmine1.2/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サーバーでチェックされるスクリプト



更新 :既にこのスクリプトを試したかどうかはわかりませんが、「コードペインティング」の間に犯した間違いを1つ見つけました。 並んで

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

さらに2つのバックスラッシュが必要です

「[[-s」\ $ HOME / .rvm / scripts / rvm "]] && source" \ $ HOME / .rvm / scripts / rvm "" && \ "。



UPDATE2 :Redmine 1.4.x以降では、スクリプトをいくらか単純化できます。 Redmineは、依存関係管理にバンドラーの使用を開始しました。



更新3 :最新のスクリプトは常にリンクにあります: http : //www.helplinux.ru/wiki/en : kb : redmine-installation



All Articles