2013年5月8日水曜日

Redmine2.3.1へアップグレード

以前構築した2.3.0を2.3.1へアップグレードした。

環境は以下の通り(Web,DB,Rubyはソースからインストール)

  • OS:CentOS 6.4(32bit)
  • Web:Apache 2.2.4(/usr/local/apache)+Passenger実行
  • DB:PostgreSQL 9.2.3(/usr/local/pgsql)
  • Ruby:1.9.3-p392
  • Redmine:/home/redmine/public_html (tarボールから)
環境の構築はこちら

バージョンアップの注意!
Redmine2.3.1よりpg-1.15.1(2.3.0では1.15.0であった)が必要となるため事前にアップしておきます。忘れるとbundle install 時、以下のエラーとなります。

エラー内容
An error occurred while installing pg (0.15.1), and Bundler cannot continue.
Make sure that `gem install pg -v '0.15.1'` succeeds before bundling.
[root@localhost public_html]# gem install pg -v '0.15.1'
Building native extensions.  This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.


libpq-fe.h headerが見つけられるようpg_configへのパスを指定してpgをインストールします。
with-pg-configはサーバ環境に合わせます。

# gem install pg -v '0.15.1' -- --with-pg-config=/usr/local/pgsql/bin/pg_config --no-rdoc --no-ri

Fetching: pg-0.15.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed pg-0.15.1
1 gem installed
Installing ri documentation for pg-0.15.1...
Installing RDoc documentation for pg-0.15.1...


もしエラーになる場合は以下のようにすれば大丈夫かも
# gem install pg -v '0.15.1' -- --with-pg-config=/usr/local/pgsql/bin/pg_config --with-pg-dir=/usr/local/pgsql/ --with-pg-lib=/usr/local/pgsql/lib/ --with-pg-include=/usr/local/pgsql/include/ --no-rdoc --no-ri


あれ?ドキュメントは不要とオプション指定しているのにインストールされてるような・・・まっいいや

ちなみにパスが正しく通っていないと以下のようにエラーとなります。

エラー内容
# gem install pg -v '0.15.1'
Building native extensions.  This could take a while...
ERROR:  Error installing pg:
        ERROR: Failed to build gem native extension.

        /usr/local/bin/ruby extconf.rb
checking for pg_config... no
No pg_config... trying anyway. If building fails, please try again with
 --with-pg-config=/path/to/pg_config
checking for libpq-fe.h... no
Can't find the 'libpq-fe.h header
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.
(ヘッダ情報が不足しておりMakefileが作れない、詳しくはmkmf.logを参照)

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/usr/local/bin/ruby
        --with-pg
        --without-pg
        --with-pg-dir
        --without-pg-dir
        --with-pg-include
        --without-pg-include=${pg-dir}/include
        --with-pg-lib
        --without-pg-lib=${pg-dir}/lib
        --with-pg-config
        --without-pg-config
        --with-pg_config
        --without-pg_config

Gem files will remain installed in /usr/local/lib/ruby/gems/1.9.1/gems/pg-0.15.1 for inspection.
Results logged to /usr/local/lib/ruby/gems/1.9.1/gems/pg-0.15.1/ext/gem_make.out
となってしまいます。


インストールを確認
# gem list --local
pg (0.15.1, 0.15.0)のように0.15.1を確認します。


では、アップグレード開始です。



DBのバックアップ

# /usr/local/pgsql/bin/pg_dump -U redmine -Fc redmine > /home/redmine/public_html/db_`date +%Y%m%d`.dump
※-Uで接続ユーザ指定、-Fcの後はDB名

Redmine2.3.0のバックアップ
# mv /home/redmine/public_html /home/redmine/public_html_230

Redmine2.3.1用の新ディレクトリ
# mkdir /home/redmine/public_html
# chmod 775 /home/redmine/public_html

Redmine2.3.1のインストール
ソースのダウンロード(ダウンロード先はhttp://rubyforge.org/frs/?group_id=1850で確認)
# cd /usr/local/src
# wget http://rubyforge.org/frs/download.php/76933/redmine-2.3.1.tar.gz
# tar zxvf redmine-2.3.1.tar.gz
# mv ./redmine-2.3.1/* /home/redmine/public_html/

設定ファイル等を戻す(プラグインは考慮されていません)
# cd /home/redmine/public_html_230/
# cp ./config/database.yml /home/redmine/public_html/config/
# cp ./config/configuration.yml /home/redmine/public_html/config/
# cp ./config/additional_environment.rb /home/redmine/public_html/config/
# cp -fr ./files/* /home/redmine/public_html/files/
# cp -r ./public/themes/farend_fancy /home/redmine/public_html/public/themes/

豆知識
cp -f としているのに上書き確認が表示される場合、alias cp='cp -i' となっていると思われます。cpコマンドの前にバックスラッシュを付加するといいでしょう。

# cd /home/redmine/public_html
# bundle install --without development test mysql sqlite
Fetching gem metadata from https://rubygems.org/.........

Fetching gem metadata from https://rubygems.org/..

Resolving dependencies...

Using rake (10.0.4) 

Using i18n (0.6.1) 

Installing multi_json (1.7.3) 

Using activesupport (3.2.13) 

Using builder (3.0.0) 

Using activemodel (3.2.13) 
Using erubis (2.7.0) 
Using journey (1.0.4) 
Using rack (1.4.5) 
Using rack-cache (1.2) 
Using rack-test (0.6.2) 
Installing hike (1.2.2) 
Installing tilt (1.4.0) 
Using sprockets (2.2.2) 
Using actionpack (3.2.13) 
Installing mime-types (1.23) 
Using polyglot (0.3.3) 
Using treetop (1.4.12) 
Using mail (2.5.3) 
Using actionmailer (3.2.13) 
Using arel (3.0.2) 
Using tzinfo (0.3.37) 
Using activerecord (3.2.13) 
Using activeresource (3.2.13) 
Using bundler (1.3.4) 
Using coderay (1.0.9) 
Using rack-ssl (1.3.3) 
Using json (1.7.7) 
Using rdoc (3.12.2) 
Installing thor (0.18.1) 
Using railties (3.2.13) 
Using jquery-rails (2.0.3) 
Using net-ldap (0.3.1) 
Using pg (0.15.1) 
Using ruby-openid (2.1.8) 
Using rack-openid (1.3.1) 
Using rails (3.2.13) 
Using rmagick (2.13.2) 
Your bundle is complete!
Gems in the groups development, test, mysql and sqlite were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

# rake generate_secret_token
# rake db:migrate RAILS_ENV=production 
# rake redmine:plugins:migrate RAILS_ENV=production
# rake tmp:cache:clear
# rake tmp:sessions:clear

Apache用の調整
# chown -R daemon:daemon /home/redmine/public_html

Apacheの再起動
# /usr/local/apache/bin/apachectl restart

2.3.0から2.3.1になりました。




0 件のコメント:

Google検索