code up

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

redmineを2.3系にアップグレードしようとしてハマった点

redmineを2.2系から2.3系にアップグレードしようとしてハマった点を記録に。

redmineを2.2から2.3にあげるにあたりRubyも1.8から1.9に変更。Railsのバージョンは3.2.13。EC2(Amazon Linux)上に構築されているもの。

ハマったポイント

bundle install --without development test rmagick postgresql sqlite

まずnokogiri

You cannot specify the same gem twice with different version requirements.
You specified: nokogiri (< 1.6.0) and nokogiri (>= 0)

Rubyはよく知らないのでnokogiriと言われてもなんだか分からないんだけどメッセージを読む限り、結果的に二度includeされているからの様子。このスレッドを読むとプラグインとかで指定されているものがあってそれと重複しているからだろう、とのこと。

今回の場合、解決方法は次の2つだった。

  • redmine/plugins/redmine_backlogs/を削除する。
  • redmine/Gemfileにあるnokogiriの行をコメントアウトする。

backlogsのプラグインは導入したばかりであったので、今回はbacklogsのプラグインを一旦削除して実施した。

次にPostgreSQL

Installing pg (0.15.1)
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

        /usr/bin/ruby1.9 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.

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}/
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/usr/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}/
        --with-pg-config
        --without-pg-config
        --with-pg_config
        --without-pg_config


Gem files will remain installed in /usr/local/share/gems1.9/gems/pg-0.15.1 for inspection.
Results logged to /usr/local/share/gems1.9/gems/pg-0.15.1/ext/gem_make.out

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.

PostgreSQLとSQLiteを除外しているにも関わらずPostgreSQLのエラーとなる。調べてみてもPostgreSQLをインストールせよとのアドバイスのみ。

redmine/Gemfileを見るとconfig/database.ymlを読み込んだ後、その中に/postgresql/という文字があったらpgをインストールするという--without postgresql無視な処理が書かれていた。

結局はconfig/database.ymlに書かれていたpostgresqlとsqliteの接続情報をコメントアウトすることで解決。

ハマったポイント2

rake db:migrate RAILS_ENV=production

application.rb

undefined method `active_record' for #(略

よく分からない(こればっかですが・・・)けど、requireが必要らしい。application.rbに以下を追加。

require "active_record/railtie"

Gemfile

cannot load such file -- bigdecimal/util

bigdecimalというのをbundle経由でインストールしないといけないらしい。yum -y install ruby19で一緒に入ったものはみないのかな?環境変数とかなのかもしれないけれど、結局よく分からない。

# vi Gemfile
# 最後の行に以下を追加
# 1.2.0はvStackがどうとかのコンパイルエラーになるので1.1.x系を導入

gem "bigdecimal", "~>1.1.0"

# bundle update

mysql2

undefined method `init' for Mysql:Class

コメントに書いてあったんだけどconfig/database.ymlのadapter: mysqlをRuby 1.9の場合はmysql2に変更する。

adapter: mysql2
もっかい
# bundle update

mysql2/mysql2

cannot load such file -- mysql2/mysql2

よく分からないけど(正しい場所にインストールされていなかったとか?)mysql2のライブラリを再インストールすればよいみたい。

cd /usr/local/share/gems1.9/gems/mysql2-0.3.11/ext/mysql2
ruby extconf.rb
make
make install

こちらのスレッドを参考にしました。

関連記事
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。