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 的寫文章介面實在不太好用 :(

12 則留言:

  1. 你有用apt-get裝過嗎? 我用apt-get裝起來竟然會爛掉...

    回覆刪除
  2. 我以前在 Ubuntu 上就是用 apt-get 裝的.....Debian 我也試過 都沒問題@@ (比在 windows 上安裝方便太多了orz)

    回覆刪除
  3. 後來發現用http://bitnami.com/懶人包裝會輕鬆一萬倍

    回覆刪除
    回覆
    1. 噢,對啊!可是我當時的目的是在沒有網際網路的電腦安裝...所以這個方案不可行orz

      刪除
  4. 在網頁中嵌入顯示程式碼:Google Code Prettify @ 符碼記憶
    http://www.ewdna.com/2012/02/google-code-prettify.html
    在網頁中嵌入顯示程式碼:CSS Block @ 符碼記憶
    http://www.ewdna.com/2012/02/css-block.html
    HTML Encoder
    http://www.opinionatedgeek.com/DotNet/Tools/HTMLEncode/Encode.aspx


    加這兩個CSS會不會好點:~還有HTML先轉碼~

    回覆刪除
    回覆
    1. 感謝,但我不清楚您說的 HTML 先轉碼是指哪個部分?

      刪除
  5. > 再抱怨一次 Blogger 的寫文章介面實在不太好用 :(
    就是你報怨寫html原始碼

    HTML Encoder<可以先轉碼

    另外我找到了這個能在VIM直接轉碼
    HTML entities - Vim Tips Wiki
    http://vim.wikia.com/wiki/HTML_entities

    回覆刪除
    回覆
    1. 噢....我需要的不是這個啦XD 實在是 blogger 的編輯器太難用了....而且寫 blog 要自己編輯 html 也滿討厭的,不過還是謝謝你@@

      ps. Logdown 在某方面大幅解決這個問題....所以現在算是跳槽過去了吧。(但我文章很少,而且很常跳槽)

      刪除
  6. 您好,向您請教,我目前做到這邊卡關了

    在 $REDMINE 下,執行 bundle package,就可以在 $REDMINE\vender\cache\ 裡面找到目前配置下所需的所有 gems,但有趣的是,bundler 自己不在裡面.....XD 要找到 bundler 的 gem 的話,可以去 C:\Ruby193\lib\ruby\gems\1.9.1\cache\ 裡面撈...找到 bundle 與 bundler 這兩個 gem,直接複製即可。(別問我,我不曉得這兩個分別是幹嘛的....)

    我載了好幾版來測試,但都沒有出現bundler這隻檔,目前要在離線進行,請問您有遇過這個狀況嗎?

    回覆刪除
    回覆
    1. 我沒碰過耶。這段所說的動作,要在「可以連上 internet 的那台機器」做唷!照理來說你在能上線的那台電腦安裝了 rails 後,應該就會安裝 bundler 才對,你能夠執行 bundle 這支程式嗎?如果沒有的話,那需要先安裝 bundler 才行。

      刪除
    2. 遇到相同問題。。bundler沒有安裝在裡面也無法安裝。。

      輸入gem install bundler 時 出現錯誤訊息。。
      ERROR: Could not find a valid gem 'bundler' (>= 0), here is why:
      Unable to download data from https://rubygems.org/ - no such name (htt
      ps://rubygems.org/latest_specs.4.8.gz)
      但是用瀏覽器進入那個網址卻可以下載檔案。。解壓縮之後是unix檔案不知道要怎麼用orz

      刪除
    3. 呃.....因為我跟 ruby 不太熟.......所以可能幫不上忙 orz 不過這屬於 gem 的問題,而且也不是 bundler 找不到,那個 latest_specs.4.8.gz 應該是類似 gem 清單之類的@@ 可能從這方向著手...

      刪除