centos 安装 redmine 2.6.0.stable

必须用root安装

1、安装RVM,RVM用于安装ruby

检查版本:
[root@jifeng03 ~]# rvm -v
-bash: rvm: command not found


[root@jifeng03 ~]# yum install rvm

[root@jifeng03 ~]# yum install rvm
Loaded plugins: fastestmirror, refresh-packagekit, security
Determining fastest mirrors
 * base: ftp.sjtu.edu.cn
 * extras: ftp.sjtu.edu.cn
 * updates: ftp.sjtu.edu.cn
Updates-ambari-1.6.1                                                                         | 2.9 kB     00:00     
ambari-1.x                                                                                   | 1.3 kB     00:00     
base                                                                                         | 3.7 kB     00:00     
base/primary_db                                                                              | 3.6 MB     00:11     
extras                                                                                       | 3.3 kB     00:00     
extras/primary_db                                                                            |  28 kB     00:00     
updates                                                                                      | 3.4 kB     00:00     
updates/primary_db                                                                           | 800 kB     00:01     
Setting up Install Process
No package rvm available.
Error: Nothing to do
[root@jifeng02 ~]# rvm -v
rvm 1.26.3 (latest) by Wayne E. Seguin , Michal Papis  [https://rvm.io/]
[root@jifeng03 ~]# 
2:安装ruby 2.0.0
rvm install 2.0.0

[root@jifeng03 ~]# rvm install 2.0.0
Searching for binary rubies, this might take some time.
No binary rubies available for: centos/6/i386/ruby-2.0.0-p598.
Continuing with compilation. Please read 'rvm help mount' to get more information on binary rubies.
Checking requirements for centos.
Installing requirements for centos.
Updating system.
Installing required packages: libyaml-devel, libffi-devel......
Requirements installation successful.
Installing Ruby from source to: /usr/local/rvm/rubies/ruby-2.0.0-p598, this may take a while depending on your cpu(s)...
ruby-2.0.0-p598 - #downloading ruby-2.0.0-p598, this may take a while depending on your connection...
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 10.2M  100 10.2M    0     0  92215      0  0:01:56  0:01:56 --:--:-- 57836
ruby-2.0.0-p598 - #extracting ruby-2.0.0-p598 to /usr/local/rvm/src/ruby-2.0.0-p598....
ruby-2.0.0-p598 - #applying patch /usr/local/rvm/patches/ruby/ssl_no_ec2m.patch.
ruby-2.0.0-p598 - #configuring..................................................
ruby-2.0.0-p598 - #post-configuration..
ruby-2.0.0-p598 - #compiling.............................................................................
ruby-2.0.0-p598 - #installing..............................
ruby-2.0.0-p598 - #making binaries executable..
ruby-2.0.0-p598 - #downloading rubygems-2.4.4
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  433k  100  433k    0     0  95392      0  0:00:04  0:00:04 --:--:--  176k
No checksum for downloaded archive, recording checksum in user configuration.
ruby-2.0.0-p598 - #extracting rubygems-2.4.4....
ruby-2.0.0-p598 - #removing old rubygems.........
ruby-2.0.0-p598 - #installing rubygems-2.4.4..............
ruby-2.0.0-p598 - #gemset created /usr/local/rvm/gems/ruby-2.0.0-p598@global
ruby-2.0.0-p598 - #importing gemset /usr/local/rvm/gemsets/global.gems...........................................................
ruby-2.0.0-p598 - #generating global wrappers........
ruby-2.0.0-p598 - #gemset created /usr/local/rvm/gems/ruby-2.0.0-p598
ruby-2.0.0-p598 - #importing gemsetfile /usr/local/rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.0.0-p598 - #generating default wrappers........
ruby-2.0.0-p598 - #adjusting #shebangs for (gem irb erb ri rdoc testrb rake).
Install of ruby-2.0.0-p598 - #complete 
Ruby was built without documentation, to build it run: rvm docs generate-ri

3:检查ruby的版本

[root@jifeng03 ~]# ruby -v
ruby 2.0.0p598 (2014-11-13 revision 48408) [i686-linux]
[root@jifeng03 ~]# gem -v
2.4.4
4:安装rails

gem install rails

[root@jifeng03 ~]# gem install rails
Fetching: thread_safe-0.3.4.gem (100%)
Successfully installed thread_safe-0.3.4
Fetching: minitest-5.4.3.gem (100%)
Successfully installed minitest-5.4.3
Fetching: tzinfo-1.2.2.gem (100%)
Successfully installed tzinfo-1.2.2
Fetching: i18n-0.6.11.gem (100%)
Successfully installed i18n-0.6.11
Fetching: activesupport-4.1.8.gem (100%)
Successfully installed activesupport-4.1.8
Fetching: erubis-2.7.0.gem (100%)
Successfully installed erubis-2.7.0
Fetching: builder-3.2.2.gem (100%)
Successfully installed builder-3.2.2
Fetching: actionview-4.1.8.gem (100%)
Successfully installed actionview-4.1.8
Fetching: rack-1.5.2.gem (100%)
Successfully installed rack-1.5.2
Fetching: rack-test-0.6.2.gem (100%)
Successfully installed rack-test-0.6.2
Fetching: actionpack-4.1.8.gem (100%)
Successfully installed actionpack-4.1.8
Fetching: tilt-1.4.1.gem (100%)
Successfully installed tilt-1.4.1
Fetching: multi_json-1.10.1.gem (100%)
Successfully installed multi_json-1.10.1
Fetching: hike-1.2.3.gem (100%)
Successfully installed hike-1.2.3
Fetching: sprockets-2.12.3.gem (100%)
Successfully installed sprockets-2.12.3
Fetching: sprockets-rails-2.2.0.gem (100%)
Successfully installed sprockets-rails-2.2.0
Fetching: thor-0.19.1.gem (100%)
Successfully installed thor-0.19.1
Fetching: railties-4.1.8.gem (100%)
Successfully installed railties-4.1.8
Fetching: mime-types-2.4.3.gem (100%)
Successfully installed mime-types-2.4.3
Fetching: mail-2.6.3.gem (100%)
Successfully installed mail-2.6.3
Fetching: actionmailer-4.1.8.gem (100%)
Successfully installed actionmailer-4.1.8
Fetching: arel-5.0.1.20140414130214.gem (100%)
Successfully installed arel-5.0.1.20140414130214
Fetching: activemodel-4.1.8.gem (100%)
Successfully installed activemodel-4.1.8
Fetching: activerecord-4.1.8.gem (100%)
Successfully installed activerecord-4.1.8
Fetching: rails-4.1.8.gem (100%)
Successfully installed rails-4.1.8
Parsing documentation for thread_safe-0.3.4
Installing ri documentation for thread_safe-0.3.4
Parsing documentation for minitest-5.4.3
Installing ri documentation for minitest-5.4.3
Parsing documentation for tzinfo-1.2.2
Installing ri documentation for tzinfo-1.2.2
Parsing documentation for i18n-0.6.11
Installing ri documentation for i18n-0.6.11
Parsing documentation for activesupport-4.1.8
unable to convert "\x80" from ASCII-8BIT to UTF-8 for lib/active_support/values/unicode_tables.dat, skipping
Installing ri documentation for activesupport-4.1.8
Parsing documentation for erubis-2.7.0
Installing ri documentation for erubis-2.7.0
Parsing documentation for builder-3.2.2
Installing ri documentation for builder-3.2.2
Parsing documentation for actionview-4.1.8
Installing ri documentation for actionview-4.1.8
Parsing documentation for rack-1.5.2
Installing ri documentation for rack-1.5.2
Parsing documentation for rack-test-0.6.2
Installing ri documentation for rack-test-0.6.2
Parsing documentation for actionpack-4.1.8
Installing ri documentation for actionpack-4.1.8
Parsing documentation for tilt-1.4.1
Installing ri documentation for tilt-1.4.1
Parsing documentation for multi_json-1.10.1
Installing ri documentation for multi_json-1.10.1
Parsing documentation for hike-1.2.3
Installing ri documentation for hike-1.2.3
Parsing documentation for sprockets-2.12.3
Installing ri documentation for sprockets-2.12.3
Parsing documentation for sprockets-rails-2.2.0
Installing ri documentation for sprockets-rails-2.2.0
Parsing documentation for thor-0.19.1
Installing ri documentation for thor-0.19.1
Parsing documentation for railties-4.1.8
Installing ri documentation for railties-4.1.8
Parsing documentation for mime-types-2.4.3
Installing ri documentation for mime-types-2.4.3
Parsing documentation for mail-2.6.3
Installing ri documentation for mail-2.6.3
Parsing documentation for actionmailer-4.1.8
Installing ri documentation for actionmailer-4.1.8
Parsing documentation for arel-5.0.1.20140414130214
Installing ri documentation for arel-5.0.1.20140414130214
Parsing documentation for activemodel-4.1.8
Installing ri documentation for activemodel-4.1.8
Parsing documentation for activerecord-4.1.8
Installing ri documentation for activerecord-4.1.8
Parsing documentation for rails-4.1.8
unable to convert "\xFF" from ASCII-8BIT to UTF-8 for guides/assets/images/akshaysurve.jpg, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/belongs_to.png, skipping
unable to convert "\xF4" from ASCII-8BIT to UTF-8 for guides/assets/images/book_icon.gif, skipping
unable to convert "\x91" from ASCII-8BIT to UTF-8 for guides/assets/images/bullet.gif, skipping
unable to convert "\xF5" from ASCII-8BIT to UTF-8 for guides/assets/images/chapters_icon.gif, skipping
unable to convert "\xF5" from ASCII-8BIT to UTF-8 for guides/assets/images/check_bullet.gif, skipping
unable to convert "\xF4" from ASCII-8BIT to UTF-8 for guides/assets/images/credits_pic_blank.gif, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/csrf.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/edge_badge.png, skipping
unable to convert "\x9E" from ASCII-8BIT to UTF-8 for guides/assets/images/favicon.ico, skipping
unable to convert "\xF0" from ASCII-8BIT to UTF-8 for guides/assets/images/feature_tile.gif, skipping
unable to convert "\xF0" from ASCII-8BIT to UTF-8 for guides/assets/images/footer_tile.gif, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/fxn.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/article_with_comments.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/challenge.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/confirm_dialog.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/forbidden_attributes_for_new_article.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/form_with_errors.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/index_action_with_edit_link.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/new_article.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/rails_welcome.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/routing_error_no_controller.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/routing_error_no_route_matches.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/show_action_for_articles.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/template_is_missing_articles_new.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/unknown_action_create_for_articles.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/getting_started/unknown_action_new_for_articles.png, skipping
unable to convert "\xF0" from ASCII-8BIT to UTF-8 for guides/assets/images/grey_bullet.gif, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/habtm.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/has_many.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/has_many_through.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/has_one.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/has_one_through.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/header_backdrop.png, skipping
unable to convert "\xF0" from ASCII-8BIT to UTF-8 for guides/assets/images/header_tile.gif, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/i18n/demo_html_safe.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/i18n/demo_localized_pirate.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/i18n/demo_translated_en.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/i18n/demo_translated_pirate.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/i18n/demo_translation_missing.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/i18n/demo_untranslated.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/1.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/10.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/11.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/12.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/13.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/14.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/15.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/2.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/3.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/4.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/5.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/6.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/7.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/8.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/callouts/9.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/caution.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/example.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/home.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/important.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/next.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/note.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/prev.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/tip.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/up.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/icons/warning.png, skipping
unable to convert "\xF5" from ASCII-8BIT to UTF-8 for guides/assets/images/nav_arrow.gif, skipping
unable to convert "\xFF" from ASCII-8BIT to UTF-8 for guides/assets/images/oscardelben.jpg, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/polymorphic.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/radar.png, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/rails4_features.png, skipping
unable to convert "\xFF" from ASCII-8BIT to UTF-8 for guides/assets/images/rails_guides_kindle_cover.jpg, skipping
unable to convert "\xEC" from ASCII-8BIT to UTF-8 for guides/assets/images/rails_guides_logo.gif, skipping
unable to convert "\x8C" from ASCII-8BIT to UTF-8 for guides/assets/images/rails_logo_remix.gif, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/session_fixation.png, skipping
unable to convert "\x80" from ASCII-8BIT to UTF-8 for guides/assets/images/tab_grey.gif, skipping
unable to convert "\x80" from ASCII-8BIT to UTF-8 for guides/assets/images/tab_info.gif, skipping
unable to convert "\x80" from ASCII-8BIT to UTF-8 for guides/assets/images/tab_note.gif, skipping
unable to convert "\x80" from ASCII-8BIT to UTF-8 for guides/assets/images/tab_red.gif, skipping
unable to convert "\x80" from ASCII-8BIT to UTF-8 for guides/assets/images/tab_yellow.gif, skipping
unable to convert "\x89" from ASCII-8BIT to UTF-8 for guides/assets/images/tab_yellow.png, skipping
unable to convert "\xFF" from ASCII-8BIT to UTF-8 for guides/assets/images/vijaydev.jpg, skipping
Installing ri documentation for rails-4.1.8
25 gems installed
5:查看版本

[root@jifeng03 ~]# rails -v
Rails 4.1.8

6:下载redmine

[root@jifeng03 ~]# wget http://www.redmine.org/releases/redmine-2.6.0.tar.gz
--2014-11-18 09:15:34--  http://www.redmine.org/releases/redmine-2.6.0.tar.gz
正在解析主机 www.redmine.org... 46.4.36.71
正在连接 www.redmine.org|46.4.36.71|:80... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:2117270 (2.0M) [application/x-gzip]
正在保存至: “redmine-2.6.0.tar.gz”

 9% [====>                                                           ] 190,842     56.0K/s eta(英国中部时 9% [=====>                                                          ] 209,666     55.9K/s eta(英国中部时10% [=====>                                                          ] 227,042     55.5K/s eta(英国中部时11% [======>                                                         ] 242,970     54.8K/s eta(英国中部时12% [======>                                                         ] 260,346     54.5K/s eta(英国中部时13% [=======>                                                        ] 280,618     54.9K/s eta(英国中部时14% [========>                                                       ] 299,442     54.9K/s eta(英国中部时14% [========>                                                       ] 312,474     53.1K/s eta(英国中部时15% [========>                                                       ] 328,858     53.6K/s eta(英国中部时16% [=========>                                                      ] 345,778     53.4K/s eta(英国中部时17% [=========>                                                      ] 361,706     53.0K/s eta(英国中部时17% [==========>                                                     ] 380,530     54.8K/s eta(英国中部时18% [===========>                                                    ] 400,802     56.7K/s eta(英国中部时20% [============>                                                   ] 430,218     57.3K/s eta(英国中部时20% [============>                                                   ] 438,450     53.7K/s eta(英国中部时21% [============>                                                   ] 452,930     52.7K/s eta(英国中部时22% [=============>                                                  ] 468,858     50.9K/s eta(英国中部时23% [=============>                                                  ] 489,130     50.9K/s eta(英国中部时24% [==============>                                                 ] 509,402     51.6K/s eta(英国中部时24% [==============>                                                 ] 527,234     51.6K/s eta(英国中部时25% [===============>                                                ] 549,946     50.1K/s eta(英国中部时26% [===============>                                                ] 558,634     48.7K/s eta(英国中部时26% [================>                                               ] 568,770     47.7K/s eta(英国中部时27% [================>                                               ] 578,906     46.9K/s eta(英国中部时27% [================>                                               ] 590,490     46.0K/s eta(英国中部时28% [=================>                                              ] 603,522     45.0K/s eta(英国中部时29% [=================>                                              ] 615,106     44.0K/s eta(英国中部时29% [==================>                                             ] 629,586     44.0K/s eta(英国中部时30% [==================>                                             ] 646,962     44.0K/s eta(英国中部时31% [===================>                                            ] 665,786     43.1K/s eta(英国中部时32% [===================>                                            ] 687,506     42.9K/s eta(英国中部时33% [====================>                                           ] 713,570     45.9K/s eta(英国中部时34% [=====================>                                          ] 733,842     47.7K/s eta(英国中部时35% [=====================>                                          ] 751,218     47.2K/s eta(英国中部时37% [======================>                                         ] 785,970     51.9K/s eta(英国中部时38% [=======================>                                        ] 822,170     60.2K/s eta(英国中部时40% [========================>                                       ] 849,682     68.5K/s eta(英国中部时42% [==========================>                                     ] 894,570     79.5K/s eta(英国中部时44% [===========================>                                    ] 943,802     92.1K/s eta(英国中部时46% [============================>                                   ] 987,242      103K/s eta(英国中部时50% [===============================>                                ] 1,058,650    116K/s eta(英国中部时52% [================================>                               ] 1,120,458    129K/s eta(英国中部时54% [==================================>                             ] 1,162,450    136K/s eta(英国中部时55% [==================================>                             ] 1,179,826    135K/s eta(英国中部时57% [===================================>                            ] 1,217,474    140K/s eta(英国中部时61% [======================================>                         ] 1,293,226    139K/s eta(英国中部时65% [=========================================>                      ] 1,393,138    136K/s eta(英国中部时70% [===========================================>                    ] 1,482,458    152K/s eta(英国中部时71% [=============================================>                  ] 1,523,002    151K/s eta(英国中部时74% [==============================================>                 ] 1,571,242    145K/s eta(英国中部时76% [===============================================>                ] 1,609,882    143K/s eta(英国中部时77% [================================================>               ] 1,641,738    135K/s eta(英国中部时79% [=================================================>              ] 1,676,490    134K/s eta(英国中部时80% [==================================================>             ] 1,701,106    132K/s eta(英国中部时81% [==================================================>             ] 1,715,586    124K/s eta(英国中部时82% [====================================================>           ] 1,754,682    123K/s eta(英国中部时84% [=====================================================>          ] 1,790,882    127K/s eta(英国中部时85% [=====================================================>          ] 1,803,914    127K/s eta(英国中部时86% [======================================================>         ] 1,828,986    122K/s eta(英国中部时88% [=======================================================>        ] 1,872,426    119K/s eta(英国中部时89% [========================================================>       ] 1,903,826    115K/s eta(英国中部时90% [========================================================>       ] 1,916,858    118K/s eta(英国中部时91% [=========================================================>      ] 1,928,442    114K/s eta(英国中部时92% [=========================================================>      ] 1,948,714   94.5K/s eta(英国中部时93% [==========================================================>     ] 1,970,434   95.5K/s eta(英国中部时93% [==========================================================>     ] 1,977,674   90.2K/s eta(英国中部时94% [===========================================================>    ] 1,993,602   91.9K/s eta(英国中部时95% [===========================================================>    ] 2,015,322   86.6K/s eta(英国中部时95% [============================================================>   ] 2,028,354   84.1K/s eta(英国中部时96% [============================================================>   ] 2,041,386   81.0K/s eta(英国中部时97% [=============================================================>  ] 2,060,210   82.4K/s eta(英国中部时97% [=============================================================>  ] 2,067,450   77.1K/s eta(英国中部时98% [==============================================================> ] 2,086,274   75.1K/s eta(英国中部时99% [==============================================================> ] 2,105,098   75.6K/s eta(英国中部时99% [==============================================================> ] 2,113,786   69.6K/s eta(英国中部时100%[===============================================================>] 2,117,270   69.7K/s   in 26s     

2014-11-18 09:16:02 (79.0 KB/s) - 已保存 “redmine-2.6.0.tar.gz” [2117270/2117270])

7:解压

[root@jifeng03 ~]# tar zxf redmine-2.6.0.tar.gz 

8:依赖组件安装

You need to install Bundler first:

gem install bundler
If ImageMagick is not installed on your system, you should skip the installation of the rmagick gem using:

bundle install --without development test rmagick

[root@jifeng03 ~]# cd redmine-2.6.0

[root@jifeng03 redmine-2.6.0]# ls
app     config.ru        db   extra  Gemfile  log      public    README.rdoc  test  vendor
config  CONTRIBUTING.md  doc  files  lib      plugins  Rakefile  script       tmp
[root@jifeng03 redmine-2.6.0]# gem install bundler
Fetching: bundler-1.7.6.gem (100%)
Successfully installed bundler-1.7.6
Parsing documentation for bundler-1.7.6
Installing ri documentation for bundler-1.7.6
1 gem installed
[root@jifeng03 redmine-2.6.0]# bundle install --without development test rmagick
Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root
will break this application for all non-root users on this machine.
Please configure your config/database.yml first
Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Installing rake 10.3.2
Using i18n 0.6.11
Using multi_json 1.10.1
Installing activesupport 3.2.19
Installing builder 3.0.4
Installing activemodel 3.2.19
Using erubis 2.7.0
Installing journey 1.0.4
Installing rack 1.4.5
Installing rack-cache 1.2
Using rack-test 0.6.2
Using hike 1.2.3
Using tilt 1.4.1
Installing sprockets 2.2.3
Installing actionpack 3.2.19
Installing mime-types 1.25.1
Installing polyglot 0.3.5
Installing treetop 1.4.15
Installing mail 2.5.4
Installing actionmailer 3.2.19
Installing arel 3.0.3
Installing tzinfo 0.3.42
Installing activerecord 3.2.19
Installing activeresource 3.2.19
Using bundler 1.7.6
Installing coderay 1.1.0
Installing rack-ssl 1.3.4
Installing json 1.8.1
Installing rdoc 3.12.2
Using thor 0.19.1
Installing railties 3.2.19
Installing jquery-rails 3.1.2
Installing net-ldap 0.3.1
Installing ruby-openid 2.3.0
Installing rack-openid 1.4.2
Installing rails 3.2.19
Installing rbpdf 1.18.2
Installing redcarpet 2.3.0
Installing request_store 1.0.5
Your bundle is complete!
Gems in the groups development, test and rmagick were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.
Post-install message from rdoc:
Depending on your version of ruby, you may need to install ruby rdoc/ri data:

<= 1.8.6 : unsupported
 = 1.8.7 : gem install rdoc-data; rdoc-data --install
 = 1.9.1 : gem install rdoc-data; rdoc-data --install
>= 1.9.2 : nothing to do! Yay!
9:安装连接mysql的gem

[root@jifeng03 redmine-2.6.0]# gem install mysql2
Fetching: mysql2-0.3.17.gem (100%)
Building native extensions.  This could take a while...
Successfully installed mysql2-0.3.17
Parsing documentation for mysql2-0.3.17
unable to convert "\xA4" from ASCII-8BIT to UTF-8 for /usr/local/rvm/gems/ruby-2.0.0-p598/extensions/x86-linux/2.0.0/mysql2-0.3.17/mysql2/mysql2.so, skipping
unable to convert "\xA4" from ASCII-8BIT to UTF-8 for lib/mysql2/mysql2.so, skipping
Installing ri documentation for mysql2-0.3.17
1 gem installed

10:配置MySQL

登陆:mysql -u root -p


[dss@localhost ~]$ mysql -u root -p  
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 9
Server version: 5.6.16 MySQL Community Server (GPL)

Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database redmine character set utf8;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT all ON redmine.* TO dss@'%' IDENTIFIED BY 'xxxxxx';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

11:配置redmine连接数据库
复制  config/database.yml.example  到  config/database.yml

[root@jifeng03 redmine-2.6.0]# cp config/database.yml.example  config/database.yml
[root@jifeng03 redmine-2.6.0]# cd config
[root@jifeng03 config]# ls
additional_environment.rb.example  configuration.yml.example  environment.rb  locales            settings.yml
application.rb                     database.yml               environments    preinitializer.rb
boot.rb                            database.yml.example       initializers    routes.rb

编辑database.yml

修改下面相应的部分

Example for a MySQL database using ruby 1.9 (adapter must be set to mysql2):

production:
  adapter: mysql2
  database: redmine
  host: localhost
  username: redmine
  password: my_password
[root@jifeng03 config]# cat database.yml
# Default setup is given for MySQL with ruby1.9. If you're running Redmine
# with MySQL and ruby1.8, replace the adapter name with `mysql`.
# Examples for PostgreSQL, SQLite3 and SQL Server can be found at the end.
# Line indentation must be 2 spaces (no tabs).

production:
  adapter: mysql2
  database: redmine
  host: 10.6.3.xxx
  username: dss
  password: "xxxxx"
  encoding: utf8

12:创建一个session安装密钥

[root@jifeng03 redmine-2.6.0]# rake generate_secret_token

13:创建初始化所有redmine用到的table表

[root@jifeng03 redmine-2.6.0]# RAILS_ENV=production rake db:migrate
==  Setup: migrating ==========================================================
-- create_table("attachments", {:force=>true})
   -> 0.0143s
-- create_table("auth_sources", {:force=>true})
   -> 0.0099s
-- create_table("custom_fields", {:force=>true})
   -> 0.0105s
-- create_table("custom_fields_projects", {:id=>false, :force=>true})
   -> 0.0094s
-- create_table("custom_fields_trackers", {:id=>false, :force=>true})
   -> 0.0092s
-- create_table("custom_values", {:force=>true})
   -> 0.0101s
-- create_table("documents", {:force=>true})
   -> 0.0097s
-- add_index("documents", ["project_id"], {:name=>"documents_project_id"})
   -> 0.0462s
-- create_table("enumerations", {:force=>true})
   -> 0.0103s
-- create_table("issue_categories", {:force=>true})
   -> 0.0101s
-- add_index("issue_categories", ["project_id"], {:name=>"issue_categories_project_id"})
   -> 0.2005s
-- create_table("issue_histories", {:force=>true})
   -> 0.1294s
-- add_index("issue_histories", ["issue_id"], {:name=>"issue_histories_issue_id"})
   -> 0.0326s
-- create_table("issue_statuses", {:force=>true})
   -> 0.0691s
-- create_table("issues", {:force=>true})
   -> 0.0152s
-- add_index("issues", ["project_id"], {:name=>"issues_project_id"})
   -> 0.0333s
-- create_table("members", {:force=>true})
   -> 0.0119s
-- create_table("news", {:force=>true})
   -> 0.0108s
-- add_index("news", ["project_id"], {:name=>"news_project_id"})
   -> 0.0299s
-- create_table("permissions", {:force=>true})
   -> 0.0749s
-- create_table("permissions_roles", {:id=>false, :force=>true})
   -> 0.0564s
-- add_index("permissions_roles", ["role_id"], {:name=>"permissions_roles_role_id"})
   -> 0.0915s
-- create_table("projects", {:force=>true})
   -> 0.0662s
-- create_table("roles", {:force=>true})
   -> 0.0671s
-- create_table("tokens", {:force=>true})
   -> 0.0664s
-- create_table("trackers", {:force=>true})
   -> 0.0668s
-- create_table("users", {:force=>true})
   -> 0.0658s
-- create_table("versions", {:force=>true})
   -> 0.0670s
-- add_index("versions", ["project_id"], {:name=>"versions_project_id"})
   -> 0.0911s
-- create_table("workflows", {:force=>true})
   -> 0.0669s
==  Setup: migrated (1.9617s) =================================================

==  IssueMove: migrating ======================================================
==  IssueMove: migrated (0.0116s) =============================================

==  IssueAddNote: migrating ===================================================
==  IssueAddNote: migrated (0.0411s) ==========================================

==  ExportPdf: migrating ======================================================
==  ExportPdf: migrated (0.0137s) =============================================

==  IssueStartDate: migrating =================================================
-- add_column(:issues, :start_date, :date)
   -> 0.1458s
-- add_column(:issues, :done_ratio, :integer, {:default=>0, :null=>false})
   -> 0.0403s
==  IssueStartDate: migrated (0.1864s) ========================================

==  CalendarAndActivity: migrating ============================================
==  CalendarAndActivity: migrated (0.0278s) ===================================

==  CreateJournals: migrating =================================================
-- create_table(:journals, {:force=>true})
   -> 0.0107s
-- create_table(:journal_details, {:force=>true})
   -> 0.0097s
-- add_index("journals", ["journalized_id", "journalized_type"], {:name=>"journals_journalized_id"})
   -> 0.1637s
-- add_index("journal_details", ["journal_id"], {:name=>"journal_details_journal_id"})
   -> 0.0322s
-- drop_table(:issue_histories)
   -> 0.0035s
==  CreateJournals: migrated (0.2524s) ========================================

==  CreateUserPreferences: migrating ==========================================
-- create_table(:user_preferences)
   -> 0.0100s
==  CreateUserPreferences: migrated (0.0102s) =================================

==  AddHideMailPref: migrating ================================================
-- add_column(:user_preferences, :hide_mail, :boolean, {:default=>false})
   -> 0.0342s
==  AddHideMailPref: migrated (0.0343s) =======================================

==  CreateComments: migrating =================================================
-- create_table(:comments)
   -> 0.0083s
==  CreateComments: migrated (0.0084s) ========================================

==  AddNewsCommentsCount: migrating ===========================================
-- add_column(:news, :comments_count, :integer, {:default=>0, :null=>false})
   -> 0.0538s
==  AddNewsCommentsCount: migrated (0.0539s) ==================================

==  AddCommentsPermissions: migrating =========================================
==  AddCommentsPermissions: migrated (0.0175s) ================================

==  CreateQueries: migrating ==================================================
-- create_table(:queries, {:force=>true})
   -> 0.0108s
==  CreateQueries: migrated (0.0110s) =========================================

==  AddQueriesPermissions: migrating ==========================================
==  AddQueriesPermissions: migrated (0.0120s) =================================

==  CreateRepositories: migrating =============================================
-- create_table(:repositories, {:force=>true})
   -> 0.0184s
==  CreateRepositories: migrated (0.0186s) ====================================

==  AddRepositoriesPermissions: migrating =====================================
==  AddRepositoriesPermissions: migrated (0.1570s) ============================

==  CreateSettings: migrating =================================================
-- create_table(:settings, {:force=>true})
   -> 0.0737s
==  CreateSettings: migrated (0.0738s) ========================================

==  SetDocAndFilesNotifications: migrating ====================================
==  SetDocAndFilesNotifications: migrated (0.0444s) ===========================

==  AddIssueStatusPosition: migrating =========================================
-- add_column(:issue_statuses, :position, :integer, {:default=>1})
   -> 0.1931s
==  AddIssueStatusPosition: migrated (0.2087s) ================================

==  AddRolePosition: migrating ================================================
-- add_column(:roles, :position, :integer, {:default=>1})
   -> 0.1494s
==  AddRolePosition: migrated (0.1756s) =======================================

==  AddTrackerPosition: migrating =============================================
-- add_column(:trackers, :position, :integer, {:default=>1})
   -> 0.1695s
==  AddTrackerPosition: migrated (0.2004s) ====================================

==  SerializePossiblesValues: migrating =======================================
==  SerializePossiblesValues: migrated (0.0064s) ==============================

==  AddTrackerIsInRoadmap: migrating ==========================================
-- add_column(:trackers, :is_in_roadmap, :boolean, {:default=>true, :null=>false})
   -> 0.0392s
==  AddTrackerIsInRoadmap: migrated (0.0393s) =================================

==  AddRoadmapPermission: migrating ===========================================
==  AddRoadmapPermission: migrated (0.0146s) ==================================

==  AddSearchPermission: migrating ============================================
==  AddSearchPermission: migrated (0.0468s) ===================================

==  AddRepositoryLoginAndPassword: migrating ==================================
-- add_column(:repositories, :login, :string, {:limit=>60, :default=>""})
   -> 0.0360s
-- add_column(:repositories, :password, :string, {:limit=>60, :default=>""})
   -> 0.0302s
==  AddRepositoryLoginAndPassword: migrated (0.0666s) =========================

==  CreateWikis: migrating ====================================================
-- create_table(:wikis)
   -> 0.0192s
-- add_index(:wikis, :project_id, {:name=>:wikis_project_id})
   -> 0.0337s
==  CreateWikis: migrated (0.0531s) ===========================================

==  CreateWikiPages: migrating ================================================
-- create_table(:wiki_pages)
   -> 0.0098s
-- add_index(:wiki_pages, [:wiki_id, :title], {:name=>:wiki_pages_wiki_id_title})
   -> 0.2012s
==  CreateWikiPages: migrated (0.2112s) =======================================

==  CreateWikiContents: migrating =============================================
-- create_table(:wiki_contents)
   -> 0.0644s
-- add_index(:wiki_contents, :page_id, {:name=>:wiki_contents_page_id})
   -> 0.0904s
-- create_table(:wiki_content_versions)
   -> 0.0677s
-- add_index(:wiki_content_versions, :wiki_content_id, {:name=>:wiki_content_versions_wcid})
   -> 0.1176s
==  CreateWikiContents: migrated (0.3406s) ====================================

==  AddProjectsFeedsPermissions: migrating ====================================
==  AddProjectsFeedsPermissions: migrated (0.0250s) ===========================

==  AddRepositoryRootUrl: migrating ===========================================
-- add_column(:repositories, :root_url, :string, {:limit=>255, :default=>""})
   -> 0.1967s
==  AddRepositoryRootUrl: migrated (0.1969s) ==================================

==  CreateTimeEntries: migrating ==============================================
-- create_table(:time_entries)
   -> 0.0667s
-- add_index(:time_entries, [:project_id], {:name=>:time_entries_project_id})
   -> 0.0914s
-- add_index(:time_entries, [:issue_id], {:name=>:time_entries_issue_id})
   -> 0.0330s
==  CreateTimeEntries: migrated (0.1915s) =====================================

==  AddTimelogPermissions: migrating ==========================================
==  AddTimelogPermissions: migrated (0.0210s) =================================

==  CreateChangesets: migrating ===============================================
-- create_table(:changesets)
   -> 0.0840s
-- add_index(:changesets, [:repository_id, :revision], {:unique=>true, :name=>:changesets_repos_rev})
   -> 0.0333s
==  CreateChangesets: migrated (0.1176s) ======================================

==  CreateChanges: migrating ==================================================
-- create_table(:changes)
   -> 0.0730s
-- add_index(:changes, [:changeset_id], {:name=>:changesets_changeset_id})
   -> 0.0903s
==  CreateChanges: migrated (0.1637s) =========================================

==  AddChangesetCommitDate: migrating =========================================
-- add_column(:changesets, :commit_date, :date)
   -> 0.2227s
==  AddChangesetCommitDate: migrated (0.2619s) ================================

==  AddProjectIdentifier: migrating ===========================================
-- add_column(:projects, :identifier, :string, {:limit=>20})
   -> 0.0364s
==  AddProjectIdentifier: migrated (0.0365s) ==================================

==  AddCustomFieldIsFilter: migrating =========================================
-- add_column(:custom_fields, :is_filter, :boolean, {:null=>false, :default=>false})
   -> 0.0312s
==  AddCustomFieldIsFilter: migrated (0.0313s) ================================

==  CreateWatchers: migrating =================================================
-- create_table(:watchers)
   -> 0.0109s
==  CreateWatchers: migrated (0.0111s) ========================================

==  CreateChangesetsIssues: migrating =========================================
-- create_table(:changesets_issues, {:id=>false})
   -> 0.0093s
-- add_index(:changesets_issues, [:changeset_id, :issue_id], {:unique=>true, :name=>:changesets_issues_ids})
   -> 0.0423s
==  CreateChangesetsIssues: migrated (0.0519s) ================================

==  RenameCommentToComments: migrating ========================================
==  RenameCommentToComments: migrated (0.2572s) ===============================

==  CreateIssueRelations: migrating ===========================================
-- create_table(:issue_relations)
   -> 0.0182s
==  CreateIssueRelations: migrated (0.0183s) ==================================

==  AddRelationsPermissions: migrating ========================================
==  AddRelationsPermissions: migrated (0.0151s) ===============================

==  SetLanguageLengthToFive: migrating ========================================
-- change_column(:users, :language, :string, {:limit=>5, :default=>""})
   -> 0.0183s
==  SetLanguageLengthToFive: migrated (0.0184s) ===============================

==  CreateBoards: migrating ===================================================
-- create_table(:boards)
   -> 0.0087s
-- add_index(:boards, [:project_id], {:name=>:boards_project_id})
   -> 0.0313s
==  CreateBoards: migrated (0.0402s) ==========================================

==  CreateMessages: migrating =================================================
-- create_table(:messages)
   -> 0.0100s
-- add_index(:messages, [:board_id], {:name=>:messages_board_id})
   -> 0.0309s
-- add_index(:messages, [:parent_id], {:name=>:messages_parent_id})
   -> 0.0272s
==  CreateMessages: migrated (0.0683s) ========================================

==  AddBoardsPermissions: migrating ===========================================
==  AddBoardsPermissions: migrated (0.0331s) ==================================

==  AllowNullVersionEffectiveDate: migrating ==================================
-- change_column(:versions, :effective_date, :date, {:default=>nil, :null=>true})
   -> 0.0190s
==  AllowNullVersionEffectiveDate: migrated (0.0192s) =========================

==  AddWikiDestroyPagePermission: migrating ===================================
==  AddWikiDestroyPagePermission: migrated (0.0109s) ==========================

==  AddWikiAttachmentsPermissions: migrating ==================================
==  AddWikiAttachmentsPermissions: migrated (0.0156s) =========================

==  AddProjectStatus: migrating ===============================================
-- add_column(:projects, :status, :integer, {:default=>1, :null=>false})
   -> 0.1861s
==  AddProjectStatus: migrated (0.1862s) ======================================

==  AddChangesRevision: migrating =============================================
-- add_column(:changes, :revision, :string)
   -> 0.0496s
==  AddChangesRevision: migrated (0.0497s) ====================================

==  AddChangesBranch: migrating ===============================================
-- add_column(:changes, :branch, :string)
   -> 0.0398s
==  AddChangesBranch: migrated (0.0398s) ======================================

==  AddChangesetsScmid: migrating =============================================
-- add_column(:changesets, :scmid, :string)
   -> 0.0476s
==  AddChangesetsScmid: migrated (0.0477s) ====================================

==  AddRepositoriesType: migrating ============================================
-- add_column(:repositories, :type, :string)
   -> 0.0335s
==  AddRepositoriesType: migrated (0.0379s) ===================================

==  AddRepositoriesChangesPermission: migrating ===============================
==  AddRepositoriesChangesPermission: migrated (0.0119s) ======================

==  AddVersionsWikiPageTitle: migrating =======================================
-- add_column(:versions, :wiki_page_title, :string)
   -> 0.0526s
==  AddVersionsWikiPageTitle: migrated (0.0527s) ==============================

==  AddIssueCategoriesAssignedToId: migrating =================================
-- add_column(:issue_categories, :assigned_to_id, :integer)
   -> 0.0470s
==  AddIssueCategoriesAssignedToId: migrated (0.0473s) ========================

==  AddRolesAssignable: migrating =============================================
-- add_column(:roles, :assignable, :boolean, {:default=>true})
   -> 0.0353s
==  AddRolesAssignable: migrated (0.0354s) ====================================

==  ChangeChangesetsCommitterLimit: migrating =================================
-- change_column(:changesets, :committer, :string, {:limit=>nil})
   -> 0.0580s
==  ChangeChangesetsCommitterLimit: migrated (0.0581s) ========================

==  AddRolesBuiltin: migrating ================================================
-- add_column(:roles, :builtin, :integer, {:default=>0, :null=>false})
   -> 0.0415s
==  AddRolesBuiltin: migrated (0.0416s) =======================================

==  InsertBuiltinRoles: migrating =============================================
==  InsertBuiltinRoles: migrated (0.1132s) ====================================

==  AddRolesPermissions: migrating ============================================
-- add_column(:roles, :permissions, :text)
   -> 0.0898s
==  AddRolesPermissions: migrated (0.0899s) ===================================

==  DropPermissions: migrating ================================================
-- drop_table(:permissions)
   -> 0.0038s
-- drop_table(:permissions_roles)
   -> 0.0028s
==  DropPermissions: migrated (0.0069s) =======================================

==  AddSettingsUpdatedOn: migrating ===========================================
-- add_column(:settings, :updated_on, :timestamp)
   -> 0.0385s
==  AddSettingsUpdatedOn: migrated (0.0902s) ==================================

==  AddCustomValueCustomizedIndex: migrating ==================================
-- add_index(:custom_values, [:customized_type, :customized_id], {:name=>:custom_values_customized})
   -> 0.0340s
==  AddCustomValueCustomizedIndex: migrated (0.0341s) =========================

==  CreateWikiRedirects: migrating ============================================
-- create_table(:wiki_redirects)
   -> 0.0100s
-- add_index(:wiki_redirects, [:wiki_id, :title], {:name=>:wiki_redirects_wiki_id_title})
   -> 0.0319s
==  CreateWikiRedirects: migrated (0.0421s) ===================================

==  CreateEnabledModules: migrating ===========================================
-- create_table(:enabled_modules)
   -> 0.0082s
-- add_index(:enabled_modules, [:project_id], {:name=>:enabled_modules_project_id})
   -> 0.1900s
==  CreateEnabledModules: migrated (0.2039s) ==================================

==  AddIssuesEstimatedHours: migrating ========================================
-- add_column(:issues, :estimated_hours, :float)
   -> 0.0511s
==  AddIssuesEstimatedHours: migrated (0.0512s) ===============================

==  ChangeAttachmentsContentTypeLimit: migrating ==============================
-- change_column(:attachments, :content_type, :string, {:limit=>nil})
   -> 0.0248s
==  ChangeAttachmentsContentTypeLimit: migrated (0.0249s) =====================

==  AddQueriesColumnNames: migrating ==========================================
-- add_column(:queries, :column_names, :text)
   -> 0.0377s
==  AddQueriesColumnNames: migrated (0.0378s) =================================

==  AddEnumerationsPosition: migrating ========================================
-- add_column(:enumerations, :position, :integer, {:default=>1})
   -> 0.0429s
==  AddEnumerationsPosition: migrated (0.0644s) ===============================

==  AddEnumerationsIsDefault: migrating =======================================
-- add_column(:enumerations, :is_default, :boolean, {:default=>false, :null=>false})
   -> 0.0394s
==  AddEnumerationsIsDefault: migrated (0.0395s) ==============================

==  AddAuthSourcesTls: migrating ==============================================
-- add_column(:auth_sources, :tls, :boolean, {:default=>false, :null=>false})
   -> 0.0468s
==  AddAuthSourcesTls: migrated (0.0469s) =====================================

==  AddMembersMailNotification: migrating =====================================
-- add_column(:members, :mail_notification, :boolean, {:default=>false, :null=>false})
   -> 0.0805s
==  AddMembersMailNotification: migrated (0.0806s) ============================

==  AllowNullPosition: migrating ==============================================
-- change_column(:issue_statuses, :position, :integer, {:default=>1, :null=>true})
   -> 0.0059s
-- change_column(:roles, :position, :integer, {:default=>1, :null=>true})
   -> 0.0055s
-- change_column(:trackers, :position, :integer, {:default=>1, :null=>true})
   -> 0.0053s
-- change_column(:boards, :position, :integer, {:default=>1, :null=>true})
   -> 0.0051s
-- change_column(:enumerations, :position, :integer, {:default=>1, :null=>true})
   -> 0.0056s
==  AllowNullPosition: migrated (0.0278s) =====================================

==  RemoveIssueStatusesHtmlColor: migrating ===================================
-- remove_column(:issue_statuses, :html_color)
   -> 0.1601s
==  RemoveIssueStatusesHtmlColor: migrated (0.1601s) ==========================

==  AddCustomFieldsPosition: migrating ========================================
-- add_column(:custom_fields, :position, :integer, {:default=>1})
   -> 0.0387s
==  AddCustomFieldsPosition: migrated (0.0402s) ===============================

==  AddUserPreferencesTimeZone: migrating =====================================
-- add_column(:user_preferences, :time_zone, :string)
   -> 0.0388s
==  AddUserPreferencesTimeZone: migrated (0.0389s) ============================

==  AddUsersType: migrating ===================================================
-- add_column(:users, :type, :string)
   -> 0.0899s
==  AddUsersType: migrated (0.0939s) ==========================================

==  CreateProjectsTrackers: migrating =========================================
-- create_table(:projects_trackers, {:id=>false})
   -> 0.0073s
-- add_index(:projects_trackers, :project_id, {:name=>:projects_trackers_project_id})
   -> 0.0294s
==  CreateProjectsTrackers: migrated (0.0403s) ================================

==  AddMessagesLocked: migrating ==============================================
-- add_column(:messages, :locked, :boolean, {:default=>false})
   -> 0.1434s
==  AddMessagesLocked: migrated (0.1436s) =====================================

==  AddMessagesSticky: migrating ==============================================
-- add_column(:messages, :sticky, :integer, {:default=>0})
   -> 0.1008s
==  AddMessagesSticky: migrated (0.1010s) =====================================

==  ChangeAuthSourcesAccountLimit: migrating ==================================
-- change_column(:auth_sources, :account, :string, {:limit=>nil})
   -> 0.0280s
==  ChangeAuthSourcesAccountLimit: migrated (0.0281s) =========================

==  AddRoleTrackerOldStatusIndexToWorkflows: migrating ========================
-- add_index(:workflows, [:role_id, :tracker_id, :old_status_id], {:name=>:wkfs_role_tracker_old_status})
   -> 0.0328s
==  AddRoleTrackerOldStatusIndexToWorkflows: migrated (0.0329s) ===============

==  AddCustomFieldsSearchable: migrating ======================================
-- add_column(:custom_fields, :searchable, :boolean, {:default=>false})
   -> 0.0713s
==  AddCustomFieldsSearchable: migrated (0.0714s) =============================

==  ChangeProjectsDescriptionToText: migrating ================================
-- change_column(:projects, :description, :text, {:null=>true, :default=>nil})
   -> 0.0234s
==  ChangeProjectsDescriptionToText: migrated (0.0235s) =======================

==  AddCustomFieldsDefaultValue: migrating ====================================
-- add_column(:custom_fields, :default_value, :text)
   -> 0.0460s
==  AddCustomFieldsDefaultValue: migrated (0.0463s) ===========================

==  AddAttachmentsDescription: migrating ======================================
-- add_column(:attachments, :description, :string)
   -> 0.0539s
==  AddAttachmentsDescription: migrated (0.0541s) =============================

==  ChangeVersionsNameLimit: migrating ========================================
-- change_column(:versions, :name, :string, {:limit=>nil})
   -> 0.0208s
==  ChangeVersionsNameLimit: migrated (0.0210s) ===============================

==  ChangeChangesetsRevisionToString: migrating ===============================
-- index_exists?(:changesets, [:repository_id, :revision], {:name=>:changesets_repos_rev})
   -> 0.0017s
-- remove_index(:changesets, {:name=>:changesets_repos_rev})
   -> 0.0051s
-- index_exists?(:changesets, [:repository_id, :revision], {:name=>:altered_changesets_repos_rev})
   -> 0.0015s
-- change_column(:changesets, :revision, :string, {:null=>false})
   -> 0.0192s
-- add_index(:changesets, [:repository_id, :revision], {:unique=>true, :name=>:changesets_repos_rev})
   -> 0.0353s
==  ChangeChangesetsRevisionToString: migrated (0.0635s) ======================

==  ChangeChangesFromRevisionToString: migrating ==============================
-- change_column(:changes, :from_revision, :string)
   -> 0.0214s
==  ChangeChangesFromRevisionToString: migrated (0.0215s) =====================

==  AddWikiPagesProtected: migrating ==========================================
-- add_column(:wiki_pages, :protected, :boolean, {:default=>false, :null=>false})
   -> 0.0536s
==  AddWikiPagesProtected: migrated (0.0537s) =================================

==  ChangeProjectsHomepageLimit: migrating ====================================
-- change_column(:projects, :homepage, :string, {:limit=>nil, :default=>""})
   -> 0.0195s
==  ChangeProjectsHomepageLimit: migrated (0.0197s) ===========================

==  AddWikiPagesParentId: migrating ===========================================
-- add_column(:wiki_pages, :parent_id, :integer, {:default=>nil})
   -> 0.0592s
==  AddWikiPagesParentId: migrated (0.0594s) ==================================

==  AddCommitAccessPermission: migrating ======================================
==  AddCommitAccessPermission: migrated (0.0032s) =============================

==  AddViewWikiEditsPermission: migrating =====================================
==  AddViewWikiEditsPermission: migrated (0.0035s) ============================

==  SetTopicAuthorsAsWatchers: migrating ======================================
==  SetTopicAuthorsAsWatchers: migrated (0.0391s) =============================

==  AddDeleteWikiPagesAttachmentsPermission: migrating ========================
==  AddDeleteWikiPagesAttachmentsPermission: migrated (0.0016s) ===============

==  AddChangesetsUserId: migrating ============================================
-- add_column(:changesets, :user_id, :integer, {:default=>nil})
   -> 0.0529s
==  AddChangesetsUserId: migrated (0.0530s) ===================================

==  PopulateChangesetsUserId: migrating =======================================
==  PopulateChangesetsUserId: migrated (0.0007s) ==============================

==  AddCustomFieldsEditable: migrating ========================================
-- add_column(:custom_fields, :editable, :boolean, {:default=>true})
   -> 0.0359s
==  AddCustomFieldsEditable: migrated (0.0360s) ===============================

==  SetCustomFieldsEditable: migrating ========================================
==  SetCustomFieldsEditable: migrated (0.0044s) ===============================

==  AddProjectsLftAndRgt: migrating ===========================================
-- add_column(:projects, :lft, :integer)
   -> 0.0386s
-- add_column(:projects, :rgt, :integer)
   -> 0.0350s
==  AddProjectsLftAndRgt: migrated (0.0739s) ==================================

==  BuildProjectsTree: migrating ==============================================
==  BuildProjectsTree: migrated (0.0175s) =====================================

==  RemoveProjectsProjectsCount: migrating ====================================
-- remove_column(:projects, :projects_count)
   -> 0.0397s
==  RemoveProjectsProjectsCount: migrated (0.0398s) ===========================

==  AddOpenIdAuthenticationTables: migrating ==================================
-- create_table(:open_id_authentication_associations, {:force=>true})
   -> 0.0139s
-- create_table(:open_id_authentication_nonces, {:force=>true})
   -> 0.0164s
==  AddOpenIdAuthenticationTables: migrated (0.0306s) =========================

==  AddIdentityUrlToUsers: migrating ==========================================
-- add_column(:users, :identity_url, :string)
   -> 0.0391s
==  AddIdentityUrlToUsers: migrated (0.0392s) =================================

==  AddWatchersUserIdTypeIndex: migrating =====================================
-- add_index(:watchers, [:user_id, :watchable_type], {:name=>:watchers_user_id_type})
   -> 0.0303s
==  AddWatchersUserIdTypeIndex: migrated (0.0305s) ============================

==  AddQueriesSortCriteria: migrating =========================================
-- add_column(:queries, :sort_criteria, :text)
   -> 0.0408s
==  AddQueriesSortCriteria: migrated (0.0410s) ================================

==  AddProjectsTrackersUniqueIndex: migrating =================================
-- add_index(:projects_trackers, [:project_id, :tracker_id], {:name=>:projects_trackers_unique, :unique=>true})
   -> 0.0511s
==  AddProjectsTrackersUniqueIndex: migrated (0.0525s) ========================

==  ExtendSettingsName: migrating =============================================
-- change_column(:settings, :name, :string, {:limit=>255, :default=>"", :null=>false})
   -> 0.0220s
==  ExtendSettingsName: migrated (0.0220s) ====================================

==  AddTypeToEnumerations: migrating ==========================================
-- add_column(:enumerations, :type, :string)
   -> 0.0418s
==  AddTypeToEnumerations: migrated (0.0419s) =================================

==  UpdateEnumerationsToSti: migrating ========================================
==  UpdateEnumerationsToSti: migrated (0.0028s) ===============================

==  AddActiveFieldToEnumerations: migrating ===================================
-- add_column(:enumerations, :active, :boolean, {:default=>true, :null=>false})
   -> 0.0368s
==  AddActiveFieldToEnumerations: migrated (0.0369s) ==========================

==  AddProjectToEnumerations: migrating =======================================
-- add_column(:enumerations, :project_id, :integer, {:null=>true, :default=>nil})
   -> 0.0385s
-- add_index(:enumerations, :project_id)
   -> 0.0319s
==  AddProjectToEnumerations: migrated (0.0706s) ==============================

==  AddParentIdToEnumerations: migrating ======================================
-- add_column(:enumerations, :parent_id, :integer, {:null=>true, :default=>nil})
   -> 0.0520s
==  AddParentIdToEnumerations: migrated (0.0521s) =============================

==  AddQueriesGroupBy: migrating ==============================================
-- add_column(:queries, :group_by, :string)
   -> 0.0410s
==  AddQueriesGroupBy: migrated (0.0411s) =====================================

==  CreateMemberRoles: migrating ==============================================
-- create_table(:member_roles)
   -> 0.0084s
==  CreateMemberRoles: migrated (0.0088s) =====================================

==  PopulateMemberRoles: migrating ============================================
==  PopulateMemberRoles: migrated (0.0165s) ===================================

==  DropMembersRoleId: migrating ==============================================
-- remove_column(:members, :role_id)
   -> 0.0340s
==  DropMembersRoleId: migrated (0.0340s) =====================================

==  FixMessagesStickyNull: migrating ==========================================
==  FixMessagesStickyNull: migrated (0.0013s) =================================

==  PopulateUsersType: migrating ==============================================
==  PopulateUsersType: migrated (0.0024s) =====================================

==  CreateGroupsUsers: migrating ==============================================
-- create_table(:groups_users, {:id=>false})
   -> 0.0080s
-- add_index(:groups_users, [:group_id, :user_id], {:unique=>true, :name=>:groups_users_ids})
   -> 0.0375s
==  CreateGroupsUsers: migrated (0.0457s) =====================================

==  AddMemberRolesInheritedFrom: migrating ====================================
-- add_column(:member_roles, :inherited_from, :integer)
   -> 0.0313s
==  AddMemberRolesInheritedFrom: migrated (0.0314s) ===========================

==  FixUsersCustomValues: migrating ===========================================
==  FixUsersCustomValues: migrated (0.0056s) ==================================

==  AddMissingIndexesToWorkflows: migrating ===================================
-- add_index(:workflows, :old_status_id)
   -> 0.0327s
-- add_index(:workflows, :role_id)
   -> 0.0235s
-- add_index(:workflows, :new_status_id)
   -> 0.0250s
==  AddMissingIndexesToWorkflows: migrated (0.0814s) ==========================

==  AddMissingIndexesToCustomFieldsProjects: migrating ========================
-- add_index(:custom_fields_projects, [:custom_field_id, :project_id])
   -> 0.0328s
==  AddMissingIndexesToCustomFieldsProjects: migrated (0.0329s) ===============

==  AddMissingIndexesToMessages: migrating ====================================
-- add_index(:messages, :last_reply_id)
   -> 0.0310s
-- add_index(:messages, :author_id)
   -> 0.0295s
==  AddMissingIndexesToMessages: migrated (0.0607s) ===========================

==  AddMissingIndexesToRepositories: migrating ================================
-- add_index(:repositories, :project_id)
   -> 0.0278s
==  AddMissingIndexesToRepositories: migrated (0.0279s) =======================

==  AddMissingIndexesToComments: migrating ====================================
-- add_index(:comments, [:commented_id, :commented_type])
   -> 0.0293s
-- add_index(:comments, :author_id)
   -> 0.0285s
==  AddMissingIndexesToComments: migrated (0.0580s) ===========================

==  AddMissingIndexesToEnumerations: migrating ================================
-- add_index(:enumerations, [:id, :type])
   -> 0.0333s
==  AddMissingIndexesToEnumerations: migrated (0.0334s) =======================

==  AddMissingIndexesToWikiPages: migrating ===================================
-- add_index(:wiki_pages, :wiki_id)
   -> 0.0313s
-- add_index(:wiki_pages, :parent_id)
   -> 0.0275s
==  AddMissingIndexesToWikiPages: migrated (0.0590s) ==========================

==  AddMissingIndexesToWatchers: migrating ====================================
-- add_index(:watchers, :user_id)
   -> 0.0319s
-- add_index(:watchers, [:watchable_id, :watchable_type])
   -> 0.0285s
==  AddMissingIndexesToWatchers: migrated (0.0606s) ===========================

==  AddMissingIndexesToAuthSources: migrating =================================
-- add_index(:auth_sources, [:id, :type])
   -> 0.0333s
==  AddMissingIndexesToAuthSources: migrated (0.0334s) ========================

==  AddMissingIndexesToDocuments: migrating ===================================
-- add_index(:documents, :category_id)
   -> 0.0315s
==  AddMissingIndexesToDocuments: migrated (0.0316s) ==========================

==  AddMissingIndexesToTokens: migrating ======================================
-- add_index(:tokens, :user_id)
   -> 0.0222s
==  AddMissingIndexesToTokens: migrated (0.0223s) =============================

==  AddMissingIndexesToChangesets: migrating ==================================
-- add_index(:changesets, :user_id)
   -> 0.0299s
-- add_index(:changesets, :repository_id)
   -> 0.0219s
==  AddMissingIndexesToChangesets: migrated (0.0519s) =========================

==  AddMissingIndexesToIssueCategories: migrating =============================
-- add_index(:issue_categories, :assigned_to_id)
   -> 0.0229s
==  AddMissingIndexesToIssueCategories: migrated (0.0230s) ====================

==  AddMissingIndexesToMemberRoles: migrating =================================
-- add_index(:member_roles, :member_id)
   -> 0.0277s
-- add_index(:member_roles, :role_id)
   -> 0.0272s
==  AddMissingIndexesToMemberRoles: migrated (0.0551s) ========================

==  AddMissingIndexesToBoards: migrating ======================================
-- add_index(:boards, :last_message_id)
   -> 0.0243s
==  AddMissingIndexesToBoards: migrated (0.0243s) =============================

==  AddMissingIndexesToUserPreferences: migrating =============================
-- add_index(:user_preferences, :user_id)
   -> 0.0286s
==  AddMissingIndexesToUserPreferences: migrated (0.0289s) ====================

==  AddMissingIndexesToIssues: migrating ======================================
-- add_index(:issues, :status_id)
   -> 0.0250s
-- add_index(:issues, :category_id)
   -> 0.0293s
-- add_index(:issues, :assigned_to_id)
   -> 0.0228s
-- add_index(:issues, :fixed_version_id)
   -> 0.0233s
-- add_index(:issues, :tracker_id)
   -> 0.0235s
-- add_index(:issues, :priority_id)
   -> 0.0257s
-- add_index(:issues, :author_id)
   -> 0.0308s
==  AddMissingIndexesToIssues: migrated (0.1811s) =============================

==  AddMissingIndexesToMembers: migrating =====================================
-- add_index(:members, :user_id)
   -> 0.0284s
-- add_index(:members, :project_id)
   -> 0.0310s
==  AddMissingIndexesToMembers: migrated (0.0596s) ============================

==  AddMissingIndexesToCustomFields: migrating ================================
-- add_index(:custom_fields, [:id, :type])
   -> 0.0292s
==  AddMissingIndexesToCustomFields: migrated (0.0294s) =======================

==  AddMissingIndexesToQueries: migrating =====================================
-- add_index(:queries, :project_id)
   -> 0.0244s
-- add_index(:queries, :user_id)
   -> 0.0305s
==  AddMissingIndexesToQueries: migrated (0.0552s) ============================

==  AddMissingIndexesToTimeEntries: migrating =================================
-- add_index(:time_entries, :activity_id)
   -> 0.0229s
-- add_index(:time_entries, :user_id)
   -> 0.0261s
==  AddMissingIndexesToTimeEntries: migrated (0.0492s) ========================

==  AddMissingIndexesToNews: migrating ========================================
-- add_index(:news, :author_id)
   -> 0.0335s
==  AddMissingIndexesToNews: migrated (0.0337s) ===============================

==  AddMissingIndexesToUsers: migrating =======================================
-- add_index(:users, [:id, :type])
   -> 0.0269s
-- add_index(:users, :auth_source_id)
   -> 0.0319s
==  AddMissingIndexesToUsers: migrated (0.0590s) ==============================

==  AddMissingIndexesToAttachments: migrating =================================
-- add_index(:attachments, [:container_id, :container_type])
   -> 0.0266s
-- add_index(:attachments, :author_id)
   -> 0.0313s
==  AddMissingIndexesToAttachments: migrated (0.0581s) ========================

==  AddMissingIndexesToWikiContents: migrating ================================
-- add_index(:wiki_contents, :author_id)
   -> 0.0268s
==  AddMissingIndexesToWikiContents: migrated (0.0275s) =======================

==  AddMissingIndexesToCustomValues: migrating ================================
-- add_index(:custom_values, :custom_field_id)
   -> 0.0295s
==  AddMissingIndexesToCustomValues: migrated (0.0296s) =======================

==  AddMissingIndexesToJournals: migrating ====================================
-- add_index(:journals, :user_id)
   -> 0.0275s
-- add_index(:journals, :journalized_id)
   -> 0.1242s
==  AddMissingIndexesToJournals: migrated (0.1519s) ===========================

==  AddMissingIndexesToIssueRelations: migrating ==============================
-- add_index(:issue_relations, :issue_from_id)
   -> 0.0354s
-- add_index(:issue_relations, :issue_to_id)
   -> 0.0234s
==  AddMissingIndexesToIssueRelations: migrated (0.0591s) =====================

==  AddMissingIndexesToWikiRedirects: migrating ===============================
-- add_index(:wiki_redirects, :wiki_id)
   -> 0.0272s
==  AddMissingIndexesToWikiRedirects: migrated (0.0276s) ======================

==  AddMissingIndexesToCustomFieldsTrackers: migrating ========================
-- add_index(:custom_fields_trackers, [:custom_field_id, :tracker_id])
   -> 0.1738s
==  AddMissingIndexesToCustomFieldsTrackers: migrated (0.1740s) ===============

==  AddActivityIndexes: migrating =============================================
-- add_index(:journals, :created_on)
   -> 0.0318s
-- add_index(:changesets, :committed_on)
   -> 0.0286s
-- add_index(:wiki_content_versions, :updated_on)
   -> 0.0333s
-- add_index(:messages, :created_on)
   -> 0.0272s
-- add_index(:issues, :created_on)
   -> 0.0302s
-- add_index(:news, :created_on)
   -> 0.0229s
-- add_index(:attachments, :created_on)
   -> 0.0285s
-- add_index(:documents, :created_on)
   -> 0.0305s
-- add_index(:time_entries, :created_on)
   -> 0.0234s
==  AddActivityIndexes: migrated (0.2578s) ====================================

==  AddVersionsStatus: migrating ==============================================
-- add_column(:versions, :status, :string, {:default=>"open"})
   -> 0.0439s
==  AddVersionsStatus: migrated (0.0467s) =====================================

==  AddViewIssuesPermission: migrating ========================================
==  AddViewIssuesPermission: migrated (0.0118s) ===============================

==  AddDefaultDoneRatioToIssueStatus: migrating ===============================
-- add_column(:issue_statuses, :default_done_ratio, :integer)
   -> 0.0339s
==  AddDefaultDoneRatioToIssueStatus: migrated (0.0340s) ======================

==  AddVersionsSharing: migrating =============================================
-- add_column(:versions, :sharing, :string, {:default=>"none", :null=>false})
   -> 0.0557s
-- add_index(:versions, :sharing)
   -> 0.0267s
==  AddVersionsSharing: migrated (0.0828s) ====================================

==  AddLftAndRgtIndexesToProjects: migrating ==================================
-- add_index(:projects, :lft)
   -> 0.0296s
-- add_index(:projects, :rgt)
   -> 0.0238s
==  AddLftAndRgtIndexesToProjects: migrated (0.0536s) =========================

==  AddIndexToSettingsName: migrating =========================================
-- add_index(:settings, :name)
   -> 0.0283s
==  AddIndexToSettingsName: migrated (0.0285s) ================================

==  AddIndexesToIssueStatus: migrating ========================================
-- add_index(:issue_statuses, :position)
   -> 0.0260s
-- add_index(:issue_statuses, :is_closed)
   -> 0.4581s
-- add_index(:issue_statuses, :is_default)
   -> 0.0353s
==  AddIndexesToIssueStatus: migrated (0.5197s) ===============================

==  RemoveEnumerationsOpt: migrating ==========================================
-- remove_column(:enumerations, :opt)
   -> 0.0654s
==  RemoveEnumerationsOpt: migrated (0.0655s) =================================

==  ChangeWikiContentsTextLimit: migrating ====================================
-- change_column(:wiki_contents, :text, :text, {:limit=>16777216})
   -> 0.0726s
-- change_column(:wiki_content_versions, :data, :binary, {:limit=>16777216})
   -> 0.0244s
==  ChangeWikiContentsTextLimit: migrated (0.0974s) ===========================

==  ChangeUsersMailNotificationToString: migrating ============================
-- rename_column(:users, :mail_notification, :mail_notification_bool)
   -> 0.0112s
-- add_column(:users, :mail_notification, :string, {:default=>"", :null=>false})
   -> 0.0727s
-- remove_column(:users, :mail_notification_bool)
   -> 0.0631s
==  ChangeUsersMailNotificationToString: migrated (0.1531s) ===================

==  UpdateMailNotificationValues: migrating ===================================
==  UpdateMailNotificationValues: migrated (0.0007s) ==========================

==  AddIndexOnChangesetsScmid: migrating ======================================
-- add_index(:changesets, [:repository_id, :scmid], {:name=>:changesets_repos_scmid})
   -> 0.0333s
==  AddIndexOnChangesetsScmid: migrated (0.0335s) =============================

==  AddIssuesNestedSetsColumns: migrating =====================================
-- add_column(:issues, :parent_id, :integer, {:default=>nil})
   -> 0.1941s
-- add_column(:issues, :root_id, :integer, {:default=>nil})
   -> 0.1775s
-- add_column(:issues, :lft, :integer, {:default=>nil})
   -> 0.1798s
-- add_column(:issues, :rgt, :integer, {:default=>nil})
   -> 0.1741s
==  AddIssuesNestedSetsColumns: migrated (0.8368s) ============================

==  AddIndexOnIssuesNestedSet: migrating ======================================
-- add_index(:issues, [:root_id, :lft, :rgt])
   -> 0.0350s
==  AddIndexOnIssuesNestedSet: migrated (0.0352s) =============================

==  ChangeChangesPathLengthLimit: migrating ===================================
-- change_column(:changes, :path, :text, {:default=>nil, :null=>true})
   -> 0.0252s
-- change_column(:changes, :path, :text, {:null=>false})
   -> 0.0522s
-- change_column(:changes, :from_path, :text)
   -> 0.0248s
==  ChangeChangesPathLengthLimit: migrated (0.1025s) ==========================

==  EnableCalendarAndGanttModulesWhereAppropriate: migrating ==================
==  EnableCalendarAndGanttModulesWhereAppropriate: migrated (0.0228s) =========

==  AddUniqueIndexOnMembers: migrating ========================================
-- add_index(:members, [:user_id, :project_id], {:unique=>true})
   -> 0.0350s
==  AddUniqueIndexOnMembers: migrated (0.0415s) ===============================

==  AddCustomFieldsVisible: migrating =========================================
-- add_column(:custom_fields, :visible, :boolean, {:null=>false, :default=>true})
   -> 0.0533s
==  AddCustomFieldsVisible: migrated (0.0549s) ================================

==  ChangeProjectsNameLimit: migrating ========================================
-- change_column(:projects, :name, :string, {:limit=>nil, :default=>"", :null=>false})
   -> 0.0285s
==  ChangeProjectsNameLimit: migrated (0.0290s) ===============================

==  ChangeProjectsIdentifierLimit: migrating ==================================
-- change_column(:projects, :identifier, :string, {:limit=>nil})
   -> 0.0316s
==  ChangeProjectsIdentifierLimit: migrated (0.0318s) =========================

==  AddWorkflowsAssigneeAndAuthor: migrating ==================================
-- add_column(:workflows, :assignee, :boolean, {:null=>false, :default=>false})
   -> 0.0966s
-- add_column(:workflows, :author, :boolean, {:null=>false, :default=>false})
   -> 0.1742s
==  AddWorkflowsAssigneeAndAuthor: migrated (0.3332s) =========================

==  AddUsersSalt: migrating ===================================================
-- add_column(:users, :salt, :string, {:limit=>64})
   -> 0.1128s
==  AddUsersSalt: migrated (0.1129s) ==========================================

==  SaltUserPasswords: migrating ==============================================
-- Salting user passwords, this may take some time...
   -> 0.0474s
==  SaltUserPasswords: migrated (0.0475s) =====================================

==  AddRepositoriesPathEncoding: migrating ====================================
-- add_column(:repositories, :path_encoding, :string, {:limit=>64, :default=>nil})
   -> 0.0517s
==  AddRepositoriesPathEncoding: migrated (0.0518s) ===========================

==  ChangeRepositoriesPasswordLimit: migrating ================================
-- change_column(:repositories, :password, :string, {:limit=>nil, :default=>""})
   -> 0.0451s
==  ChangeRepositoriesPasswordLimit: migrated (0.0452s) =======================

==  ChangeAuthSourcesAccountPasswordLimit: migrating ==========================
-- change_column(:auth_sources, :account_password, :string, {:limit=>nil, :default=>""})
   -> 0.0409s
==  ChangeAuthSourcesAccountPasswordLimit: migrated (0.0415s) =================

==  ChangeJournalDetailsValuesToText: migrating ===============================
-- change_column(:journal_details, :old_value, :text)
   -> 0.0285s
-- change_column(:journal_details, :value, :text)
   -> 0.0286s
==  ChangeJournalDetailsValuesToText: migrated (0.0574s) ======================

==  AddRepositoriesLogEncoding: migrating =====================================
-- add_column(:repositories, :log_encoding, :string, {:limit=>64, :default=>nil})
   -> 0.0486s
==  AddRepositoriesLogEncoding: migrated (0.0490s) ============================

==  CopyRepositoriesLogEncoding: migrating ====================================
==  CopyRepositoriesLogEncoding: migrated (0.0164s) ===========================

==  AddIndexToUsersType: migrating ============================================
-- add_index(:users, :type)
   -> 0.0903s
==  AddIndexToUsersType: migrated (0.0904s) ===================================

==  AddRolesIssuesVisibility: migrating =======================================
-- add_column(:roles, :issues_visibility, :string, {:limit=>30, :default=>"default", :null=>false})
   -> 0.0768s
==  AddRolesIssuesVisibility: migrated (0.0771s) ==============================

==  AddIssuesIsPrivate: migrating =============================================
-- add_column(:issues, :is_private, :boolean, {:default=>false, :null=>false})
   -> 0.2396s
==  AddIssuesIsPrivate: migrated (0.2399s) ====================================

==  AddRepositoriesExtraInfo: migrating =======================================
-- add_column(:repositories, :extra_info, :text)
   -> 0.0539s
==  AddRepositoriesExtraInfo: migrated (0.0541s) ==============================

==  CreateChangesetParents: migrating =========================================
-- create_table(:changeset_parents, {:id=>false})
   -> 0.0114s
-- add_index(:changeset_parents, [:changeset_id], {:unique=>false, :name=>:changeset_parents_changeset_ids})
   -> 0.0336s
-- add_index(:changeset_parents, [:parent_id], {:unique=>false, :name=>:changeset_parents_parent_ids})
   -> 0.0231s
==  CreateChangesetParents: migrated (0.0683s) ================================

==  AddUniqueIndexToIssueRelations: migrating =================================
-- add_index(:issue_relations, [:issue_from_id, :issue_to_id], {:unique=>true})
   -> 0.0317s
==  AddUniqueIndexToIssueRelations: migrated (0.0331s) ========================

==  AddRepositoriesIdentifier: migrating ======================================
-- add_column(:repositories, :identifier, :string)
   -> 0.1065s
==  AddRepositoriesIdentifier: migrated (0.1067s) =============================

==  AddRepositoriesIsDefault: migrating =======================================
-- add_column(:repositories, :is_default, :boolean, {:default=>false})
   -> 0.0550s
==  AddRepositoriesIsDefault: migrated (0.0554s) ==============================

==  SetDefaultRepositories: migrating =========================================
==  SetDefaultRepositories: migrated (0.0021s) ================================

==  AddCustomFieldsMultiple: migrating ========================================
-- add_column(:custom_fields, :multiple, :boolean, {:default=>false})
   -> 0.0551s
==  AddCustomFieldsMultiple: migrated (0.0553s) ===============================

==  ChangeUsersLoginLimit: migrating ==========================================
-- change_column(:users, :login, :string, {:limit=>nil, :default=>"", :null=>false})
   -> 0.0284s
==  ChangeUsersLoginLimit: migrated (0.0287s) =================================

==  ChangeAttachmentsContainerDefaults: migrating =============================
-- remove_index(:attachments, [:container_id, :container_type])
   -> 0.0065s
-- change_column(:attachments, :container_id, :integer, {:default=>nil, :null=>true})
   -> 0.1361s
-- change_column(:attachments, :container_type, :string, {:limit=>30, :default=>nil, :null=>true})
   -> 0.0715s
-- add_index(:attachments, [:container_id, :container_type])
   -> 0.0704s
==  ChangeAttachmentsContainerDefaults: migrated (0.2902s) ====================

==  AddAuthSourcesFilter: migrating ===========================================
-- add_column(:auth_sources, :filter, :string)
   -> 0.0518s
==  AddAuthSourcesFilter: migrated (0.0522s) ==================================

==  ChangeRepositoriesToFullSti: migrating ====================================
==  ChangeRepositoriesToFullSti: migrated (0.0009s) ===========================

==  AddTrackersFieldsBits: migrating ==========================================
-- add_column(:trackers, :fields_bits, :integer, {:default=>0})
   -> 0.0776s
==  AddTrackersFieldsBits: migrated (0.0778s) =================================

==  AddAuthSourcesTimeout: migrating ==========================================
-- add_column(:auth_sources, :timeout, :integer)
   -> 0.0500s
==  AddAuthSourcesTimeout: migrated (0.0503s) =================================

==  AddWorkflowsType: migrating ===============================================
-- add_column(:workflows, :type, :string, {:limit=>30})
   -> 0.0970s
==  AddWorkflowsType: migrated (0.0971s) ======================================

==  UpdateWorkflowsToSti: migrating ===========================================
==  UpdateWorkflowsToSti: migrated (0.0014s) ==================================

==  AddWorkflowsRuleFields: migrating =========================================
-- add_column(:workflows, :field_name, :string, {:limit=>30})
   -> 0.2063s
-- add_column(:workflows, :rule, :string, {:limit=>30})
   -> 0.1076s
==  AddWorkflowsRuleFields: migrated (0.3142s) ================================

==  AddBoardsParentId: migrating ==============================================
-- add_column(:boards, :parent_id, :integer)
   -> 0.1287s
==  AddBoardsParentId: migrated (0.1288s) =====================================

==  AddJournalsPrivateNotes: migrating ========================================
-- add_column(:journals, :private_notes, :boolean, {:default=>false, :null=>false})
   -> 0.0960s
==  AddJournalsPrivateNotes: migrated (0.0965s) ===============================

==  AddEnumerationsPositionName: migrating ====================================
-- add_column(:enumerations, :position_name, :string, {:limit=>30})
   -> 0.0634s
==  AddEnumerationsPositionName: migrated (0.0636s) ===========================

==  PopulateEnumerationsPositionName: migrating ===============================
==  PopulateEnumerationsPositionName: migrated (0.0045s) ======================

==  AddQueriesType: migrating =================================================
-- add_column(:queries, :type, :string)
   -> 0.1878s
==  AddQueriesType: migrated (0.1879s) ========================================

==  UpdateQueriesToSti: migrating =============================================
==  UpdateQueriesToSti: migrated (0.0270s) ====================================

==  AddAttachmentsDiskDirectory: migrating ====================================
-- add_column(:attachments, :disk_directory, :string)
   -> 0.0787s
==  AddAttachmentsDiskDirectory: migrated (0.0788s) ===========================

==  SplitDocumentsPermissions: migrating ======================================
==  SplitDocumentsPermissions: migrated (0.0028s) =============================

==  AddUniqueIndexOnTokensValue: migrating ====================================
-- Adding unique index on tokens, this may take some time...
-- add_index(:tokens, :value, {:unique=>true, :name=>"tokens_value"})
   -> 0.1349s
   -> 0.1433s
==  AddUniqueIndexOnTokensValue: migrated (0.1433s) ===========================

==  AddProjectsInheritMembers: migrating ======================================
-- add_column(:projects, :inherit_members, :boolean, {:default=>false, :null=>false})
   -> 0.0651s
==  AddProjectsInheritMembers: migrated (0.0653s) =============================

==  AddUniqueIndexOnCustomFieldsTrackers: migrating ===========================
-- index_exists?(:custom_fields_trackers, [:custom_field_id, :tracker_id])
   -> 0.0020s
-- remove_index(:custom_fields_trackers, [:custom_field_id, :tracker_id])
   -> 0.0054s
-- add_index(:custom_fields_trackers, [:custom_field_id, :tracker_id], {:unique=>true})
   -> 0.0397s
==  AddUniqueIndexOnCustomFieldsTrackers: migrated (0.0490s) ==================

==  AddUniqueIndexOnCustomFieldsProjects: migrating ===========================
-- index_exists?(:custom_fields_projects, [:custom_field_id, :project_id])
   -> 0.0015s
-- remove_index(:custom_fields_projects, [:custom_field_id, :project_id])
   -> 0.0057s
-- add_index(:custom_fields_projects, [:custom_field_id, :project_id], {:unique=>true})
   -> 0.0702s
==  AddUniqueIndexOnCustomFieldsProjects: migrated (0.0800s) ==================

==  ChangeUsersLastnameLengthTo255: migrating =================================
-- change_column(:users, :lastname, :string, {:limit=>255, :default=>"", :null=>false})
   -> 0.0309s
==  ChangeUsersLastnameLengthTo255: migrated (0.0311s) ========================

==  AddIssuesClosedOn: migrating ==============================================
-- add_column(:issues, :closed_on, :datetime, {:default=>nil})
   -> 0.2523s
==  AddIssuesClosedOn: migrated (0.2525s) =====================================

==  PopulateIssuesClosedOn: migrating =========================================
==  PopulateIssuesClosedOn: migrated (0.0018s) ================================

==  RemoveIssuesDefaultFkValues: migrating ====================================
-- change_column_default(:issues, :tracker_id, nil)
   -> 0.0110s
-- change_column_default(:issues, :project_id, nil)
   -> 0.0100s
-- change_column_default(:issues, :status_id, nil)
   -> 0.0088s
-- change_column_default(:issues, :assigned_to_id, nil)
   -> 0.0090s
-- change_column_default(:issues, :priority_id, nil)
   -> 0.0090s
-- change_column_default(:issues, :author_id, nil)
   -> 0.0087s
==  RemoveIssuesDefaultFkValues: migrated (0.0568s) ===========================

==  CreateQueriesRoles: migrating =============================================
-- create_table(:queries_roles, {:id=>false})
   -> 0.0091s
-- add_index(:queries_roles, [:query_id, :role_id], {:unique=>true, :name=>:queries_roles_ids})
   -> 0.0395s
==  CreateQueriesRoles: migrated (0.0488s) ====================================

==  AddQueriesVisibility: migrating ===========================================
-- add_column(:queries, :visibility, :integer, {:default=>0})
   -> 0.0633s
-- remove_column(:queries, :is_public)
   -> 0.0647s
==  AddQueriesVisibility: migrated (0.1332s) ==================================

==  CreateCustomFieldsRoles: migrating ========================================
-- create_table(:custom_fields_roles, {:id=>false})
   -> 0.0098s
-- add_index(:custom_fields_roles, [:custom_field_id, :role_id], {:unique=>true, :name=>:custom_fields_roles_ids})
   -> 0.0344s
==  CreateCustomFieldsRoles: migrated (0.0463s) ===============================

==  AddQueriesOptions: migrating ==============================================
-- add_column(:queries, :options, :text)
   -> 0.0642s
==  AddQueriesOptions: migrated (0.0643s) =====================================

==  AddUsersMustChangePasswd: migrating =======================================
-- add_column(:users, :must_change_passwd, :boolean, {:default=>false, :null=>false})
   -> 0.0814s
==  AddUsersMustChangePasswd: migrated (0.0815s) ==============================

==  RemoveEolsFromAttachmentsFilename: migrating ==============================
==  RemoveEolsFromAttachmentsFilename: migrated (0.0065s) =====================

==  SupportForMultipleCommitKeywords: migrating ===============================
==  SupportForMultipleCommitKeywords: migrated (0.0061s) ======================

==  AddRepositoriesCreatedOn: migrating =======================================
-- add_column(:repositories, :created_on, :timestamp)
   -> 0.0526s
==  AddRepositoriesCreatedOn: migrated (0.0528s) ==============================

==  AddCustomFieldsFormatStore: migrating =====================================
-- add_column(:custom_fields, :format_store, :text)
   -> 0.0545s
==  AddCustomFieldsFormatStore: migrated (0.0546s) ============================

==  AddCustomFieldsDescription: migrating =====================================
-- add_column(:custom_fields, :description, :text)
   -> 0.0498s
==  AddCustomFieldsDescription: migrated (0.0499s) ============================

==  RemoveCustomFieldsMinMaxLengthDefaultValues: migrating ====================
-- change_column(:custom_fields, :min_length, :int, {:default=>nil, :null=>true})
   -> 0.0540s
-- change_column(:custom_fields, :max_length, :int, {:default=>nil, :null=>true})
   -> 0.0522s
==  RemoveCustomFieldsMinMaxLengthDefaultValues: migrated (0.1098s) ===========

==  StoreRelationTypeInJournalDetails: migrating ==============================
==  StoreRelationTypeInJournalDetails: migrated (0.0165s) =====================

==  DeleteOrphanTimeEntriesCustomValues: migrating ============================
==  DeleteOrphanTimeEntriesCustomValues: migrated (0.0020s) ===================

==  ChangeChangesetsCommentsLimit: migrating ==================================
-- change_column(:changesets, :comments, :text, {:limit=>16777216})
   -> 0.1015s
==  ChangeChangesetsCommentsLimit: migrated (0.1017s) =========================

==  AddPasswordChangedAtToUser: migrating =====================================
-- add_column(:users, :passwd_changed_on, :datetime)
   -> 0.0918s
==  AddPasswordChangedAtToUser: migrated (0.0920s) ============================

==  InsertBuiltinGroups: migrating ============================================
==  InsertBuiltinGroups: migrated (0.1549s) ===================================
14:装入默认的配置信息,输入zh(选择中文)

[root@jifeng03 redmine-2.6.0]# RAILS_ENV=production rake redmine:load_default_data

Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en] zh
====================================
Default configuration data loaded.

15:启动redmine

[root@jifeng03 redmine-2.6.0]# ruby script/rails server webrick -e production
=> Booting WEBrick
=> Rails 3.2.19 application starting in production on http://0.0.0.0:3000
=> Call with -d to detach
=> Ctrl-C to shutdown server

后台运行

[root@jifeng03 redmine-2.6.0]# ruby script/rails server webrick -e production -d
=> Booting WEBrick
=> Rails 3.2.19 application starting in production on http://0.0.0.0:3000
[root@jifeng03 redmine-2.6.0]# which ruby
/usr/local/rvm/rubies/ruby-2.0.0-p598/bin/ruby


16:开机自动启动

编辑启动文件

vi /etc/rc.local

最后一行或者适当的位置,加入一下内容。此处必须用绝对路径。注意根据实际redmine路径来填写。

/usr/local/rvm/rubies/ruby-2.0.0-p598/bin/ruby /root/redmine-2.6.0/script/rails server webrick -e production -d


参考 http://www.redmine.org/projects/redmine/wiki/RedmineInstall

你可能感兴趣的:(项目管理)