SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 16611|回复: 12

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

[复制链接]
发表于 2010-9-16 00:23:03 | 显示全部楼层 |阅读模式
参考金山的安装程序,在UBUNTU下的apache+trac(中文)安装脚本,直接执行即可!
$ q( r) b- m& Y5 h& |( m
3 C; C7 O5 k# \# |#!/bin/bash
0 B" X5 Y) b( W' l! G) C' d! u2 s#***********************************************************************
; s0 y8 {9 \9 {5 C4 L$ F3 A; O6 M#install.sh V1.00 2010.08.05#
1 a1 B) s' ^! w5 x" G#***********************************************************************
, a$ B) ^, Q- ?6 o# N9 q6 necho "######################### install starting!  #########################"! L) }3 O1 C0 R& t- ?3 D7 b
depends=depends
6 p- E- s; R  d7 K. a7 A6 J/ x% Ncldr=cldr3 q+ K0 M) O# t3 x* `4 q
babel=babel7 Z8 \3 E6 s- ~2 y6 W6 w$ Z
$ O+ C0 f1 x" q3 u. E
# install apache25 ^9 ^0 [6 }8 |$ t1 L0 T4 Y3 v: z: O
sudo apt-get -y install apache27 V# O1 d2 w( }- U4 h
# install subversion- Z7 n0 w) G6 u' Q7 ^
sudo apt-get -y install subversion libapache2-svn subversion-tools4 O& e: T5 \/ W
# install sqlite" H" O/ Z' }" `9 S1 r
sudo apt-get -y  install sqlite) N! M! u2 H9 l- R3 B9 y1 N* ]" d
# install python0 B  v7 z) B5 n* c! [4 T7 D8 X' U- Y
sudo apt-get -y install python python-setuptools libapache2-mod-python python-subversion# d/ f) ?+ z5 W
# install zip! ?6 s5 [/ R+ l% f
sudo apt-get -y install zip
- w! V0 n1 ^5 }% D' _# install plugin
9 y, C3 z) ^: U) e9 Gsudo easy_install simplejson
- s$ [) Z% ^. v3 h- Asudo easy_install docutils
6 L; |1 M9 P' }2 M: F) z3 psudo easy_install epydoc% c! ~8 ]) C0 z' ]# c
sudo easy_install Pygments3 E6 e! J% z$ P& R
sudo easy_install genshi9 M% I3 d3 Z( C* @
sudo easy_install ElementTree
% Q. n% P  n" |1 \4 u# Q. _sudo easy_install pytz. f; X) x3 C# O
; m4 J, {% R7 a# ]* i8 }) o/ ~- M: z
if [ ! -d "$depends" ]; then
) i" K' ?) v& z& K1 T6 Y+ v8 Nmkdir $depends
* q. a3 F6 L: O$ X7 Efi4 z' w* W% y2 q  b; w6 ~
cd $depends& Q  D" d1 v6 q: D6 i4 V6 S2 s% {. y
if [ ! -d "$cldr" ]; then8 K2 ~( Q1 a% D; C
mkdir $cldr/ W& Q4 ~* J5 N9 O& Y. O/ A
fi
, o' w' f0 i# S0 kcd $cldr
6 @' Z. i' C* O: _; R  ~sudo wget http://www.unicode.org/Public/cldr/1.7.1/core.zip
  O8 v; V* m4 i' L/ Lsudo unzip core.zip2 D9 p! W' L0 e1 P( z" j! K$ A9 N
cd ..
/ z7 X! K: N: F; Wif [ ! -d "$babel" ]; then
; q  W3 Z0 d! X! n7 ^, qmkdir $babel; C+ I% O& O; l' t* v
fi
% w, R4 M1 y/ a1 Xcd $babel
; V0 G! a- M/ u) Wsudo svn checkout http://svn.edgewall.org/repos/babel/trunk
  Y- R# r6 v6 u5 acd trunk9 I$ `& X* B2 q/ [
sudo python ./scripts/import_cldr.py ./../../cldr/common/
# Q% e! y$ U/ v0 M3 Dsudo python setup.py install
" B4 z2 E! A" @- |0 ~( L- X+ o3 Vcd ../..
; R" z' @1 E% J: {) D& xsudo wget http://ftp.edgewall.com/pub/trac/Trac-0.12.tar.gz
* `  N+ `9 X& y8 J& x+ g" esudo tar zxvf Trac-0.12.tar.gz : i& b4 Z- a- w4 f9 F6 I2 F( g2 S
cd Trac-0.12
2 G% h6 ]" T3 t  ^" asudo python setup.py compile_catalog -f
/ M0 q9 q) X8 rsudo python setup.py install: i) t+ R5 k  O- ?& W, h
echo "######################### install completed!  #########################"
 楼主| 发表于 2010-9-16 00:44:39 | 显示全部楼层
算了.把整体都写上!7 I6 R, j1 h4 p7 _0 v6 c+ n( P
下面介绍文件服务器,svn和trac的安装部署过程。' |+ U7 Z! H& A7 e- r! ~/ V' `
安装配置管理相关软件,新建一个脚本。内容如下,然后sudo执行此脚本!6 M8 Y1 B; }( G

3 k( w- l, y, i0 i#!/bin/bash& p1 h% i, T/ ^" c
#***********************************************************************
8 Q- ~' `4 t+ P#install.sh V1.00 2010.08.05#
0 P& d& ~( u4 n) f0 p5 w" }#***********************************************************************
. ~4 L# p" H* e! z5 J9 S5 o6 n4 ^echo "######################### install starting!  #########################"2 F, a/ y6 ]! U: Z
depends=depends8 i' D; {( k5 `! ^2 u1 @5 y2 M$ L
cldr=cldr
+ S, ?/ P- a1 [0 W. ^8 C% Z1 Sbabel=babel
+ W8 y' ^# T! @! f8 g; I! E) e, Z# o  I8 r& i, b
# install apache2
0 p- P; e; G/ D- z  F; K+ u" ^sudo apt-get -y install apache2$ E5 r! D1 C" `0 Y6 k1 p  f. N
# install subversion. n% g, c! ~, H
sudo apt-get -y install subversion libapache2-svn subversion-tools
3 O3 V) p5 Q( [3 Y% {1 k! e1 i# install sqlite
1 ]# [/ G8 _% k; l  `4 u* Msudo apt-get -y  install sqlite$ X) |# g5 i$ i0 z
# install python8 L9 T, o, A4 v5 i1 `( s0 w
sudo apt-get -y install python python-setuptools libapache2-mod-python python-subversion
1 h( Y9 ^! B2 z3 F3 B# install zip
" |, [1 _* Z$ x" @* lsudo apt-get -y install zip4 |4 x5 K) b/ t0 @
# install plugin7 u4 C3 F4 n+ n
sudo easy_install simplejson
, r% ?& `0 V  F! \2 B+ ]sudo easy_install docutils
, g4 i8 l+ S: |( C8 |sudo easy_install epydoc: t  V: f, Q- X- }+ R, c  s" K6 [2 b
sudo easy_install Pygments* \4 o0 _7 j1 X$ H. _  I
sudo easy_install genshi
9 A. A' W- p1 C7 ksudo easy_install ElementTree
* s) G9 \1 L5 b: \+ rsudo easy_install pytz7 L) g% L9 O! c

8 `# S) K! B0 P# H) F# c' m2 U, Sif [ ! -d "$depends" ]; then
3 T8 L; P2 r4 j+ a5 R8 U1 q- _mkdir $depends
* O2 q& U3 {# {$ }+ ]& U% \3 Zfi9 L7 [. I6 s, `( a6 K" Y) I
cd $depends
' E/ c8 i! a/ v/ T2 Bif [ ! -d "$cldr" ]; then5 x" g0 n3 F! j$ m/ d9 H
mkdir $cldr
3 c: l' U/ V0 ^0 R( e, t- Bfi
7 c0 t5 R2 B, f0 V8 Mcd $cldr
. C. _. \( `1 G3 Z0 lsudo wget http://www.unicode.org/Public/cldr/1.7.1/core.zip
/ [# W% c! Z/ V9 Q/ g4 _sudo unzip core.zip' K3 H- H6 F" `
cd ..
$ a2 V, B- b- N/ }3 N% l* Xif [ ! -d "$babel" ]; then
! S2 s$ {1 i; t7 o/ r, s; tmkdir $babel
0 c- v- v& C9 Ofi
' k, J& p' K2 ^- [; ucd $babel
* L' A# n+ T* Z% X7 G( O" c: Q- ^1 nsudo svn checkout http://svn.edgewall.org/repos/babel/trunk& J# F, u# c6 V$ ~
cd trunk
9 N7 H' D/ |; i4 U& Vsudo python ./scripts/import_cldr.py ./../../cldr/common/4 |/ e* M0 U( _% `, R" [# F! Q
sudo python setup.py install0 q& k. ]8 i7 s9 r% t2 I' ]
cd ../..
$ {2 C, M% H+ G' a* dsudo wget http://ftp.edgewall.com/pub/trac/Trac-0.12.tar.gz( `, d0 r1 o% t$ Z; C
sudo tar zxvf Trac-0.12.tar.gz
" d" Z* W* x; c! Jcd Trac-0.12% F6 x! n; B' b3 W! A& `% g
sudo python setup.py compile_catalog -f
! }4 k/ p7 m& I' o. Fsudo python setup.py install
7 A, }5 J0 x% Techo "######################### install completed!  #########################"         ; x+ B) J" Q- I" j1 T4 y6 r' I. j
所有的软件安装完成!下面进行配置库的创建并配置环境!
/ S1 y" B0 N& F0 B  K' e. W# \设置Subversion版本库的访问权限也有很多方法,通常的做法是,创建一个名为“svn-admin”的组,并将该组拥有访问Subversion版本库所在的目录的权限,同时将需要访问Subversion版本库的用户加入到这个组中(在这里添加的是自己的本地用户和Apache2用户):# z  w9 ]' `& i

! q. ~0 Z8 x( s8 f: q/ U3 m# m$ sudo groupadd svn-admin
% F" V4 Y3 s% _5 X. V8 A$ sudo usermod -G svn-admin -a username5 v1 K) v1 W" {0 o9 c- M1 u+ o% j" `
$ sudo usermod -G svn-admin -a www-data           i* R: C' ]# A6 P% r$ X
创建配置库project1,因为访问模式是http访问存取。给apache2 需要的相关数据开通写权限。* Y0 {% s, b. T2 w  Q: e( A& E
- \2 P9 W% [7 w! O9 U2 ~- `. |! i& C+ Z" [
$ sudo -u www-data svnadmin create /scmdata/svn/project1 --fs-type fsfs1 _& H6 v6 q0 H: Z. `* R0 D
$ sudo chmod -R g+w /scmdata/svn/project1/db/: H  r3 j3 W* I. Y+ T
$ sudo chmod -R g+w /scmdata/svn/project1/dav/         ( k4 I9 D+ g; ^* h6 \
创建与配置库相对应的trac环境
& J  k7 ~$ _6 P& w. W
6 `4 N) H6 U6 ?$ m3 I% m$ l& e. K& Y$ sudo -u www-data mkdir /filedata/trac
5 ?% }9 v# `5 u# P; i$ cd /filedata/trac/
1 Y- ^$ v' Q" c( c% ^$ sudo -u www-data trac-admin /filedata/trac/project1 initenv         
" W/ k5 J- S' m. M4 ]: R根据提示,输入相关的信息。创建完成!; k$ V1 o, m' ~3 E( C; C
创建用户验证配置文件和SVN访问控制配置文件,并创建用户帐号!因为下面要用到“SvnAuthzAdminPlugin”模块对配置库进行用户认证,所以用户认证信息统一创建,版本库权限管理分散在项目通过“SvnAuthzAdminPlugin”管理。
2 Q" s% e$ w; B1 e1 n6 A
7 M; @/ |9 O8 B0 w" a% F8 X: {; S$ sudo mkdir /auth_svn_trac
* E. Z6 q+ \5 m+ X$ sudo chown -R svn-admin\: /auth_svn_trac
$ \* d! k9 z' [# [0 ^$ sudo –u svn-admin touch /auth_svn_trac/auth_svn_trac
! ~, ^  {7 Q3 W0 Y" p! G$ htpasswd –b /auth_svn_trac/auth_svn_trac username 123456; y- x* A9 J, o( K8 F' x7 b
$ sudo -u www-data trac-admin /filedata/trac/project1/ permission add username TRAC_ADMIN         
) k' Q% a* H3 \# L$ a把公司logo图片上传到相应的目录,并修改相应的配置文件,操作如下:7 s( B) W: e  L

7 |1 U7 H# B. \1 p4 P# @4 ]9 \$ sudo -u www-data cp logo.png /filedata/trac/project1/htdocs/
' j$ h3 \  }7 l! @4 C/ c$ sudo vi /filedata/trac/project1/conf/trac.ini          
- C' V: }& _2 ]修改内容:
; h* o# |2 `7 e  b6 R: q[header_logo], k" Q* U$ B: {0 l2 _# e# i
alt =
* J0 L, V. \; Q4 M9 x+ psrc = site/logo.png         ( G/ x: W# |1 w* j, H4 o5 D/ F
现在启动trac测试。' y; o1 h" ?; W' }! m& L

9 ]* W- Y+ z2 i# f- `$ sudo tracd --port 8000 /filedata/trac/project1/         ; D- w; h2 v. e$ u
http://ip:8000/( x) n$ b* a6 z6 e6 X) c. b
显示与项目project1相对应的任务跟踪系统。成功!
6 f  {9 H5 c5 `下面我们实现apache+svn+trac 的用户认证并安装trac 插件。- ^3 v" o% s/ ]3 s" q9 A% T
根据需要,我们选定为安装下面的6个插件,并依次安装,安装步骤基本一致:
* Y; P0 F2 i: f5 p5 A5 Y' ^1、        下载安装插件。" R) m4 i. [# S, v
2、        根据使用册修改项目对应的trac.ini文件。' R: ~2 n/ `' d( o. a7 s' e1 j
3、        重新启动 apache 服务。
6 R, c# W8 Y7 Z这里就不一一描述下面插件的安装过程了,每个插件的URL地址如下:
4 g+ b" ?* a! L$ W7 N, c# GTracAccountManager
1 n& J+ [9 r! I1 z# Q* F: Y$ Thttp://trac-hacks.org/wiki/AccountManagerPlugin
. a8 b7 H3 P9 q( E  f$ DTracXMLRPC% B* t8 Z, z# V
http://trac-hacks.org/wiki/XmlRpcPlugin
. O9 G, _- M6 c  r' v7 \+ s. z% yTracHTTPAuth' i3 [( j) D0 g& x# B6 P
http://trac-hacks.org/wiki/HttpAuthPlugin  K/ T, O' u$ v) W% G: ~
Timingandestimationplugin
. _) @* ^  I$ u# E% P/ t9 nhttp://trac-hacks.org/wiki/TimingAndEstimationPlugin
1 t$ a# _+ t! L; u( A# D, o  pTracGanttCalendarPlugin
8 l: i, I+ {0 J+ h2 v/ R0 _http://trac-hacks.org/wiki/GanttCalendarPlugin: g) I8 t* v1 O5 h. L& k4 _9 B
SvnAuthzAdminPlugin8 F0 p1 T% v& `6 K5 }
http://trac-hacks.org/wiki/SvnAuthzAdminPlugin
% A) O2 M+ u2 @! D8 s+ t3 }配置完成后,修改相应的apache2的配置文件!
7 I# e9 y) s2 \) I选择多个trac项目环境, python方式,在apache2 的配置文件中追加以下信息!
* r3 H5 I0 |# N1 N. H5 [+ I
% ^# M5 K, b7 c0 p<Location /trac>
4 l4 n1 D3 o$ A1 M    SetHandler mod_python' k$ j7 F, c6 z, f( P
    PythonInterpreter main_interpreter  i8 o/ @+ b# L- {2 b: I' @
    PythonHandler trac.web.modpython_frontend( U* g  p1 [# p
    PythonOption TracEnvParentDir /filedata/trac
; B; C% d' H) G5 M    PythonOption TracUriRoot /trac
) J9 O: o: @( R) u</Location>         
8 A6 G% P  }" h: ?) @附:9 l0 Y- p3 E5 z5 Q  v) }
TracUriRoot在某些情况下不是必需的,除非你看到如下错误信息:
' `5 P9 y/ P* |( L % @6 V0 T/ {, `
404 Not Found (No handler matched request to %s)         
/ n( g' o7 a) q. A& a设置apahce2和SVN的整合!为沙盘和项目设置权限!* h8 n: G2 J8 M* ~8 e
修改apache2 的配置文件,在最后加入以下几行!7 d+ H, L5 `3 U8 |# V. w7 O
$ sudo vi /etc/apache2/sites-available/default
2 Z! v: }% v& Q2 ?" R1 v7 P6 S9 } - E# G$ f. L- x8 K
<Location /svn/sandbox>$ n" \) A. L; y+ {/ X4 }3 t0 H
  DAV svn
- A1 y( R1 G2 O' y  SVNPath /scmdata/svn/sandbox) p& h3 n# v1 w8 _
# Satisfy Any0 B1 _0 @2 X4 O$ l5 z+ b% A/ k
  #SVNIndexXSLT "/svnindex.xsl"
# e- y1 W/ ]1 N5 E  AuthType Basic
/ a$ u+ ?% S5 c  AuthName "SVN Repository"
- i2 N' k1 @  ^, F  AuthUserFile /auth_svn_trac/auth_svn_trac8 B$ k! X1 ?( a( j9 P+ B
  AuthzSVNAccessFile /scmdata/svn/sandbox/conf/authz
  x9 I1 f  i2 ^# B1 S<LimitExcept GET PROPFIND OPTIONS REPORT>5 T  W; `7 T; @5 a) I1 h$ Y' a# Y
    Require valid-user
$ S) N) E$ e; @: ]$ H' t, }5 k; M  </LimitExcept>( s0 a+ y: ]$ H
</Location>
# s0 E  }0 v! e4 P<Location /svn/JavaIDE>
8 I* c; U; {6 _  DAV svn
% j0 P) ^% b$ ?7 w  SVNPath /scmdata/svn/JavaIDE6 O! x, m0 w3 A5 m
  Satisfy Any, @: O2 w! x: e* ^1 V+ G, L
  #SVNIndexXSLT "/svnindex.xsl"
# n; e9 V4 J+ E, ]. _, R  AuthType Basic: t8 Y0 V/ [& D( l
  AuthName "SVN Repository"
+ P' ~% i# Z( K! |  AuthUserFile /auth_svn_trac/auth_svn_trac. d0 C. l4 K0 Z$ p0 I( k. m
  AuthzSVNAccessFile /scmdata/svn/JavaIDE/conf/authz/ Y* P" b7 o+ L1 b; o1 h9 H  J8 N
    Require valid-user6 `' \( Z# a. V
</Location>         
9 Z! k" v& @2 Z# k重新启动apache2, 测试。
+ K" ?% {' ~, I1 Qsudo /etc/init.d/apache2 start
  m& g& P; q: `2 f/ Q; d& d& A打开浏览器0 B! m, h9 N/ D
http://ip/testinfo! F  Z4 w7 `, c; J3 A* I
显示配置库服务器相关的配置信息!
5 {( C: O4 \) d7 c' C' ^& y$ {http://ip/svn/sandbox/
7 m+ k1 P% \2 @% p5 J) W  j! d显示 项目project1 的配置库文件信息。
& h3 o& Y! B& O) f3 M7 zhttp://ip/trac/sandbox/5 d5 }( J* z" q/ t% O
显示与项目sandbox相对应的任务跟踪系统,把一切软件生产活动抽象成任务(文档、代码、需求变更、bug、处理用户问题等)  z; L: W7 c* Y. @7 M! [+ v
配置完成!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-16 17:38:37 | 显示全部楼层
自己坐沙发!) c) O3 ?5 ?" N
自己坐沙发!
6 k( p% _& ^) X" ~: ~
$ c0 v- g  p) ]+ K[ 本帖最后由 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 的帖子
; p4 P4 A; K# V( m% I
' P& A, M% L# P之前没有接触过Trac,不过从楼主的内容来看(自己也查了下trac的资料),好像很强大+ V# Y+ _8 z4 R2 [+ |* J. t
是不是Subversion+Trac的软件管理方式(Trac偏向于项目管理)呀?
+ c. [  X; j# U
% b. @/ m, W+ O3 I& _  p9 [楼主能不能具体点说明下用途。: w* ^/ N0 y0 ]4 Z3 l
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-6 15:14:17 | 显示全部楼层
本帖最后由 ths0516 于 2011-5-6 15:17 编辑
( t- W( |0 O& L! f$ j& w5 ?- z+ F8 K4 F$ j- U4 e
回复 sophiawang 的帖子
0 [; Q8 V" K6 u
7 P0 k: ?: O  W1 M  F6 [$ L& U你可以把他当成一个轻重量级的任务管理跟踪系统,把任务可以按照日常任务、需求变更、BUG 或者维护、甚至功能增强等等。看你们如何自定义,然后可以简单的跟踪任务的完整过程(流程也可以自己定义)。还支持很多插件啊,如工作量评估,和时间工作时间等,还有 自定义查询等等!
: S% X; j( T( r1 _1 N金山使用的就不错,你可以参考看看金山是如何使用TRAC的,可惜他们的代码不开源,资料也比较少!参考下看他们的设置!8 y# z3 I7 z: F  G
http://code.ijinshan.com/trac/6 O' q" |# Q8 c' u5 T0 G* R
想做的如此的好,不是那么容易,我暂时没有能力做到如此,很多需要二次开发!
回复 支持 反对

使用道具 举报

发表于 2011-5-7 07:15:16 | 显示全部楼层
本帖最后由 callmechen 于 2011-5-7 07:18 编辑 3 d+ H- W6 ?+ S/ }3 C2 f

* m4 ^0 i$ j& B, G8 F% T很好的帖子。) E  z8 E# @6 f. D& M8 d" T
8 l# r) l  {0 [
trac这种工具,完全可以上升到楼上所说的任务管理工具的层次。与svn契合,可以实现配置项的对应。用之前公司一个副总的话:任何工作都会有交付物,做完工作但是没有交付物,顶多可以算作完成一半。7 K- ^; ^0 T+ p+ ~* z. `' x0 z
再加上相关的插件扩展,可以实现任务管理的其它属性,非常不错~' s2 R* y7 o1 l2 x6 \
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

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

GMT+8, 2018-9-26 03:51 , Processed in 0.064306 second(s), 7 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

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