練功房推薦書單

  • 猛虎出柙雙劍合璧版--最新 OCA / OCP Java SE 7 Programmer 專業認證 (電子書)
  • 流浪教師存零股存到3000萬(全新增修版)(書+DVD)
  • 開始在關西自助旅行(京都‧大阪‧神戶‧奈良)(全新增訂版)
  • 不敗教主的300張股票存股術

在CentOS 4.5 Linux上安裝Trac 0.10.4 RSS feed
討論區首頁 » 軟體開發專案管理 Software Development Project Management
發表人 內容
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
Trac是一個用Python程式語言開發出來的軟體開發專案管理程式,可與Subversion版本控制系統整合,也支援PostgreSQL資料庫,可讓開發團隊透過網頁介面來管理專案的Wiki文件及問題追蹤。Trac不但免費且開放原始碼(符合BSD授權),安裝在同樣也是免費的Linux作業系統CentOS上是個非常棒的組合。

通常同一個開發團隊會參與多個專案,在安裝時我們需要考慮支援多專案的管理。對於多專案的管理,我們可以這樣設計:
smilie每個Project一個專屬的Subverstion Repository,但是放在一個共同的根目錄下:
/path/to/repos/project1
/path/to/repos/project2
Repository存取方式:
http://my.domain.name/svn/project1
http://my.domain.name/svn/project2

smilie每個Project一個專屬的Trac Project Environment,但是放在一個共同的根目錄下:
/path/to/projects/project1
/path/to/projects/project2
Trac Project存取方式:
http://my.domain.name/projects/project1
http://my.domain.name/projects/project2

瞭解了設計的理念後,要安裝就很容易了,請將以下的程式碼複製後貼到一個trac_setup.sh檔案內,並修改相關的參數,然後將trac_setup.sh變更為可執行,然後執行即可(假設已安裝好gcc和PostgreSQL)。
#!/bin/bash 

# Name: trac_setup.sh
# Author: Andowson Chang (andowson [at] gmail [dot] com)
# Version: 0.9
# Since: 2007-01-10
# Last Modified: 2007-08-31

# 請自行依據實際環境修改這邊的參數
SETUP_DIR=/var/trac/setup
REPOSITORY=/var/trac/repos
PROJECTS=/var/trac/projects
TRAC_ADMIN_USER=admin
TRAC_ADMIN_PASSWD=admin
APACHE_USER=apache
APACHE_GROUP=tomcat

# 安裝 Python, ClearSilver, pyPgSQL, Subversion, SWIG, mod_python
# 因為要裝的東西不少,建議是建立一個目錄來存放比較好管理
mkdir -p ${SETUP_DIR}
cd ${SETUP_DIR}

# 安裝Python
yum -y install python python-devel mod_python
PYTHON_VERSION=`python -V 2>&1 | awk '{print $2}' | cut -d "." -f1-2`

# 安裝ClearSilver
yum -y install zlib-devel
wget http://www.clearsilver.net/downloads/clearsilver-0.10.5.tar.gz
tar zxf clearsilver-0.10.5.tar.gz
cd clearsilver-0.10.5
./configure --with-python=/usr/bin/python --prefix=/usr/local --disable-ruby --disable-java --disable-apache --disable-csharp --disable-perl
make
make install
cd ..

# 安裝pyPgSQL
yum -y install postgresql-devel
wget http://nchc.dl.sourceforge.net/sourceforge/pypgsql/pyPgSQL-2.5.1.tar.gz
tar zxvf pyPgSQL-2.5.1.tar.gz
cd pyPgSQL-2.5.1
python setup.py install
cd ..

# 安裝Subversion
yum -y install subversion mod_dav_svn swig

# 安裝setuptools
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py

# 安裝docutils
wget http://docutils.sourceforge.net/docutils-snapshot.tgz
tar zxf docutils-snapshot.tgz
cd docutils
python setup.py install
cd tools
./rst2html.py ../FAQ.txt ../FAQ.html
cd ../..

# 安裝SilverCity
yum -y install gcc-c++ libstdc++-devel
wget http://nchc.dl.sourceforge.net/sourceforge/silvercity/SilverCity-0.9.7.tar.gz
tar zxf SilverCity-0.9.7.tar.gz
cd SilverCity-0.9.7
python setup.py install
cd ..

# 安裝enscript
yum -y install enscript

# 安裝 mxDateTime
wget http://downloads.egenix.com/python/egenix-mx-base-3.0.0.linux-i686-py${PYTHON_VERSION}_ucs4.prebuilt.zip
unzip egenix-mx-base-3.0.0.linux-i686-py${PYTHON_VERSION}_ucs4.prebuilt.zip
cd egenix-mx-base-3.0.0.linux-i686-py${PYTHON_VERSION}_ucs4.prebuilt
python setup.py build --skip install
cd ..

# 安裝Trac
wget http://ftp.edgewall.com/pub/trac/trac-0.10.4.tar.gz
tar zxf trac-0.10.4.tar.gz
cd trac-0.10.4
python setup.py install
cd ..

# 安裝WebAdmin管理介面
easy_install http://svn.edgewall.com/repos/trac/sandbox/webadmin/

# 安裝AccountManager
easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.10/

# 安裝IniAdmin
easy_install http://trac-hacks.org/svn/iniadminplugin/0.11/

# 安裝Gantt圖
wget http://willbarton.com/files/TracGantt-0.3.2a-py${PYTHON_VERSION}.egg
easy_install TracGantt-0.3.2a-py${PYTHON_VERSION}.egg

# 使用mod_python和Apache整合
echo "<Location /projects>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir ${PROJECTS}
PythonOption TracUriRoot /projects
SetEnv PYTHON_EGG_CACHE /tmp
</Location>

<LocationMatch \"/projects/[^/]+/login\">
AuthType Basic
AuthName \"Trac\"
AuthUserFile ${PROJECTS}/.htpasswd
Require valid-user
</LocationMatch>" >> /etc/httpd/conf.d/python.conf

# 使用mod_dav_svn和Apache整合
echo "<Location /svn>
DAV svn
SVNParentPath ${REPOSITORY}
AuthType Basic
AuthName \"Subversion Repository\"
AuthUserFile ${PROJECTS}/.htpasswd
AuthzSVNAccessFile ${PROJECTS}/svnaccess
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>" >> /etc/httpd/conf.d/subversion.conf

# 新建Subversion Repository Root Directory
mkdir -p ${REPOSITORY}
chown -R ${APACHE_USER}.${APACHE_GROUP} ${REPOSITORY}

# 新建Project Root Directory
mkdir -p ${PROJECTS}
chown -R ${APACHE_USER}.${APACHE_GROUP} ${PROJECTS}

# 建立共用的管理者帳號
htpasswd -bc ${PROJECTS}/.htpasswd ${TRAC_ADMIN_USER} ${TRAC_ADMIN_PASSWD}
chown ${APACHE_USER}.${APACHE_GROUP} ${PROJECTS}/.htpasswd

# 設定Repositoty存取權限
echo "[/]
* = r
${TRAC_ADMIN_USER} = rw" > ${PROJECTS}/svnaccess


至此便安裝好了Trac,由於改了Apache的設定檔,故我們需要重新啟動Apache
service httpd restart


接下來要為每個專案建立一個Trac環境,Trac只需要安裝一套就可以支援多個專案,但是每個專案都要建立一個自己的Trac資料庫,例如我們的專案叫做project1,我們就新建一個叫trac_project1的資料庫(如果還有project2,資料庫名稱便取叫trac_project2)。請將下面的程式碼存成/var/lib/pgsql/newtracdb.sh並設為可執行:
psql -c "create user trac_$1 createdb;" template1

psql -c "create database trac_$1 with encoding 'unicode';" -U trac_$1 template1
psql -c "alter user trac_$1 nocreatedb;" template1
psql -c "alter user trac_$1 with encrypted password 'trac_$1';" template1


使用方式:
su - postgres

./newtracdb.sh project1


建立好了資料庫,我們可以將下面的指令存檔為newproject.sh並設為可執行:
# Name: newproject.sh

# Author: Andowson Chang (andowson [at] gmail [dot] com)
# Version: 0.9
# Last Modified: 2007-08-31

# 請自行依據實際環境修改這邊的參數
REPOSITORY=/var/trac/repos/$1
PROJECTS=/var/trac/projects
PROJECT=${PROJECTS}/$1
PROJECT_NAME="$2"
PROJECT_MANAGER=$3
DBNAME=trac_$1
DBUSER=trac_$1
DBPASSWD=trac_$1
TRAC_ADMIN_USER=admin
APACHE_USER=apache
APACHE_GROUP=tomcat

# 新建Subversion Repository
svnadmin create --fs-type fsfs ${REPOSITORY}
mkdir /tmp/$1
mkdir /tmp/$1/branches
mkdir /tmp/$1/tags
mkdir /tmp/$1/trunk
svn import /tmp/$1 file:///${REPOSITORY} --message 'Initial repository layout'
rm -rf /tmp/$1
chown -R ${APACHE_USER}.${APACHE_GROUP} ${REPOSITORY}

echo "
[$1:/]
* = r
${TRAC_ADMIN_USER} = rw
${PROJECT_MANAGER} = rw" >> ${PROJECTS}/svnaccess

# 新建一個Trac環境
trac-admin ${PROJECT} initenv "${PROJECT_NAME}" postgres://${DBUSER}:${DBPASSWD}@localhost/${DBNAME} svn ${REPOSITORY} /usr/share/trac/templates
chown -R ${APACHE_USER}.${APACHE_GROUP} ${PROJECTS}

# 設定管理者帳號
trac-admin ${PROJECT} permission add ${TRAC_ADMIN_USER} TRAC_ADMIN
trac-admin ${PROJECT} permission add ${PROJECT_MANAGER} TRAC_ADMIN

# 取消匿名使用者的部分寫入權限(以免有人惡意搗蛋)
trac-admin ${PROJECT} permission remove anonymous TICKET_CREATE TICKET_MODIFY WIKI_CREATE WIKI_MODIFY
trac-admin ${PROJECT} permission add authenticated TICKET_CREATE TICKET_MODIFY TICKET_VIEW WIKI_CREATE WIKI_MODIFY

# 啟用 WebAdmin
echo "[components]
webadmin.* = enabled
tracgantt.* = enabled
iniadmin.iniadmin.iniadminplugin = enabled
trac.web.auth.LoginModule = disabled
acct_mgr.* = enabled

[account-manager]
password_format = htpasswd
password_file = ${PROJECTS}/.htpasswd

[ticket-custom]
due_assign = text
due_assign.label = Due to assign
due_assign.value = YYYY/MM/DD

dependencies = text
dependencies.label = Dependencies
dependencies.value =

due_close= text
due_close.label = Due to close
due_close.value = YYYY/MM/DD

include_gantt = checkbox
include_gantt.label = Include in GanttChart
include_gantt.value =

[gantt-charts]
# The format of dates entered by humans in the above ticket fields
date_format = %Y/%m/%d

# Include the ticket summary in the gantt chart display
include_summary = true

# Trim the included summary to the given number of characters
summary_length = 16

# Use the creation date of a ticket as the "due assign" date if no
# assignment date is given
use_creation_date = true

# Show on the gantt chart the date the ticket was opened, to contrast
# with the assignment date.
show_opened = true" >> ${PROJECT}/conf/trac.ini

# 調整一些共同的參數
sed -i -e "s/max_size = 262144/max_size = 10000000/" -e "s/always_notify_owner = false/always_notify_owner = true/" -e "s/always_notify_reporter = false/always_notify_reporter = true/" -e "s/smtp_enabled = false/smtp_enabled = true/" -e "s/default_charset = iso-8859-15/default_charset = UTF-8/" ${PROJECT}/conf/trac.ini

trac-admin ${PROJECT} permission add anonymous GANTT_VIEW

執行方式:
./newproject.sh project1 "My Project1" user1


接著編輯一個/var/lib/pgsql/session_attribute.sql檔案,將小組成員的姓名和email填寫好:
insert into session_attribute(sid, authenticated, name, value) values('admin', 1, 'email', 'admin@example.org');

insert into session_attribute(sid, authenticated, name, value) values('admin', 1, 'name', 'Andowson Chang');
insert into session_attribute(sid, authenticated, name, value) values('user1', 1, 'email', 'user1@example.org');
insert into session_attribute(sid, authenticated, name, value) values('user1', 1, 'name', 'John Doe');
insert into session_attribute(sid, authenticated, name, value) values('user2', 1, 'email', 'user2@example.org');
insert into session_attribute(sid, authenticated, name, value) values('user2', 1, 'name', 'Mary Doe');


將小組成員的資料加到這個新開好的專案
su - postgres

psql trac_project1 trac_project1 -f session_attribute.sql


要加入小組成員的寫入權限時,可以請他先透過Trac網頁介面register,然後再把帳號加到svnaccess去; 或者透過htpasswd幫他開好帳號及密碼,然後再把帳號加到svnaccess去。

htpasswd -b /var/trac/projects/.htpasswd user1 user1pwd

htpasswd -b /var/trac/projects/.htpasswd user2 user2pwd


vi /var/trac/projects/svnaccess

[/]
* = r
admin = rw

[project1:/]
* = r
admin = rw
user1 = rw
user2 = rw

參考資料:
Version Control with Subversion中譯版
Debian Linux: Apache2(Virtual Host) + Subversion(SVN) + Trac 快速建置
 檔案名稱 session_attribute.sql [Disk] 下載
 描述 開發團隊成員姓名及email
 檔案大小 665 bytes
 下載次數:  23 次

 檔案名稱 trac_setup.sh [Disk] 下載
 描述 Trac自動安裝程式
 檔案大小 4 Kbytes
 下載次數:  21 次

 檔案名稱 newtracdb.sh [Disk] 下載
 描述 新增PostgreSQL資料庫程式
 檔案大小 259 bytes
 下載次數:  21 次

 檔案名稱 newproject.sh [Disk] 下載
 描述 新增Trac專案程式
 檔案大小 3 Kbytes
 下載次數:  27 次


分享經驗 累積智慧
[WWW]
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
Trac的中文化(尚未完整)

cd /var/trac/setup

wget http://taipedia.selfip.info/templates.zh_TW.UTF-8.tar.gz
tar zxvf templates.zh_TW.UTF-8.tar.gz
mv /usr/share/trac/templates /usr/share/trac/templates.orig
mv /var/trac/setup/templates.zh_TW.UTF-8 /usr/share/trac/templates


參考資料:
http://b6s.blogspot.com/2007/01/trac.html

分享經驗 累積智慧
[WWW]
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
升級到新版的Trac 0.10.4->0.11,一定要記得做資料庫備份!
cd /var/trac/setup

easy_install Genshi
easy_install psycopg2
easy_install docutils
easy_install Pygments
easy_install pytz
easy_install Trac
su - postgres
psql -l
pg_dump trac_project1 > /tmp/trac_project1.bak
exit
trac-admin /var/trac/projects/project1 upgrade --no-backup
trac-admin /var/trac/projects/project1 wiki upgrade


升級後刪除舊的版本(for 0.11)
cd /usr/lib/python2.3/site-packages
rm -rf trac
easy_install -m TracWebAdmin
rm -rf TracWebAdmin*

解決升級後不顯示Login的問題
vi /var/trac/projects/project1/conf/trac.ini
...
[components]
trac.web.auth.loginmodule = enabled
webadmin.* = enabled
...

分享經驗 累積智慧
[WWW]
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
最近遇到這個問題
Traceback (most recent call last):
File "/usr/lib/python2.3/site-packages/trac/web/main.py", line 406, in dispatch_request
dispatcher.dispatch(req)
File "/usr/lib/python2.3/site-packages/trac/web/main.py", line 206, in dispatch
req.hdf = HDFWrapper(loadpaths=chrome.get_all_templates_dirs())
File "/usr/lib/python2.3/site-packages/trac/web/chrome.py", line 263, in get_all_templates_dirs
dirs += provider.get_templates_dirs()
File "build/bdist.linux-i686/egg/acct_mgr/web_ui.py", line 252, in get_templates_dirs
File "/usr/lib/python2.3/site-packages/setuptools-0.6c3-py2.3.egg/pkg_resources.py", line 799, in resource_filename
return get_provider(package_or_requirement).get_resource_filename(
File "/usr/lib/python2.3/site-packages/setuptools-0.6c3-py2.3.egg/pkg_resources.py", line 1229, in get_resource_filename
return self._extract_resource(manager, zip_path)
File "/usr/lib/python2.3/site-packages/setuptools-0.6c3-py2.3.egg/pkg_resources.py", line 1235, in _extract_resource
last = self._extract_resource(
File "/usr/lib/python2.3/site-packages/setuptools-0.6c3-py2.3.egg/pkg_resources.py", line 1249, in _extract_resource
real_path = manager.get_cache_path(
File "/usr/lib/python2.3/site-packages/setuptools-0.6c3-py2.3.egg/pkg_resources.py", line 880, in get_cache_path
self.extraction_error()
File "/usr/lib/python2.3/site-packages/setuptools-0.6c3-py2.3.egg/pkg_resources.py", line 846, in extraction_error
raise err
ExtractionError: Can't extract file(s) to egg cache

The following error occurred while trying to extract file(s) to the Python egg
cache:

[Errno 13] Permission denied: '/.python-eggs'

The Python egg cache directory is currently set to:

/.python-eggs

Perhaps your account does not have write access to this directory? You can
change the cache directory by setting the PYTHON_EGG_CACHE environment
variable to point to an accessible directory.


參考了下面這個網址, 主要是需要修改PYTHON_EGG_CACHE的設定
http://projects.edgewall.com/trac/wiki/TracPlugins#SettingupthePluginCache

修改/etc/httpd/conf.d/python.conf:

<Location /projects>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/trac/projects
PythonOption TracUriRoot /projects
SetEnv PYTHON_EGG_CACHE /tmp
</Location>


重新啟動Apache即可

分享經驗 累積智慧
[WWW]
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
如果安裝Trac+Subversion的Apache主機本身也跟Tomcat整合起來的話, 要再修改一下mod_jk的設定, 例如/etc/httpd/conf.d/mod_jk.conf:

JkUnMount /projects/* loadbalancer
JkMount /*.jsp loadbalancer

# Deny direct access to WEB-INF
<LocationMatch ".*WEB-INF.*">
Deny from all
</LocationMatch>

# Allow direct access to WEB-INF directory under /projects and /svn
<LocationMatch "[/projects/ /svn/].*/WEB-INF.*">
Allow from all
</LocationMatch>


這樣子就可看到JSP和WEB-INF底下檔案的原始碼了.

分享經驗 累積智慧
[WWW]
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
修正
Report execution failed: 錯誤: 欄位"modified"不存在

用具有TRAC_ADMIN權限的帳號如admin登入,點選View Tickets->點選{6} All Tickets By Milestone (Including closed)
點選Edit Report按鈕,替換為下方的程式碼:
SELECT p.value AS __color__,

t.milestone AS __group__,
(CASE status
WHEN 'closed' THEN 'color: #777; background: #ddd; border-color: #ccc;'
ELSE
(CASE owner WHEN $USER THEN 'font-weight: bold' END)
END) AS __style__,
id AS ticket, summary, component, status,
resolution,version, t.type AS type, priority, owner,
changetime AS modified,
time AS _time,reporter AS _reporter
FROM ticket t
LEFT JOIN enum p ON p.name = t.priority AND p.type = 'priority'
ORDER BY (milestone IS NULL), milestone DESC, (status = 'closed'),
(CASE status WHEN 'closed' THEN changetime ELSE (-1)* CAST(p.value AS numeric) END) DESC

分享經驗 累積智慧
[WWW]
wtom

九級學員

註冊時間: 2008/7/19
文章: 12
離線
客戶端能改密碼嗎?
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
在0.10.4是可以的,登入後選擇My Account功能即可修改密碼。
升級到0.11後,webadmin改為內建,之前安裝的TracAccountManager Plugin變成失效,因此註冊register和修改密碼的My Account功能都消失了。

分享經驗 累積智慧
[WWW]
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
降級trac 0.11->0.10.5
cd /var/trac/setup
wget http://ftp.edgewall.com/pub/trac/trac-0.10.5.tar.gz
tar zxvf trac-0.10.5.tar.gz
cd trac-0.10.5
python setup.py install
easy_install http://svn.edgewall.com/repos/trac/sandbox/webadmin/
cd /usr/lib/python2.3/site-packages
rm -rf Trac-0.11-py2.3.egg/
vi easy-install.pth
刪除Trac-0.11
service httpd stop
su - postgres
pg_dump trac_project1 > /tmp/trac_project1-0.11.bak
dropdb trac_project1
dropuser trac_project1
./newtracdb.sh project1
psql trac_project1 < /tmp/trac_project1.bak
exit
trac-admin /var/trac/projects/project1 upgrade --no-backup
trac-admin /var/trac/projects/project1 wiki upgrade
service httpd start

分享經驗 累積智慧
[WWW]
wtom

九級學員

註冊時間: 2008/7/19
文章: 12
離線
请问代码用什么提交比较好?在trac上没有找到
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
程式碼提交可以使用Subversion Client來進行,例如TortoiseSVN或安裝開發工具的plug-in,例Subclipse for Eclipse,可以參考這篇文章
http://www.andowson.com/posts/list/57.page

分享經驗 累積智慧
[WWW]
wtom

九級學員

註冊時間: 2008/7/19
文章: 12
離線
谢谢你的回复,我在执行完trac_setup.sh中的过程(大部分采用RHEL5中的RPM包安装)以及执行 1. ./newproject.sh project1 "My Project1" user1 没有出问题,之后访问http://localhost/svn/project1出现:Forbidden
You don't have permission to access /svn/project1 on this server.
是什么问题?
执行http://localhost/projects/project1时出现:
Environment not found
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
請問您的svnaccess(依您實際安裝位置而定,本文是位於/var/trac/projects/svnaccess)內的設定為何?
有無加入* = r的設定在[/]及[project1:/]下?
另外您可以執行一下psql -l來確認一下trac_project1這個資料庫存在嗎?如果存在您可以將它刪除(dropdb trac_project1;dropuser trac_project1)再重新建立一次(newtracdb.sh),然後再執行一次newproject.sh,完成後再重新啟動一次Apache(service httpd restart)。

分享經驗 累積智慧
[WWW]
wtom

九級學員

註冊時間: 2008/7/19
文章: 12
離線
按照您的说法我试了一下,问题依旧。您回复:

“請問您的svnaccess(依您實際安裝位置而定,本文是位於/var/trac/projects/svnaccess)內的設定為何?
有無加入* = r的設定在[/]及[project1:/]下?
另外您可以執行一下psql -l來確認一下trac_project1這個資料庫存在嗎?如果存在您可以將它刪除(dropdb trac_project1;dropuser trac_project1)再重新建立一次(newtracdb.sh),然後再執行一次newproject.sh,完成後再重新啟動一次Apache(service httpd restart)。”

我实际的位置“/home/trac/projects/svnaccess”,经检查svnaccess文件内容无错误,其内容如下:
[/]
admin =rw

[project1:/]
* = r
admin = rw
user1 = rw
user2 =rw

使用psql –l后发现数据库已经存在了,按上述要求重建在执行上述删除和创建过程后,依然如故。

下面我介绍一下我的安装过程:
因为我安装的是RHEL5.0,没有REDHAT的安装好因此无法使用yum 命令从redhat 升级,因此我考虑使用安装光盘内的rpm 安装文件。
1、 在安装RRHEL5.0 时选择安装SUBVERSION、PostgreSQL、python-2.4.3
2、 从光盘中拷贝出mod_python-3.2.8-3.1.i386.rpm、libxml2-python-2.6.26-2.1.2.i386.rpm、mod_python-3.2.8-3.1.i386.rpm、swig-1.3.29-2.el5.i386.rpm、python-devel-2.4.3-19.el5.i386.rpm并用rpm –ivh 指令安装。
3、 安装后检查系统内的软件安装情况:

httpd Version : 2.2.3 Release : 6.el5
python Version : 2.4.3 Release : 19.el5
python-devel Version : 2.4.3 Release : 19.el5
mod_python Version : 3.2.8 Release : 3.1
subversion Version : 1.4.2 Release : 2.el5
mod_dav_svn Version : 1.4.2 Release : 2.el5
swig Version : 1.3.29 Release :2.el5

4、 从网络上下载的软件包如下:

clearsilver-0.10.5.tar.gz
docutils-snapshot.tgz
egenix-mx-base-3.0.0.linux-i686-py2.4_ucs4.prebuilt.zip
egenix-mx-base-3.1.0.linux-i686-py2.4_ucs4.prebuilt.zip
enscript-1.6.4.tar.gz
ez_setup.py
pyPgSQL-2.5.1.tar.gz
SilverCity-0.9.7.tar.gz
TracGantt-0.3.2a-py2.4.egg
Trac0.10.4zh3

5、 按照您文章中的顺序进行安装,区别在于第2点中的安装包是用rpm安装,不是您文中使用的yum 指令

6、 安装完trac_setup.sh中的软件后,再执行./newtracdb.sh project1(有点小问题,我在postgres下一条一条执行的,也创建了数据库和用户), 再执行./newproject.sh project1 "My Project1" user1 并得到trac成功信息

至此,我觉得可以用http://localhost/svn/project1来查看源码,而结果就是上面的情况,用http://localhost/ projects /project1 来查看TRAC时出现Environment not found,
andowson

七段學員
[Avatar]

註冊時間: 2007/1/2
文章: 711
來自: 台北
離線
1.請加上* = r到/home/trac/projects/svnaccess的[/]下,如下:
[/]
* = r
admin = rw

[project1:/]
* = r
admin = rw
user1 = rw
user2 =rw

2.請問您有沒有執行trac_setup.sh的98-142行部分,可否檢視一下這幾個設定檔:
/etc/httpd/conf.d/python.conf
/etc/httpd/conf.d/subversion.conf

smilie 檢查/etc/httpd/conf.d/python.conf的檔尾有沒有下列設定:

<Location /projects>
SetHandler mod_python
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /home/trac/projects
PythonOption TracUriRoot /projects
SetEnv PYTHON_EGG_CACHE /tmp
</Location>

<LocationMatch "/projects/[^/]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /home/trac/projects/.htpasswd
Require valid-user
</LocationMatch>


smilie 檢查/etc/httpd/conf.d/subversion.conf的檔尾有沒有下列設定:

<Location /svn>
DAV svn
SVNParentPath /home/trac/repos
<LimitExcept GET PROPFIND OPTIONS REPORT>
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/trac/projects/.htpasswd
AuthzSVNAccessFile /home/trac/projects/svnaccess
Require valid-user
</LimitExcept>
</Location>

分享經驗 累積智慧
[WWW]
 
討論區首頁 » 軟體開發專案管理 Software Development Project Management
前往:   
行動版