Tag: Redmine/アップグレード/1.1.2から2.0.3

目次

参考情報

1.1.2から2.0.3 へのアップグレード (CentOS5)

バックアップ

  • apacheを停止。
  • 既存redmineディレクトリの名前を変更。
    mv redmine redmine_1.1.2

アップグレード実行

  • redmine-2.0.3.tar.gzをダウンロードして展開
    # gzcat redmine-2.0.3.tar.gz | (cd /home; tar xvpf - )
    # cd /home
    # mv redmine-2.0.3 redmine
    
  • 古いバージョンのファイルをコピー。プラグインはコピーしないことにした。configuration.ymlを作らないといけないみたいだけどもともとメールの設定はしていないので無視。
    # 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を使って管理しているので一度パーミッションを一般ユーザーに変更する
    # chown -R tanaka.tanaka redmine
    

rvmの準備(ruby-1.9.3p194@redmineで実行するようにする)

  • 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を作る
    #!/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をアップデート

  • redmineのディレクトリではなく自分のホームで実行する。そうしないと"Could not find passenger (> = 0) amogst rvm passenger-install-apache2-module"とかいうエラーが表示された。最後に表示される内容をhttpd.confにコピペ。
    $ gem install passenger
    $ rvmsudo passenger-install-apache2-module
    

マイグレーション実行

$ 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のエラー

  • よくわらかんが、/home/redmine/vendor/bundle/ruby/1.9.1/gems/sqlite3-1.3.6/lib/sqlite3/database.rbのquoteを修正して無理やり押し通した。
          def quote( string )
            begin
              string.gsub( /'/, "''" )
            rescue ArgumentError
              print $!        end
          end
    

mysql.h missingになった場合

  • mysql-develが入っていないのでインストールする。 sudo yum --enablerepo=remi install mysql-devel

An error occured while installing pg (0.14.0)といわれたとき

  • PostgreSQL用のモジュールをインストールしようとしてエラーになっている。Gemfileを編集し以下の部分をコメントアウトする。
    # Database gems
    platforms :mri, :mingw do
    #  group :postgresql do
    #    gem "pg", ">= 0.11.0"
    #  end
    #
      group :sqlite do
        gem "sqlite3"
      end
    end
    

RMagicでエラーになった場合

動作確認

  • とりあえず組み込み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がでた場合

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

全般的なトラブルシューティング

リポジトリに、エントリ/リビジョンが存在しません

  • config/configuration.ymlがおかしい。svnの場合は以下のような感じで設定する。
    scm_subversion_command: /usr/local/bin/svn

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2016-04-13 (水) 16:47:39