分类: 系统运维
2010-12-06 09:21:35
此笔记是2010/12/06开始写,并不断更新中。
可以编辑的版本在这里
Google DOCS
trac+subversion笔记。 有兴趣可以看看,每人也有编辑的权限.
如果转载,请随意,但是要附上作者名称(略略)及全文(含参考文档!)
TODO:引索
1 快速搭建一个支持多国语言的Trac. (轻量级) 无须Apache,无须mysql.单仓库.
注:2010/12/08更新 https的支持
2 快速搭建一个Subversion(SVN).(轻量级) 单仓库.
2010/12/20(或许提前) 更新 svn+ssh
3 让他们融合吧(Trac+Subversion) ( 1 + 1 > 2 )
4 让Trac和Subversion的权限整合(Trac browser sourcecode和svn的帐号权限匹配)
5 补来补去.我擦擦擦.
6 出问题了? 那么Q来A去吧.
7 中型开发团队的加强版本。 (MYSQL,Apache的SSL,多仓库关联....KTRAC一些功能)
//1-4 是一个营的编制,你就当这个是7是一个加强营. 书写时间:未知
1
快速搭建一个支持多国语言的Trac. (轻量级) 无须Apache,无须mysql
写在前面:其实trac很好搭建,关键是权限的分配,插件的使用.
还要写在前面:
自己规划好自己的目录,我是回忆的方式写的,所以目录我就帮你们规划了,自己折腾吧。
Ubuntu 下要先
apt-get install bison gettext python-setuptools python-genshi
写的简单,如果不是必须,不会列出什么cd ,mkdir等浪费感情的命令。
wget
解包后.
wget ez_setup.py
make stats-pot update check compile stats locale='zh_CN' //目的是建立支持简体中文的要trac,如果你想支持更多的语言,自己make help.
多看参考文档,我这里写的很简单,并且是事后写的,你如果只做这一步,出错概率高!
python ./setup.py install 请自己去看看INSTALL 内置文档.
trac-admin /home/trac/pro initenv // 建立配置
sqlite的时候回车。 svn目录可以先不填写,以后可以自己修改. 由于这里只说轻量级的,所以不写mysql的方式.以后根据情况再做补充.虽然我一开始用mysql的方式,但是我对mysql不熟悉,也认为中小型团队开发用不着mysql,用了20天放弃了mysql. K.I.S.S. :)
如果搞不懂,删除目录重新来过.
pro/conf中
htpasswd -c trac_passwd YourID //建立用户名和密码
htpasswd help自己看.
建议先 cd /home/trac;tracd --port 8000 pro --basic-auth="*,/home/trac/pro/conf/trac_passwd,*" 这样有什么信息会终端显示.
cd /home/trac; nohup tracd --port 8000 pro --basic-auth="*,/home/trac/pro/conf/trac_passwd,*" & //做了这么多工作,就是等这条命令.
tracd help 自己看下.
注释: pro是你项目的名称.貌似可以不填写。我不想结束进程了,你自己试验吧.
好吧,chrome或者firefox自己瞧瞧吧.
纳尼?太简单了? 当然,还没怎么配置呢。
别着急,放轻松,douban.fm开启私人电台,先冲杯咖啡吧,哦,我说我自己,你自己随意.
先来点安全吧.
trac-admin /home/trac/pro permission remove anonymousBROWSER_VIEW CHANGESET_VIEW FILE_VIEW LOG_VIEW MILESTONE_VIEW REPORT_SQL_VIEW REPORT_VIEW ROADMAP_VIEW SEARCH_VIEW TICKET_VIEW WIKI_VIEW TIMELINE_VIEW
//干掉没有帐号的一切权限.
trac-admin /home/trac/propermission add authenticated BROWSER_VIEW CHANGESET_VIEW FILE_VIEW LOG_VIEW MILESTONE_VIEW REPORT_SQL_VIEW REPORT_VIEW ROADMAP_VIEW SEARCH_VIEW TICKET_VIEW WIKI_VIEW TIMELINE_VIEW
//给有帐号的人一些权限. 我一般给自己TRAC_ADMIN,这样显示我与众不同.好比QQ是VIP99,而他人都是VIP1-6. yahoo~~ 虽然我很少用QQ了,可是gtalk没等级显示啊,我说gtalk是VIP99你们不信阿! :)
权限配置目前没有给出例子,请耐心等待. 问时间的话我没发给时间表,只能说耐心.
配置文件如下:
![]() |
|
给tracd加上一层青铜装甲. https
a
vi /etc/stunnel/stunnel-tracd.conf //不会用cu的代码编辑模式,凑合看吧.
cert = /etc/stunnel/stunnel.pem
#no pid
pid =
setuid = nobody
setgid = nobody
[tracd]
accept = 8001 # https要运行的 8001 端口
connect = localhost:8000 # 自己tracd的 8000 端口
b
vi /etc/services:
tracd 8000/tcp # trac web server注释:有冲突就解决.
c
openssl req -new -x509 -days 365 -nodes -config stunnel-tracd.conf -out stunnel.pem -keyout stunnel.pem
肯定要报错,但是不影响stunnel.pem建立. 花时间找问题,然后牵扯到一堆,索性不找了.大致是一些country啊,mail那些引起的. 如果你的trac真的很重要,请不要忽视这一步!根基问题.而我的trac就是防止一些小偷的行为,要么开头怎么说是 青铜的装甲,而不是白银或者黄金呢? :)
chmod 600 stunnel.pem
stunnel /etc/stunnel/stunnel-tracd.conf
修改trac.ini
base_url = //请结合前面来看.
use_base_url_for_redirect = true
自己访问 https看看. :)
效果请看
2
快速搭建一个Subversion(SVN).(轻量级)
svnadmin create --fs-type fsfs /home/trac/svn
进入svn后
vi conf/passwd
明文密码自己写吧.
tip: 尽量和自己Trac的用户名称一样.
svnserve -d -r /home/trac/svn
然后你svn ls svn://localhost 看看??
我擦,这个这么简单? 不是,是因为我没写如何安装Subversion,我直接用的包裹.
3
让他们融合吧(Trac+Subversion)
看这个我上传的文件. trac.ini.tar
在[trac]把 svn目录填写进去即可。
当然,我的trac.ini有些其他插件配置.你可以做个借鉴.
4
让Trac和Subversion的权限整合(Trac browser sourcecode和svn的帐号权限匹配)
先结束 svnserve,tracd进程。
给例子.
a svn的conf
#cat authz
[groups]
core_dev = test,test2
WEB_UI = web_test
[/]
@core_dev = rw
[/XXX/trunk/WEB_UI] //你browser sourcecode的时候,根目录是什么写什么
@WEB_UI = rw
# cat passwd
[users]
test = test
test2 = test2
# sally = sallyssecret
b Trac 的conf文件
里面的用户名要和 svn的 匹配.
trac.ini
[trac]
permission_policies = AuthzSourcePolicy, DefaultPermissionPolicy, LegacyAttachmentPolicy //要添加 AuthzSourcePolicy
参考自己的 管理插件看
AuthzSourcePolicy — Permission policy for `source:` and `changeset:` resources using a Subversion authz file.
Example: Match the page
[wiki:*] [wiki:WikiStart*] [wiki:WikiStart@*] [wiki:WikiStart]
Example: Match the attachmentwiki:WikiStart@117/attachment/FOO.JPG@* on
[wiki:*] [wiki:WikiStart*] [wiki:WikiStart@*] [wiki:WikiStart@*/attachment/*] [wiki:WikiStart@117/attachment/FOO.JPG]
5 补来补去
1 我是centOS 5.5,默认情况下,tracd initenv 在设置db的时候,
sqlite出错,无法成功建立.
要自己安装:
下载后 三部曲 就正常了.
2
此插件提供个 父ticket的概念。更便于 ticket之间的追踪。
使用很简单,找说明安装上. trac-admin pro upgrade 即可.
参考文档:
// 多国语言支持
// 让tracd 支持httpS
// 给我信息让我知道sqlite问题