SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 15786|回复: 12

[原创] 参考金山的安装程序,在UBUNTU下的apache+trac(中文)安装脚本,直接执行即可!

[复制链接]
发表于 2010-9-16 00:23:03 | 显示全部楼层 |阅读模式
参考金山的安装程序,在UBUNTU下的apache+trac(中文)安装脚本,直接执行即可!# I2 k  A5 p! ^# R" }0 i7 e

2 Q' {- i# h$ J1 X1 \) i' l#!/bin/bash$ R7 N3 H- e0 I$ F# D+ e6 G% j
#***********************************************************************
1 W  ?  h; k+ G/ Y6 S5 q#install.sh V1.00 2010.08.05#
* c! f& A' {8 F! [$ Q, I6 j/ c+ |#***********************************************************************6 P) M0 t0 v1 s- o  [
echo "######################### install starting!  #########################"6 O) B1 d8 I7 H; t; l5 Q0 L* s# a
depends=depends& U$ o7 S& V: k
cldr=cldr
4 Y8 G  ?; h1 x+ obabel=babel
8 B8 P6 x( \8 Z; d$ n( w- L$ A2 q3 q( ?" b* W* u
# install apache2
7 i+ S" {, I1 J, t% |sudo apt-get -y install apache2! w* F% u# ~- w; h6 |9 }% U
# install subversion
7 l. R: H' w: U% c0 Vsudo apt-get -y install subversion libapache2-svn subversion-tools
/ y" j( d, ]2 K5 F+ H& I8 @# install sqlite
9 k, y- f' i. V: R; x2 qsudo apt-get -y  install sqlite+ _5 t* @- M9 I/ `+ W& P- A
# install python% y: i) n( ^7 d/ u6 j, R
sudo apt-get -y install python python-setuptools libapache2-mod-python python-subversion
$ @+ v/ Y1 Q6 M, _% ~+ M4 J0 I9 d# install zip0 }! c" L  ?5 \, q) r- r
sudo apt-get -y install zip3 E8 O( f; b6 `
# install plugin! [/ a- m0 y  }) M' k, @- `* I
sudo easy_install simplejson
& O: F2 F: ^. C; |7 i3 u/ y8 usudo easy_install docutils' V# L$ P  i2 R+ r9 E, W
sudo easy_install epydoc
3 }) u) K$ w+ ]" h& tsudo easy_install Pygments
/ o& k8 g0 l# X' ~& s/ I4 V( Osudo easy_install genshi1 C2 O7 F9 F1 i
sudo easy_install ElementTree
0 D2 {- j" u( a' Asudo easy_install pytz
# O8 B1 G7 L% l  d# {2 {
* `: ~! ?0 Q2 f' N* Y* ?! Dif [ ! -d "$depends" ]; then
7 i1 V* k: Q* [: rmkdir $depends
  R. L! t! h/ k6 Hfi' C1 X7 ^% a8 N+ c7 ^( V, O; q
cd $depends
+ t" v  ^3 l2 `4 R7 Hif [ ! -d "$cldr" ]; then
$ v. j4 p4 `  o7 l3 umkdir $cldr, l6 F( \& C- I7 I8 M: h) X1 i; a
fi) ~6 w9 N' _; Z0 R4 G( P
cd $cldr
2 ], N& t3 F4 Q0 qsudo wget http://www.unicode.org/Public/cldr/1.7.1/core.zip
0 M$ P) @8 n! f0 k2 K  ]. Vsudo unzip core.zip
8 I& `( s6 R$ m' C2 c% m3 Wcd ..
8 }; R$ D4 Q+ K# X% Oif [ ! -d "$babel" ]; then
/ K( T8 a/ ?0 Y5 w3 s  }mkdir $babel7 L4 e( i8 y  h4 K- h
fi
, F4 J% f4 F7 M$ v3 gcd $babel) Q* S; f( [; T1 Q+ E$ T, C
sudo svn checkout http://svn.edgewall.org/repos/babel/trunk% D& I: |, k; d  t3 u
cd trunk
- {0 M0 X" \! |2 Q/ Z4 X1 Xsudo python ./scripts/import_cldr.py ./../../cldr/common/; l$ j. G% J9 b: H+ S- S
sudo python setup.py install: F; Z* U/ u8 K& U
cd ../..
  p: |  V6 \' @) `2 Z3 L. Ksudo wget http://ftp.edgewall.com/pub/trac/Trac-0.12.tar.gz
; P1 I0 M" A1 f0 }) t4 dsudo tar zxvf Trac-0.12.tar.gz
- V2 ]$ Q# J) p0 i: `1 W* Gcd Trac-0.12
) o! L" f8 F* h- {  Osudo python setup.py compile_catalog -f6 [* c! m% ~. K& N) D$ X( B$ i
sudo python setup.py install& m7 l; g- `. Y
echo "######################### install completed!  #########################"
 楼主| 发表于 2010-9-16 00:44:39 | 显示全部楼层
算了.把整体都写上!- [, g, Q& \: I5 p
下面介绍文件服务器,svn和trac的安装部署过程。
' C6 C# x- O  A- t& y7 u安装配置管理相关软件,新建一个脚本。内容如下,然后sudo执行此脚本!$ [" F" q( A9 v+ V

& G& L/ I) j: f/ [# m/ x#!/bin/bash
: b. P/ e- b. V6 [5 f0 \( K#***********************************************************************) _) t& y9 j; j: I
#install.sh V1.00 2010.08.05#/ b' j5 K  D) B8 G/ B
#***********************************************************************( f: L. l  W4 N$ ^7 h/ L$ h! M
echo "######################### install starting!  #########################"
* [6 {% Q% j" J( t! Vdepends=depends4 i$ x/ k9 \- l/ B; W2 F, n6 h
cldr=cldr
, K0 m. T' Y: R" {9 Pbabel=babel
5 q6 W2 {6 z- T2 m" s, V
: X" z7 i  I( w4 K# install apache29 z. k2 D/ a8 u: e" l
sudo apt-get -y install apache29 O$ X/ e- e" _" Q" L
# install subversion
; ^% O- a! Y* e2 ^. lsudo apt-get -y install subversion libapache2-svn subversion-tools
( y% u1 h) a% s) t# install sqlite9 {' ~& r  r1 ^5 V+ s
sudo apt-get -y  install sqlite. d- d! c( D/ Q* F# S( M! Z
# install python
7 ^0 O; {' Y2 b& f8 o8 L; \sudo apt-get -y install python python-setuptools libapache2-mod-python python-subversion
1 \( s3 f0 ~( P# R' T" L# install zip" a) O6 Q0 V1 f  V; J" \
sudo apt-get -y install zip8 g8 d( G: q( E: _, B: l
# install plugin
( [6 e% V) t+ \/ O% Wsudo easy_install simplejson$ f; J0 ]4 `8 J) J) _
sudo easy_install docutils1 d/ k% ^2 L+ z% J& _) l& m
sudo easy_install epydoc
7 j- W, A, b7 _& N% nsudo easy_install Pygments; M; Z/ ^% m. w* {- P% [
sudo easy_install genshi) l; M& t* {) \: f' d+ f& a4 {8 e$ i
sudo easy_install ElementTree
0 b7 k6 w! a/ a& i3 m, f; {7 n) esudo easy_install pytz
8 {* d% Q. n; S6 h* R# Y' \! _  J" i2 _/ w* n0 ~, s6 x
if [ ! -d "$depends" ]; then& X5 q/ e5 u! E
mkdir $depends
! k  j9 Q! P5 K! o* d( u% Pfi
: x3 k) T) N6 a4 j; Xcd $depends. M2 N6 f* l/ V2 u
if [ ! -d "$cldr" ]; then
1 x9 q: O/ Q+ ]: f6 amkdir $cldr
/ X( A: ?9 P& Cfi
9 w" D3 ~" O# I: m4 O2 Gcd $cldr
  E! v: V% Z, \  E6 m, xsudo wget http://www.unicode.org/Public/cldr/1.7.1/core.zip( o* a# g" Z3 B; ]: a8 o
sudo unzip core.zip
+ y8 M) [# b9 j* j: gcd ..* A9 a) n  a1 y6 e2 ~8 A! o& j8 U4 ]
if [ ! -d "$babel" ]; then
% w" z" K9 r4 vmkdir $babel" H! i0 f; X& M
fi# z' I" V  }- G6 m( \2 C
cd $babel* r" h9 y, T+ I2 t  [$ _
sudo svn checkout http://svn.edgewall.org/repos/babel/trunk
% I+ S1 u# L- y, q, M3 S5 C% m  {cd trunk. _& Z: ~$ l3 ]: E/ k
sudo python ./scripts/import_cldr.py ./../../cldr/common/0 t& J1 x" M% s
sudo python setup.py install
  n; K% a+ B5 q3 _* C$ q1 f* u( D# Mcd ../..
& I: D! R1 r5 E" qsudo wget http://ftp.edgewall.com/pub/trac/Trac-0.12.tar.gz/ o3 u; ~; \& y
sudo tar zxvf Trac-0.12.tar.gz : ^- ^, A9 J, P7 H. {
cd Trac-0.12
0 i$ q' `! D* p1 M, t& Rsudo python setup.py compile_catalog -f
+ i+ M. r" x3 i+ D- z; ~2 a5 ysudo python setup.py install
) w! @# \% d; _9 Xecho "######################### install completed!  #########################"         7 u/ P, W* ]# ^8 t! a9 y
所有的软件安装完成!下面进行配置库的创建并配置环境!
+ _3 q: Z5 r4 |& Y/ B, s; c% I0 w8 `设置Subversion版本库的访问权限也有很多方法,通常的做法是,创建一个名为“svn-admin”的组,并将该组拥有访问Subversion版本库所在的目录的权限,同时将需要访问Subversion版本库的用户加入到这个组中(在这里添加的是自己的本地用户和Apache2用户):2 h0 W! h# d2 F/ v  n7 D; N' I# Z
0 v7 V0 E6 h4 {) s) C. r
$ sudo groupadd svn-admin
7 S0 {* D8 Y6 `/ ]1 h2 x' X$ sudo usermod -G svn-admin -a username6 `: B# h! x( ~$ R
$ sudo usermod -G svn-admin -a www-data         + \  j0 m5 ~! J, B" a8 _1 C2 P
创建配置库project1,因为访问模式是http访问存取。给apache2 需要的相关数据开通写权限。0 F9 D5 Y  c2 z4 o  d8 i
" N& y2 U( E0 ^
$ sudo -u www-data svnadmin create /scmdata/svn/project1 --fs-type fsfs
( y* H9 C; @2 m5 ~* c7 b$ sudo chmod -R g+w /scmdata/svn/project1/db/
- q+ ~& C) z7 h5 s3 |+ \$ sudo chmod -R g+w /scmdata/svn/project1/dav/         
2 f& G& j- d7 j创建与配置库相对应的trac环境
' d3 b" v  d2 X+ Z6 E7 z: Z( V9 q  R
) v/ ?+ R6 A' ~1 A$ sudo -u www-data mkdir /filedata/trac
/ X8 O) J  R- H; I$ cd /filedata/trac/$ T) {$ @8 z4 J
$ sudo -u www-data trac-admin /filedata/trac/project1 initenv         
, _2 K: V3 Q- L2 Y, H根据提示,输入相关的信息。创建完成!# K8 R. P* T5 @2 n9 }* L6 o
创建用户验证配置文件和SVN访问控制配置文件,并创建用户帐号!因为下面要用到“SvnAuthzAdminPlugin”模块对配置库进行用户认证,所以用户认证信息统一创建,版本库权限管理分散在项目通过“SvnAuthzAdminPlugin”管理。" x) D& Y9 B+ z% M  D
3 w2 k6 r- `# K9 \1 r  l$ g
$ sudo mkdir /auth_svn_trac. ]9 {# o6 e4 j6 T) g' r
$ sudo chown -R svn-admin\: /auth_svn_trac
0 \. s- t( a% f5 f: t1 o$ sudo –u svn-admin touch /auth_svn_trac/auth_svn_trac
( Z0 E; T: J/ E2 S  t- D$ htpasswd –b /auth_svn_trac/auth_svn_trac username 123456
( s- F  u% Q7 L  V" f$ sudo -u www-data trac-admin /filedata/trac/project1/ permission add username TRAC_ADMIN         + c/ m/ M# g+ c% e/ t
把公司logo图片上传到相应的目录,并修改相应的配置文件,操作如下:
% o; ~) A% X. I; @! ~( r# a - v. Z6 c6 R! k2 A& K
$ sudo -u www-data cp logo.png /filedata/trac/project1/htdocs/
7 w* |! t, x# o0 V* o  ?, b, J, x$ sudo vi /filedata/trac/project1/conf/trac.ini           * P8 d  S1 ^# n  S0 F9 e" Z
修改内容:9 g* l. \: i( Y! C& ]
[header_logo]. U& r! M5 A- I* _* A
alt =
* u# H2 `( z3 N4 b- Vsrc = site/logo.png         , D# y) x. U8 I# _0 n5 {& y! ^
现在启动trac测试。
: y  Q' S3 [/ {! A* I1 Z ( B6 G/ [. \0 p: J1 s' _
$ sudo tracd --port 8000 /filedata/trac/project1/         
2 q: P. p; \: v  g, Nhttp://ip:8000/
7 R8 o! }/ I! T显示与项目project1相对应的任务跟踪系统。成功!( I5 ~3 ~1 l$ Y' A
下面我们实现apache+svn+trac 的用户认证并安装trac 插件。
9 y& n% Y5 I3 y+ @- |& ]0 h根据需要,我们选定为安装下面的6个插件,并依次安装,安装步骤基本一致:
7 ~( _) k* L! @1、        下载安装插件。
+ g2 x7 Y- W8 j5 E% n) z' Y2、        根据使用册修改项目对应的trac.ini文件。
* R2 z8 ]9 n/ u( N- j* L* c! \; C3、        重新启动 apache 服务。
# Z7 J2 L  N$ P+ S  r3 G1 b这里就不一一描述下面插件的安装过程了,每个插件的URL地址如下:
4 g* q2 k3 x; J+ D: i; J4 X* Z  g$ ZTracAccountManager/ B5 @% z, n4 d: H
http://trac-hacks.org/wiki/AccountManagerPlugin
' R: N) ~' L" l0 z( b3 I* LTracXMLRPC
+ g+ s# E9 T; W1 l9 yhttp://trac-hacks.org/wiki/XmlRpcPlugin
0 R: n6 b0 i( N5 i, s* R4 cTracHTTPAuth
" x0 q' i7 f4 t+ I4 V" Chttp://trac-hacks.org/wiki/HttpAuthPlugin2 g( {( i3 R) M
Timingandestimationplugin
% O2 J9 [+ \/ whttp://trac-hacks.org/wiki/TimingAndEstimationPlugin, t7 b9 L7 `, A3 d# p/ m' e
TracGanttCalendarPlugin2 Z- G, g& A) A! m5 Z
http://trac-hacks.org/wiki/GanttCalendarPlugin
- ~4 D' _$ \/ f: U( W2 u) g5 a% Y1 _( _SvnAuthzAdminPlugin: a& k6 `1 p; a  E1 c( J5 F
http://trac-hacks.org/wiki/SvnAuthzAdminPlugin# e: K$ w$ H7 f! t3 ]) e
配置完成后,修改相应的apache2的配置文件!
' j( |  z. C3 j( [: s选择多个trac项目环境, python方式,在apache2 的配置文件中追加以下信息!2 y7 ?# \# o$ l. Z: a

" w, X# v4 a; e. ]<Location /trac># A, G0 w" k) P/ A; f/ o$ L
    SetHandler mod_python  b9 z% O. }) T$ g- ?1 U
    PythonInterpreter main_interpreter' b/ g) P, Q6 E
    PythonHandler trac.web.modpython_frontend
0 [) u' [7 y7 m" N    PythonOption TracEnvParentDir /filedata/trac- R3 T! l" }  A) Y, t4 e
    PythonOption TracUriRoot /trac
- L- Q( \6 f& ?9 M7 y</Location>         
6 V2 C" s0 ^. W' r* B附:0 C  M& [  w# ?5 M" p9 d3 L
TracUriRoot在某些情况下不是必需的,除非你看到如下错误信息:+ A6 X7 O' }- \2 I
9 Q" W, L. G5 L& u' n2 M
404 Not Found (No handler matched request to %s)         
8 S5 P( ~; V9 x, n5 R设置apahce2和SVN的整合!为沙盘和项目设置权限!9 P7 b5 H; J, m) i3 ~
修改apache2 的配置文件,在最后加入以下几行!
" S  g+ g+ ]( E0 O0 v7 o% N: T$ sudo vi /etc/apache2/sites-available/default
6 U* @, t  n% P9 L" \  i: d
/ v- T; v' H2 {<Location /svn/sandbox>
# s8 O/ `! P7 }4 v4 ]5 K  DAV svn9 C% o; D- t: d6 Z
  SVNPath /scmdata/svn/sandbox
7 `" P. X5 e( w: d0 K' F; O8 l9 s7 o # Satisfy Any
8 K, H, G/ C" e$ n" d% C3 X  #SVNIndexXSLT "/svnindex.xsl"5 B) x. l" a5 c1 D# w: w
  AuthType Basic
, s1 w- U5 z) f6 J* J" C  AuthName "SVN Repository"! x7 {. `# F) G
  AuthUserFile /auth_svn_trac/auth_svn_trac
2 e$ z" I) N  B9 d+ }5 A( d  AuthzSVNAccessFile /scmdata/svn/sandbox/conf/authz
+ |$ q! Y; }: ?( B5 t0 _2 b% r<LimitExcept GET PROPFIND OPTIONS REPORT>
  d4 X1 s/ n8 g, C    Require valid-user
) }! S# B, [3 ^# T3 g1 Y/ G, W+ {( x  </LimitExcept>: @$ B; D. P; @6 F) |3 z
</Location># P4 C" j' u( K  l4 m3 m
<Location /svn/JavaIDE>
, V% F% I( ?0 b4 y3 [( x! E& l, L1 [  DAV svn
) P! f# m" }# c  SVNPath /scmdata/svn/JavaIDE+ C9 B7 G& r6 f' F' K
  Satisfy Any0 b/ @/ P0 v5 H5 ^& p6 Z
  #SVNIndexXSLT "/svnindex.xsl"
/ b* X& b. d6 f  J  AuthType Basic; [4 U, ~; ?4 H* q0 ]/ R9 Y7 i4 A
  AuthName "SVN Repository"" M/ p2 u$ s. [: H! _! N- @' y
  AuthUserFile /auth_svn_trac/auth_svn_trac
& A& h1 T: o, J  AuthzSVNAccessFile /scmdata/svn/JavaIDE/conf/authz4 b- ~9 n# o& i( ~3 M# _  N
    Require valid-user# ?/ i9 S3 m1 Y, k- x
</Location>         7 C" r/ U/ n( c7 w' P1 u
重新启动apache2, 测试。
& m  B. V( {* B5 Ksudo /etc/init.d/apache2 start' t3 }( p1 r; C0 p$ Q8 o7 E
打开浏览器
/ }! H0 y3 v7 w: P8 F% W/ Jhttp://ip/testinfo3 O7 X" _8 o" R
显示配置库服务器相关的配置信息!
" ^9 }+ C: x& b+ y) B' Hhttp://ip/svn/sandbox/
. `) ?8 h5 Q* R1 m- A显示 项目project1 的配置库文件信息。; [. @, c: ]4 H4 W  y
http://ip/trac/sandbox/* l( n9 i( `6 U- [
显示与项目sandbox相对应的任务跟踪系统,把一切软件生产活动抽象成任务(文档、代码、需求变更、bug、处理用户问题等)' t9 w+ C6 k! L, k% ^% v$ c
配置完成!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-16 17:38:37 | 显示全部楼层
自己坐沙发!) k6 J) F% v2 K5 f' V
自己坐沙发!
% w$ a* r! t5 j3 s0 ?: i
1 }0 N0 ~: @# M! g9 U4 s[ 本帖最后由 ths0516 于 2010-9-17 14:29 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2010-10-9 16:28:56 | 显示全部楼层
非常好的文章,转到 http:www.svnclub.com 去了。谢谢!
回复 支持 反对

使用道具 举报

发表于 2010-10-12 09:42:31 | 显示全部楼层
 楼主创作,顶起来!
回复 支持 反对

使用道具 举报

发表于 2010-12-16 13:35:19 | 显示全部楼层
顶原创,谢谢分享!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-12-16 13:44:02 | 显示全部楼层
顶一下,看很多人忘记这个帖子了!
回复 支持 反对

使用道具 举报

发表于 2011-5-3 15:02:16 | 显示全部楼层
回复 ths0516 的帖子7 J/ e, L+ g; t
1 z; j; D1 x6 g$ x* i2 T
之前没有接触过Trac,不过从楼主的内容来看(自己也查了下trac的资料),好像很强大- ^$ f% k5 {, s1 }
是不是Subversion+Trac的软件管理方式(Trac偏向于项目管理)呀?7 y$ N/ H; _! @
  A1 O2 I7 V$ Z; B% _  A  k
楼主能不能具体点说明下用途。9 H3 G7 B0 X! ?& n9 t( M  A0 {, k" K
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-6 15:14:17 | 显示全部楼层
本帖最后由 ths0516 于 2011-5-6 15:17 编辑 # Y/ B. E  Z% [9 v# ?

; l. \6 V- ~; D回复 sophiawang 的帖子
( z4 E+ D, K& D
! l8 U' Z+ n4 l$ J( t你可以把他当成一个轻重量级的任务管理跟踪系统,把任务可以按照日常任务、需求变更、BUG 或者维护、甚至功能增强等等。看你们如何自定义,然后可以简单的跟踪任务的完整过程(流程也可以自己定义)。还支持很多插件啊,如工作量评估,和时间工作时间等,还有 自定义查询等等!0 D/ e$ v1 Y( \8 ?2 _+ f; d# J
金山使用的就不错,你可以参考看看金山是如何使用TRAC的,可惜他们的代码不开源,资料也比较少!参考下看他们的设置!
9 p/ e2 q) f/ n# b) zhttp://code.ijinshan.com/trac/
# B2 |& C& W1 O7 \想做的如此的好,不是那么容易,我暂时没有能力做到如此,很多需要二次开发!
回复 支持 反对

使用道具 举报

发表于 2011-5-7 07:15:16 | 显示全部楼层
本帖最后由 callmechen 于 2011-5-7 07:18 编辑 & k, ?9 [. M2 E

3 I0 I7 _. R" h1 x: C5 x0 o很好的帖子。" D) S/ W' n+ M8 A9 e/ Z

7 t. Y4 r9 t4 g# k% B5 }trac这种工具,完全可以上升到楼上所说的任务管理工具的层次。与svn契合,可以实现配置项的对应。用之前公司一个副总的话:任何工作都会有交付物,做完工作但是没有交付物,顶多可以算作完成一半。
! F$ J9 h: F7 _# K再加上相关的插件扩展,可以实现任务管理的其它属性,非常不错~
3 e3 ~2 M6 }( T# C; ]
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|手机版|无图版|SCMLife.com ( 京ICP备06056490号-1 )

GMT+8, 2018-1-17 10:13 , Processed in 0.069726 second(s), 6 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

快速回复 返回顶部 返回列表