2012年05月14日

redmine 1.4.0 アップデート

最近,更新できなくてごめんなさい.
色々やったことはあるのですが..


現在の最新は,redmine1.4.2 だし,
もうすぐ2.0.0 が出そうですが,メモとして書いておきます.
でも,きれいにはまとめません.あくまで自分向け.

ruby 1.9.x 対応ということで色々躓きました.
まず,自分の環境がWindows なので,Rubyの切り替えにはpik を利用したのですが,
1.9.x 環境は普段使ってないのでgem を入れ直す必要があったこと,
そして,thin のインストールに手こずったことでしょうか.

まず,
% rake generate_session_store

とすると,エラーになります.
Some gems may need to be installed or updated.
Please run `bundle install --without development test`.

と.
でも,これを実行しようとすると,RMagickの最新版(?)1.3.x を入れようとして
どうしてもエラーになります.
これは,以下のコマンドを実行すればOk.

% bundle install --without development test rmagick


下記サイトを参考にしました.同じ現象.助かった.
"rmagick を回避した Redmine 1.4 (trunk) のインストール | プログラマーズ雑記帳" - http://webcache.googleusercontent.com/search?q=cache:DW1GmYleNWwJ:yohshiy.blog.fc2.com/blog-entry-112.html+&cd=5&hl=ja&ct=clnk&gl=jp&client=firefox-a

上記のインストールをしなくても,下記リンクからrmagick-win32の欄にあるRMagick-2.12.0-ImageMagick-6.5.6-8-Q8.zipを
ダウンロードして,中にあるImageMagick-6.5.6-8-Q8-windows-dll.exe を実行しインストール,
その後,同じフォルダの中にある,rmagick-2.12.0-x86-mswin32.gem をインストールすれば,入ります.
% gem install rmagick-2.12.0-x86-mswin32.gem


"RubyForge: RMagick: ファイルリスト" - http://rubyforge.org/frs/?group_id=12&release_id=39888

が,その後もエラーは続きます..
% rake db:migrate RAILS_ENV="production"
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install
the mysql gem and try again: gem install mysql.
rake aborted!
cannot load such file -- mysql

Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)


-----------------
% gem install mysql


をやっても,
% gem install mysql2

をやっても変わりません.

うーん,と困りつつ,Redmineの新規インストール手順(今回の自分はアップデートなので見ていなかった)をみると,
Ruby1.9.xの場合は,mysql を使う場合には,
config/database.yml のadapterの項目に,mysql2 と書かなきゃだめだよ!
って
書いてあります.こんな感じ.
--------------------
production:
adapter: mysql2
database: redmine
host: localhost
encoding: utf8
--------------------


これでOK?と思いきや,
% rake db:migrate RAILS_ENV="production"
rake aborted!
Incorrect MySQL client library version! This gem was compiled for 6.0.0 but the
client library is 5.1.30.

Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)


以下のサイトに従って,
-------------------------------
http://www-jp.mysql.com/downloads/connector/c/
から環境にあったものをダウンロードしてインスコ。
C:Program Files/MySQLConnector C 6.0.2/lib/opt/libmysql.dll
-------------------------------
にある,libmysql.dll をruby.bin のあるフォルダに置いてあげれば解決した.

参考:
"大晦日ですね。Railsの環境を掃除しましょう。 - はげたかの気ままな日記" - http://d.hatena.ne.jp/emerald00/20111231/1325288027


そして,ここからは,thin との格闘..

はい,これでできたので,thin を実行しようとしたら,ないって言われた.
pik 使って,Ruby1.9.3にしたので入ってないgem がいくつかあるんだった...

結局,Ruby1.8.7 の環境で動作確認.
% rake generate_session_store
Please install RDoc 2.4.2+ to generate documentation.

と言われるけど,これは無視していいらしい.

そんなこんなしてる間に,Redmine1.4.1が出たので環境かえてもう一度.
でもこんなエラー.
% rake db:migrate RAILS_ENV="production"
Please install RDoc 2.4.2+ to generate documentation.
rake aborted!
Mysql::Error: Can't create/write to file 'C:\work\xampp\tmp\#sql_16c8_0.MYI' (Er
rcode: 13): SHOW FIELDS FROM `issues`

Tasks: TOP => db:schema:dump
(See full trace by running task with --trace)


PC再起動したら直りました.こういうのほんとに嫌だ.

pik つかって,Ruby1.9.3 を使用.
gem の環境入れなおし.

でも,thin がインストールできなくてずっと困ってた.前はできたんだけどなぁって.

出来なかった原因は,Devkitに,Rubyのパスを渡しておく必要があって,pik使ったRubyに対してそれができていなかったから.
Devkitをインストールしたフォルダに移動して,config.ym を開く.

例)
c:/Ruby/devkit/config.yml


このファイルの最後の行に追記した.
その後,そのフォルダ上(devkitのあるフォルダ)で,

% ruby dk.rb review


として,config ファイルの書式が間違っていないことを確認して,
% ruby dk.rb install


とすればOK.

% gem install thin

だけでは,エラーになってしまったので以下のようにeventmachine を個別に入れたらうまく行った.
% gem install eventmachine --pre
% gem install thin


参考:
"ruby - Cannot install thin on windows - Stack Overflow" -
http://stackoverflow.com/questions/3649252/cannot-install-thin-on-windows


以下は,ただのエラーメモ.

後日,環境を新たに作り直したら以下のエラー..なにこれ..

C:\Ruby\devkit\tmp\thin>gem install thin
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
ERROR: Error installing thin:
ERROR: Failed to build gem native extension.

"C:/Documents and Settings/username/.pik/rubies/Ruby-193-p194/
bin/ruby.exe" extconf.rb
checking for main() in -lc... no
creating Makefile

make
Makefile:172: warning: overriding commands for target `C:/Documents'
Makefile:163: warning: ignoring old commands for target `C:/Documents'
Makefile:172: warning: overriding commands for target `and'
Makefile:163: warning: ignoring old commands for target `and'
Makefile:215: *** multiple target patterns. Stop.


Gem files will remain installed in C:/Documents and Settings/username/
.pik/rubies/Ruby-193-p194/lib/ruby/gems/1.9.1/gems/thin-1.3.1 for inspection.
Results logged to C:/Documents and Settings/username/.pik/rubies/Ruby-
193-p194/lib/ruby/gems/1.9.1/gems/thin-1.3.1/ext/thin_parser/gem_make.out

結局,Makefileのエラーを見ると,rubyのパスに含まれている"Documents and Settings"の空白が
問題ありそうなので,.pik以下をコピーして行ったらうまくいきました.
あー,苦労したー.

pik で入れるRubyのインストール先をどうにか(手動ではない方法で)変えられないかと探して分かった結果,できるようだ.

% pik config install_dir=C:\rubypik\rubies

で設定

% pik config


で確認.無事にinstall_dir が設定されていることを確認すると,
ダウンロードフォルダは,USERPROFILE以下のままだが,インストール先は変更される.


これは以前の方法だけどうまく行かなかったのでした.
- pik 以下を全てコピー.
% cp C:\Documents and Settings\username\.pik C:\ruby\
% cd C:\Ruby\.pik\rubies\Ruby-193-p194\bin
% gem.bat install thin

C:\Ruby\.pik\rubies\Ruby-193-p194\bin>gem.bat install thin
Temporarily enhancing PATH to include DevKit...
Building native extensions. This could take a while...
qSuccessfully installed thin-1.3.1
1 gem installed

うまくいったので,pik のインストール先を変更する.
- 以前,pikインストールした時のフォルダに含まれるファイルの編集
自分の環境は,
pikのインストール先
"c:\rubypik"
pik ruby の移動先
C:\ruby\.pik
なので
c:/rubypik/pik.bat を開いて,以下のように該当箇所を編集.
-------------------
REM IF EXIST "%USERPROFILE%\.pik\pik.bat" (call "%USERPROFILE%\.pik\pik.bat")
IF EXIST "C:\Ruby\.pik\pik.bat" (call "C:\Ruby\.pik\pik.bat")
-------------------

ruby の移動先にある.pikrc を編集する.
c:/Ruby/.pik/.pikrc
-------------------
#[[ -s $USERPROFILE/.pik/pik.sh ]] && source $USERPROFILE/.pik/pik.sh
[[ -s c:/ruby/.pik/pik.sh ]] && source c:/ruby/.pik/pik.sh
-------------------

また,それでも,%USERPROFILE%/.pik/config.yml を使用するので,
このファイルを開いて,パスを修正しておく.
-------------------
#path: C:/Documents and Settings/username/.pik/rubies/Ruby-193-p194/bin
path: C:/Ruby/.pik/rubies/Ruby-193-p194/bin
-------------------


ただし,これらは,pik_install "hogehge" しちゃうと上書きされてしまうので
その際は気をつけること.

で,ここまで書いて,すでに書いた別の方法があることを知る...




■ ここからは,Ruby1.9.3, Redmine 1.4.1 の環境で.
% rake db:migrate RAILS_ENV="production"
can not load translations from C:/Ruby/share/redmine-1.4.1/config/locales/hr.yml
, expected it to return a hash, but does not

hr.yml は使わないので削除.もう一度.

rake aborted!
(C:/Ruby/share/redmine-1.4.1/config/locales/pt-BR.yml): mapping values are not a
llowed in this context at line 2 column 19

Tasks: TOP => db:migrate => environment
(See full trace by running task with --trace)

pt-BR.yml は使わないので削除.もう一度.
うまくいく.

そして,Redmine 1.4.1 では,thin が実行できなくなってしまった.
エラーログをみると,eventmachine.rb が不具合出しているとのこと.

% gem uninstall eventmachine
% gem install eventmachine -v 0.12.8


これをやったら起動するようになった.
ラベル:ruby redmine
posted by maplewine at 19:41| Comment(0) | TrackBack(0) | ruby | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック