安裝與使用 Trac 來管理項目

1 概要

以 Windows 平臺爲例,講述一下有關 Trac 的基本配置與使用,同時分享一下有關 Trac 的項目管理經驗。html

2 安裝 Trac 前的準備工做

 

2.1 準備工做

  1. 安裝 Python 2.7;
  2. 安裝 setuptools-0.6c11.win32-py2.7
  3. 安裝 Genshi,能夠用下面的命令用 Setupfile 來安裝。
easy_install Genshi
安裝時,注意版本的問題。如setuptools-0.6c11.win32-py2.7就是用於windows 32位,python2.7的。

3 安裝 Trac

用 easy_install 來安裝 Trac,詳細的說明能夠看官方文檔,或者在這一步,直接下載 Windows 的 Trac 安裝文件來進行安裝,直接下載來安裝很方便,不過注意版本。python

4 配置Trac環境

完成上述的安裝後,就能夠建立一個 TracEnvironment,它是 Trac 存儲信息的地方,如 wiki pages, tickets, reports, settings 等。shell

4.1 經過 trac-admin 建立一個 Trac Environment

個人作法是先在d盤新建一個trac目錄,而後執行:數據庫

$ trac-admin d:/trac/mytest initenv    

配置環境以前,注意此外trac-admin能用是由於加到了PATH環境變量裏了。python裏的script文件裏有trac-admin.exe文件。將script文件目錄加到PATH變量裏。windows

而後根據提示輸入項目的名字(myproject),數據庫鏈接字符串(默認),你的源代碼資源庫路徑,根據相應的提示,輸入相關信息便可。安全

若是提示以下錯誤:服務器

C:\Python27\Scripts>tracd -p 8080 e:/trac/MyTest
Traceback (most recent call last):
  File "C:\Python27\Scripts\tracd-script.py", line 5, in <module>
    from pkg_resources import load_entry_point
  File "C:\Python27\lib\site-packages\pkg_resources.py", line 2603, in <module>
    working_set.require(__requires__)
  File "C:\Python27\lib\site-packages\pkg_resources.py", line 666, in require
    needed = self.resolve(parse_requirements(requirements))
  File "C:\Python27\lib\site-packages\pkg_resources.py", line 565, in resolve
    raise DistributionNotFound(req)  # XXX put more info here
pkg_resources.DistributionNotFound: Genshi>=0.6

則代表沒有安裝 Genshi。python2.7

4.2 運行成功後,便可以開啓 Trac 服務

能夠經過 tracd 命令來開啓 Trac 服務,命令以下:ide

tracd --port 8000 E:\Trac\MyTest

啓動成功後,便可經過網址:工具

http://localhost:8000/MyTest

來訪問相關的 Trac 服務,這時即訪問 MyTest 這個工程。

其它機器也能夠經過訪問這臺機器的 IP 加端口來訪問這個服務。最基本、最簡單的使用,能夠不用 Apache 來搭建 Web 服務器。

4.3 添加用戶(用戶管理和身份驗證裏有詳細說明

剛安裝好的 Trac,並無提供一個用戶註冊面板,也沒有設置管理員權限,這個時候,咱們須要本身來添加用戶。

這一點常常讓我這種習慣了用其它管理系統的人摸不着頭腦,系統怎麼沒有讓我設置相關的管理員用戶名和密碼呢?

最簡單的方法是這樣的:

直接用 Generating Passwords Without Apache 裏提到的方法:

$ python trac-digest.py -u username -p password >> c:\digest.txt
$ tracd --port 8000 --auth=proj_name,c:\digest.txt,trac c:\path\to\proj_name

直接就能夠把 username 添加到某個工程裏,並能夠登錄了。

4.4 Trac 管理員密碼的設置

單純把某個用戶添加到了工程裏,並不能讓這個用戶有管理工程的權限,因此,須要單獨分配權限給這個用戶:

好比說,我要分本給 admn 這個用戶管理員權限,能夠用下面的語句:

$ trac-admin /path/to/projenv permission add admin TRAC_ADMIN

如今重啓一下 Trac 服務器,你再用 admin 登錄,就能夠看到右邊有一個 Admin 的控制面板了。

最好的辦法,你給不一樣的 projects,添加不一樣的用戶名,爲不一樣的 project,開啓不一樣的端口,這樣就不會相互影響了。

4.5 有了管理員密碼,就能夠進行一些基礎配置

  • 不讓匿名用戶看到任何內容

    出於對工做及公司的安全性考慮,咱們徹底有理由不讓匿名用戶看到 Trac 裏的任何內容。

    只須要在管理面板 Admin ==> General ==> Permissions 裏,把 Subject 爲 anonymous 的相應權限所有去掉便可。

CANNOT INCLUDE FILE ../addon/ads-bar.org

5 更加高級的功能

 

5.1 用 Apache 服務器來提供網頁版服務

用第4種方法開啓的服務,只能在本機使用,若是須要讓一個團隊都能訪問的話,須要開啓一個 Apache 服務器。

http://trac.edgewall.org/wiki/TracInstall#RunningTraconaWebServer

5.2 提供網頁註冊用戶名等功能

  1. 先安裝一個 Trac Account Manager Plugin 工具

    能夠直接用 easy_install 來安裝

  2. 重啓服務器,在 Plugins 裏開啓本功能便可。

    注意必定要像圖中同樣,開啓那個右上角的 1 字符。

realm 的用處是區分這個用戶名屬於哪裏的,如今這樣,很容易地區分出來。和以前 tracd 命令啓動時帶的參數同樣。

還能夠針對不一樣的工程,設定不一樣的密碼文件,這樣能夠有效地隔離不相干人羣。

使用這個還有一個須要注意的,就是,公司內部使用的話,能夠把煩人的 Email Verification 關掉。

5.3 提供郵件發送 ticket 提醒等功能

用 Gmail 的話,可查看這篇日誌,有關如何設置用 Gmail 來發提醒郵件的功能。

5.4 提供用戶名補全等功能

默認狀況下,Trac 須要你在分 Ticket 時,本身填空。在項目人員過多的狀況下,這顯示是不現實的辦法。

還好,可使用 AutocompleteUsersPlugin 這個來自動補全與提示,使用後感受不錯。

5.5 導出爲 Excel 或 Word

能夠導出數據爲 CSV 或 Text 格式:

Trac also exports reports and custom queries to CSV, which will open in Excel directly. Click the "Comma-delimited Text" link near the bottom.

5.6 Trac 的備份

對於 Trac 這種團隊用的東西,備份是很是重要的。成一數據丟了,項目也就完蛋了。

Trac 支持熱備份,能夠很方便地用下面的命令來對某個工程進行備份:

$ trac-admin /path/to/projenv hotcopy /path/to/backupdir

注意,這個只能是對工程一個一個的進行備份,其實就是把 Trac 工程的全部文件都打了一個包。

因此,爲了備份簡單,應該要把密碼文件也放到 projenv 的目錄裏,這樣備份起來,會一塊兒把用戶名和密碼文件打包的。

只要備份徹底,你徹底能夠在別外一臺機器上,在另外一臺機器上配置好 Python 環境,再安裝好 Trac ,再把這些備份的文件,扔到一個運行目錄裏,再用一樣的命令就能夠直接把該 project 跑起來了。

很是便利!

5.7 Trac 換主題

默認的 Trac 主題並不算十分好看,這裏有大把主題能夠換:

http://trac-hacks.org/wiki/theme

5.8 Trac 上搭建一個博客系統

能夠經過這個博客系統及時通知團隊有什麼新的更新內容之類的。

安裝插件:Self-contained Blog plugin

5.9 Trac 做爲服務程序開機啓動

對於 Linux 系統來講,須要添加一個開機啓動程序,仍是很簡單的。可使用 /etc/init.d 目錄下的腳原本完成這個任務。

詳細的腳本能夠參考這個文章:Start Trac on Startup – Init.d Script for tracd

注意修改裏面的 IP、端口以及目錄參數。我這裏好像把IP設置成 127.0.0.1 好像並不能讓別人訪問,因此仍是設成你電腦的正式 IP 比較好。或是有一個技巧,在這裏直接把 IP 設爲 0.0.0.0。

有了這個腳本,你只須要用以下命令重啓 tracd 服務器便可:

$ sudo /etc/init.d/trac start
$ sudo /etc/init.d/trac stop

若是是在 Windows 下,則有三種選擇來讓它開機啓動。我喜歡用 cygwin 的 cygrunsrv.exe 來安裝該服務。例如,若是我 Windows 本地的 Trac 啓動命令是:

tracd --port 8999 --auth=All-in-Trac,E:\water\Basket\Trac\All-in-Trac\conf\password.digest,trac E:\water\Basket\Trac\All-in-Trac

則在 Cygwin 裏可用以下命令來把 tracd 註冊成 Windows 系統服務:

cygrunsrv --install tracd --path /cygdrive/c/Python27/Scripts/tracd.exe --args '--port 8999 --auth=All-in-Trac,E:\water\Basket\Trac\All-in-Trac\conf\password.digest,trac E:\water\Basket\Trac\All-in-Trac'

6 Trac 的缺陷

針對 Trac 0.12 來講的缺陷,

  • 沒有辦法來定製 component 和 sub-component 這樣的層級關係;
  • 各類功能都齊全,但是各類功能都不強大,樣樣都不精;
  • 沒有辦法控制用戶能夠看到哪一個 component 這樣的權限,從而不方便對大型項目進行管理;
  • 好像沒有語言包這種機制,不太好弄。
  • 沒有辦法用郵箱做爲用戶名。
  • 流程定製能力太差,好像沒辦法定製 driver 和 rider 之類的東西。
  • ower 這種東西,沒有辦法用下拉列表的方式來表示。

[fn:author] 臺灣著名計算機技術做家。

相關文章
相關標籤/搜索