&tag(Redmine/アップグレード/1.1.2から2.0.3);
*目次 [#e7d7dbb9]
#contents
*参考情報 [#qe1cd533]
-[[Redmine]]

*1.1.2から2.0.3 へのアップグレード (CentOS5) [#gd3110b2]
**バックアップ [#s36edaea]
-apacheを停止。
-既存redmineディレクトリの名前を変更。
 mv redmine redmine_1.1.2
**アップグレード実行 [#ic9751a5]
-redmine-2.0.3.tar.gzをダウンロードして展開
#pre{{
# gzcat redmine-2.0.3.tar.gz | (cd /home; tar xvpf - )
# cd /home
# mv redmine-2.0.3 redmine
}}
-古いバージョンのファイルをコピー。プラグインはコピーしないことにした。configuration.ymlを作らないといけないみたいだけどもともとメールの設定はしていないので無視。
#pre{{
# cp redmine_1.1.2/config/database.yml redmine/config
# cp redmine_1.1.2/db/redmine.db redmine/db
# cp -a redmine_1.1.2/files/* redmine/files
}}
-rvmを使って管理しているので一度パーミッションを一般ユーザーに変更する
#pre{{
# chown -R tanaka.tanaka redmine
}}
**rvmの準備(ruby-1.9.3p194@redmineで実行するようにする) [#a473fd52]
-ruby本体のインストール
 rvm install 1.9.3-p194
-これを選択
 rvm --default use 1.9.3-p194
-gemsetをcreate 
 rvm gemset create redmine
-これを選択
 rvm --default use 1.9.3-p194@redmine
-/home/redmine/.rvmrcを作る
#pre{{
#!/usr/bin/env bash

rvm_trust_rvmrcs_flag=1

# This is an RVM Project .rvmrc file, used to automatically load the ruby
# development environment upon cd'ing into the directory

# First we specify our desired <ruby>[@<gemset>], the @gemset name is optional,
# Only full ruby name is supported here, for short names use:
#     echo "rvm use 1.8.7" > .rvmrc
environment_id="ruby-1.9.3-p194"

# Uncomment the following lines if you want to verify rvm version per project
# rvmrc_rvm_version="1.10.3" # 1.10.1 seams as a safe start
# eval "$(echo ${rvm_version}.${rvmrc_rvm_version} | awk -F. '{print "[[ "$1*65536+$2*256+$3" -ge "$4*65536+$5*256+$6" ]]"}' )" || {
#   echo "This .rvmrc file requires at least RVM ${rvmrc_rvm_version}, aborting loading."
#   return 1
# }

# First we attempt to load the desired environment directly from the environment
# file. This is very fast and efficient compared to running through the entire
# CLI and selector. If you want feedback on which environment was used then
# insert the word 'use' after --create as this triggers verbose mode.
if [[ -d "${rvm_path:-$HOME/.rvm}/environments"
  && -s "${rvm_path:-$HOME/.rvm}/environments/$environment_id" ]]
then
  \. "${rvm_path:-$HOME/.rvm}/environments/$environment_id"
  [[ -s "${rvm_path:-$HOME/.rvm}/hooks/after_use" ]] &&
    \. "${rvm_path:-$HOME/.rvm}/hooks/after_use" || true
  if [[ $- == *i* ]] # check for interactive shells
  then echo "Using: $(tput setaf 2)$GEM_HOME$(tput sgr0)" # show the user the ruby and gemset they are using in green
  else echo "Using: $GEM_HOME" # don't use colors in non-interactive shells
  fi
else
  # If the environment file has not yet been created, use the RVM CLI to select.
  rvm --create use  "$environment_id" || {
    echo "Failed to create RVM environment '${environment_id}'."
    return 1
  }
fi
}}
**passengerをアップデート [#pa641cf7]
-redmineのディレクトリではなく自分のホームで実行する。そうしないと"Could not find passenger (> = 0) amogst rvm passenger-install-apache2-module"とかいうエラーが表示された。最後に表示される内容をhttpd.confにコピペ。
#pre{{
$ gem install passenger
$ rvmsudo passenger-install-apache2-module
}}

**マイグレーション実行 [#z510b6ba]

#pre{{
$ cd redmine
$ bundle install --path vendor/bundle
$ bundle exec rake generate_session_store
#これは不要?
$ bundle exec rake db:migrate:upgrade_plugin_migrations RAILS_ENV=production 
$ bundle exec rake db:migrate RAILS_ENV=production 
}}

*** db:migrateでinvalid byte sequence in UTF-8のエラー [#o83d4868]
-よくわらかんが、/home/redmine/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.6/lib/sqlite3/database.rbのquoteを修正して無理やり押し通した。
#pre{{
      def quote( string )
        begin
          string.gsub( /'/, "''" )
        rescue ArgumentError
          print $!        end
      end
}}
***mysql.h missingになった場合 [#n7e3591c]
-mysql-develが入っていないのでインストールする。
sudo yum --enablerepo=remi install mysql-devel
***An error occured while installing pg (0.14.0)といわれたとき [#g998e3ac]
-PostgreSQL用のモジュールをインストールしようとしてエラーになっている。Gemfileを編集し以下の部分をコメントアウトする。
#pre{{
# Database gems
platforms :mri, :mingw do
#  group :postgresql do
#    gem "pg", ">= 0.11.0"
#  end
#
  group :sqlite do
    gem "sqlite3"
  end
end
}}
***RMagicでエラーになった場合 [#dd610e9a]
-RMagicをインストールするのにImageMagicが必要名ので先にインストール。
-[[Problem installing RMagick rubygem on Centos 5 - Stack Overflow:http://stackoverflow.com/questions/1254366/problem-installing-rmagick-rubygem-on-centos-5/7766705#7766705]]より
#pre{{
sudo rpm -Uvh http://rbel.co/rbel5
sudo yum install ImageMagick-devel ImageMagick-c++-devel
gem install rmagick
}}
**動作確認 [#w01c39a5]
-とりあえず組み込みWebサーバーで動作確認。
 $  ruby  script/rails server -e production
-キーがどうのこうのいわれたときは以下を実行
 $ bundle exec rake generate_secret_token
-passengerで動かす場合パーミッションをapache.apacheに戻す。
 sudo chown -R apache.apache redmine


***cannot load such file -- rubygems/path_supportがでた場合 [#qd3c8958]
-rvmでrubyをインストールしたユーザーtanakaのホームディレクトリのパーミッションがたぶん700になっている(/home/tanaka)。
-セキュリティ的にはだめそうだが以下で解決できる。
 sudo chmod 755 /home/tanaka
-またはapacheユーザーをユーザーグループtanakaに所属させ、グループ権限を与える。
 usermod -G tanaka apache
 sudo chmod 750 /home/tanaka
-もしくはシステムワイドでrubyインスコ?
-apache再起動。

*全般的なトラブルシューティング [#y88c1add]
**リポジトリに、エントリ/リビジョンが存在しません [#cc1d3a23]
-config/configuration.ymlがおかしい。svnの場合は以下のような感じで設定する。
 scm_subversion_command: /usr/local/bin/svn


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS