Chinaunix首页 | 论坛 | 博客
  • 博客访问: 349494
  • 博文数量: 81
  • 博客积分: 4060
  • 博客等级: 上校
  • 技术积分: 850
  • 用 户 组: 普通用户
  • 注册时间: 2005-12-06 16:03
文章分类
文章存档

2011年(4)

2010年(4)

2009年(17)

2008年(24)

2007年(16)

2006年(15)

2005年(1)

我的朋友

分类: 系统运维

2010-12-06 09:21:35

此笔记是2010/12/06开始写,并不断更新中。

可以编辑的版本在这里

Google DOCS

trac+subversion笔记。 有兴趣可以看看,每人也有编辑的权限.

如果转载,请随意,但是要附上作者名称(略略)及全文(含参考文档!)

TODO:
1 svn+ssh
2 权限问题的解释和个人理解    //权限问题的解释基本在第四节有例子诠释.
3 Trac+Subversion  //完成
4 Q来A去(一个不可能完成的任务)
5 中型开发团队的加强版本.(随着我使用的深入我会给出列表.)
6 邮件通知功能。  //在trac.ini中有例子. for gmail
7 太多太多....


引索

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你们不信阿! :)


权限配置目前没有给出例子,请耐心等待. 问时间的话我没发给时间表,只能说耐心.

配置文件如下:

文件:trac.ini.tar
大小:10KB
下载:下载



给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.


还有一个更精确定义权限的插件.叫 
authz-policy
先看下example.我还没用用这个插件.等需要的时候会替换  AuthzSourcePolicy

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出错,无法成功建立.

要自己安装:

下载后 三部曲 就正常了.

  

此插件提供个 父ticket的概念。更便于 ticket之间的追踪。

使用很简单,找说明安装上. trac-admin pro upgrade 即可.






参考文档:


    // 多国语言支持

   // 让tracd 支持httpS

           // 给我信息让我知道sqlite问题





阅读(3906) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~