&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