技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

CentOS5.6にRedmine突っ込んでみる

Ruby を新しいものに置き換える。

まず、一番のハマりどころは、CentOSのyumパッケージがRuby的に古すぎて使い物にならないところか、、、、。(この記事の時点で1.8.5 redmine ツッコむには、1.8.7 以上欲しい)これだけで、1時間消費しました、、、、。
まずは諸悪の権化を消し去ります。

yum erase ruby

そしたら、一気に以下の手順でRuby突っ込む。(最新版はこちら)

wget ftp://ftp.ruby-lang.org/pub/ruby/1.8/ruby-1.8.7-p334.tar.gz
tar xzvf ruby-1.8.7-p334.tar.gz
cd ruby-1.8.7-p334
./configure --prefix=/usr
make
make install

これでまずRubyが入る。次、Rubygems(最新版はこちら)

wget http://rubyforge.org/frs/download.php/74619/rubygems-1.7.2.tgz
tar xzvf rubygems-1.7.2.tgz
cd rubygems-1.7.2
ruby setup.rb

ここから、Redmineの下準備参考は公式

gem install rails -v=2.3.5
gem install rack -v=1.0.1
gem install i18n -v=0.4.2
gem install mysql

MySQL/Apache は適当に入れておくのを前提にして、、、、(因みにアカウント忘れたら、mysqld 落として、/usr/bin/mysqld_safe --skip-grant-tables すれば、パス無しでルートに入れる。)

Redmineをインストール開始する。

パッケージ(http://www.redmine.jp/download/)拾ってくる。

wget http://rubyforge.org/frs/download.php/74722/redmine-1.1.3.tar.gz
tar xzvf redmine-1.1.3.tar.gz
cd redmine-1.1.3/config
cp database.yml.example database.yml 
vi database.yml 

そしたら、以下の様な感じで編集

production:
  adapter: mysql
  database: redmine
  host: localhost
  username: redmine
  password: XXXXXXXXXXXXXXX

さて、この後、「rake config/initializers/session_store.rb」するって書いてあるんだけど、、、、あれ?
ファイルがねえしwwwwwwwwwwww
と思ったら、こっちに書いてあった。
見つけられたからいいようなものの、知らん人が見つけられなかったら挫折すんぞ。公式ぃぃぃぃいい!

そしてもう一つ、gemバージョン上げすぎたらしい。
session_store.rb を生成しようとしたら、以下のエラー。

rake config/initializers/session_store.rb --trace
(in /root/redmine-1.1.3)
NOTE: SourceIndex.new(hash) is deprecated; From /root/redmine-1.1.3/config/../vendor/rails/railties/lib/rails/vendor_gem_source_index.rb:100:in `new'.
rake aborted!
uninitialized constant ActiveSupport::Dependencies::Mutex
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2503:in `const_missing'
/root/redmine-1.1.3/vendor/rails/activesupport/lib/active_support/dependencies.rb:55
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
/root/redmine-1.1.3/vendor/rails/activesupport/lib/active_support.rb:56
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
/root/redmine-1.1.3/vendor/rails/railties/lib/tasks/misc.rake:18
/root/redmine-1.1.3/vendor/rails/railties/lib/tasks/rails.rb:4:in `load'
/root/redmine-1.1.3/vendor/rails/railties/lib/tasks/rails.rb:4
/root/redmine-1.1.3/vendor/rails/railties/lib/tasks/rails.rb:4:in `each'
/root/redmine-1.1.3/vendor/rails/railties/lib/tasks/rails.rb:4
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `gem_original_require'
/usr/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:36:in `require'
/root/redmine-1.1.3/Rakefile:10
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `load'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2383:in `raw_load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2017:in `load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2016:in `load_rakefile'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2000:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:2068:in `standard_exception_handling'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/lib/rake.rb:1998:in `run'
/usr/lib/ruby/gems/1.8/gems/rake-0.8.7/bin/rake:31
/usr/bin/rake:19:in `load'
/usr/bin/rake:19

仕方がないので、エラーで原因探ったらこっちに回答を見つけた。
http://www.redmine.org/boards/2/topics/23318?r=23363
曰く、
>>Latest stable Redmine requires RubyGems < 1.5.0 (see RedmineInstall).<<
ぎゃー。

gem update --system 1.3.7

日本語の文章は古いんだろう、、、、参考程度にしか使わず、ベースを英語に移行。(http://www.redmine.org/projects/redmine/wiki/RedmineInstall)
英語側にはモロに書いてあるし、、、、「Rails 2.3.5 は RubyGems 1.5.0 かそれ以上だとエラー吐く」って、、、。

RAILS_ENV=production rake db:migrate
RAILS_ENV=production rake redmine:load_default_data
sudo chown -R redmine:redmine files log tmp public/plugin_assets
sudo chmod -R 755 files log tmp public/plugin_assets

ふむふむ、そしたら、、、、

ruby script/server webrick -e production

サーバ起動ね。
デフォルト権限(admin/admin)で操作可能とな。