2013年4月7日 星期日

在 Windows 上安裝 Redmine 2.3.0 的筆記

Redmine 是一套很有名的專案管理系統,建構於 Ruby on Rails 之上。網路上搜尋「Redmine」都可以找到很多相關資料,這邊就不贅述功能。

由於 Ruby/Rails 在 MacOSX 跟 Linux 相對比較友善,所以要找 Redmine on Windows 的安裝教學實在不太好找,中文資料更是寥寥可數。加上 Rails 進步迅速,很多 07~09 年的資料其實很可能都已經過時,所以乾脆自己研究完寫一篇XD

不過由於現在實在沒什麼空寫網誌,所以簡單的把方法跟過程記錄一下....

這邊主要是根據 http://www.redmine.org/projects/redmine/wiki/RedmineInstall 上面的說明,而 Redmine 安裝相依於特定的 rails 與 ruby 版本,可以參考前面這個連結裡面的表格。而我這邊以 Ruby 1.9.3 + Rails 3.2.13 + Redmine 2.3.0 為目標。

以下為安裝步驟:(注意!安裝過程中的路徑最好都不要有中文,如果出現奇怪的問題,請先嘗試把目錄或檔案放到沒有中文路徑的位置。目前我已經碰到某些 gem file 放在中文路徑會沒辦法安裝)

  1. 下載 Ruby installer 與 Development Kit (這邊我都選 32-bit 版本)
    http://rubyinstaller.org/downloads
  2. 下載 Redmine (點第一段的 RubyForge 連結)
    http://www.redmine.org/projects/redmine/wiki/Download
  3. 安裝 Ruby
    雙擊 ruby installer 並一直 Next,注意中途應選擇「Add Ruby executables to your PATH」
  4. 安裝 Development Kit
    將 Development Kit 解壓縮到 C:\Ruby193\DevKit,並打開命令提示字元執行以下指令
    ruby C:\Ruby193\DevKit\dk.rb init
    ruby C:\Ruby193\DevKit\dk.rb install
    
  5. 解壓縮 Redmine 至特定目錄,在此以「$REDMINE」表示
  6. 進入 $REDMINE\config\ 目錄中,複製 database.yml.example 至 database.yml
  7. 根據自己的環境,設定 database.yml。
    在此我打算使用 SQLite3 作為 production (雖然官方不建議),所以只需要很簡單的3行
    production:
      adapter: sqlite3
      database: db/redmine.sqlite3
    
  8. 安裝相依 gems
    cd $REDMINE
    gem install bundler
    bundle install --without development test rmagick # rmagick 還需要額外安裝其他東西,乾脆就先不用了
    
  9. 設定 Redmine
    set RAILS_ENV=production
    rake generate_secret_token
    rake db:migrate
    rake redmine:load_default_data
    ruby script/rails server webrick -e production
    
  10. 到這裡,Redmine server 應該已經 run 起來了,連上 http://localhost:3000/ 看看吧!
通常應該這樣就結束了,但是發現某些文章提到用 mongrel,他似乎也是個 ruby 寫的 web server 吧....查了一下資料發現,有個更新的東西叫做 thin,根據 thin 的說法,它用了 mongrel parser....然後效能比 mongrel 好.....哎呀反正我也不太懂,反正試試看就對了XD
安裝 thin 很簡單:
gem install thin
執行則是
thin start
結果竟然跑不起來?找了一些資料才發現,原來要加上 Gemflie.local 才行....反正結論是,應該這樣安裝
  1. 先編輯 $REDMINE\Gemfile.local
    gem 'thin'
    
  2. 執行以下指令
    bundle install
    thin start
    
最後來個番外篇...如果想把相關檔案全都抓下來,拿到一台沒有網路的電腦安裝,應該怎麼做呢?可以透過 bundle 幫我們做這件事!
在 $REDMINE 下,執行 bundle package,就可以在 $REDMINE\vender\cache\ 裡面找到目前配置下所需的所有 gems,但有趣的是,bundler 自己不在裡面.....XD 要找到 bundler 的 gem 的話,可以去 C:\Ruby193\lib\ruby\gems\1.9.1\cache\ 裡面撈...找到 bundle 與 bundler 這兩個 gem,直接複製即可。(別問我,我不曉得這兩個分別是幹嘛的....)
另外,我們還得偷帶走 $REDMINE\Gemfile.lock 這個檔案,這樣 bundle 才能在沒有網路連線的情況下,了解 gems 之間的相依性。既然都拿 Gemfile.lock 了,那剛剛安裝 thin 用的 Gemfile.local 也順便帶走吧!所以,想要離線安裝,先準備好以下這些檔案
  • Ruby Installer
  • Development Kit
  • Redmine
  • 挖出來的 gems (包含 bundler, bundle, 以及 bundle package 產生的那些)
  • Gemfile.local 與 Gemfile.lock
然後根據以下步驟安裝
  1. 進行上面一般安裝步驟的第 3~7 步
  2. 安裝 gems (假設我把檔案放在 C:\Ruby193\gems.local)
    cd C:\Ruby193\gems.local
    gem install -l *
    
  3. 把 Gemfile.local 與 Gemfile.lock 丟回 $REDMINE
  4. 執行以下指令
    cd $REDMINE
    bundle install --without development test rmagick --local
    
  5. 進行一般安裝步驟第 9 步
  6. 完成!
希望上面的筆記也可以對其他人有幫助.....

好啦我知道這篇文章排版很糟糕...但我實在沒空調整了orz 再抱怨一次 Blogger 的寫文章介面實在不太好用 :(