SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 17197|回复: 12

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

[复制链接]
发表于 2010-9-16 00:23:03 | 显示全部楼层 |阅读模式
参考金山的安装程序,在UBUNTU下的apache+trac(中文)安装脚本,直接执行即可!
9 u% {  e7 Q& r, |! x
6 |) o! d2 d. Y5 Z+ t#!/bin/bash
0 \1 W' f6 O0 m; [  i; X; s#***********************************************************************
1 k; h* E8 }7 a: c, R0 D0 u- H#install.sh V1.00 2010.08.05#
: t' [  t& a; C3 g* k9 e: O( w#***********************************************************************( c7 b# ?* g6 }. u
echo "######################### install starting!  #########################"
3 S/ h& K4 t( ?6 y& P. _depends=depends, E- f% c8 J/ I0 [2 X
cldr=cldr1 O+ }8 l( S( j  q
babel=babel* u, C( v- D$ u1 |
0 T8 j/ y& w" J$ n
# install apache2
! W3 J" u- K' M0 v, e8 F3 Vsudo apt-get -y install apache2
" x. F0 g# p0 E; F; \# install subversion5 }% T" Q! ?: K$ P& `- e$ T
sudo apt-get -y install subversion libapache2-svn subversion-tools
- P5 W  s: G! g# install sqlite
3 q  Z  y. N/ [3 Usudo apt-get -y  install sqlite, X& S& a; j, k  T, F3 n
# install python
& A' |0 i$ r' ~3 o% wsudo apt-get -y install python python-setuptools libapache2-mod-python python-subversion
1 P, }3 ~8 w8 C: C( A. g" [# install zip
9 X. O( [* c; _/ U; P( Z) P1 lsudo apt-get -y install zip
) X+ K! I6 m" {% A( J# install plugin" V9 C; c% j! m! B& O: i
sudo easy_install simplejson9 g, c1 I& Z4 u# `- A  ^5 O$ o
sudo easy_install docutils
/ X& f. U) W3 M7 x* g/ S, U7 Vsudo easy_install epydoc
( C# K) ^% y( R9 t5 }sudo easy_install Pygments% z: K) I' w1 s, x  K# ~" {
sudo easy_install genshi. p7 [4 o) x' W
sudo easy_install ElementTree9 k& C- T9 Q9 H3 k/ a( n
sudo easy_install pytz' ]2 ?% V! R% m
5 S% p5 U; H% V' K0 k
if [ ! -d "$depends" ]; then
6 M8 L& B. }1 R; jmkdir $depends
) z9 K$ H$ {1 J0 |1 F' d+ Gfi% ~( N. f! \3 X
cd $depends. q5 Z* {; \# Z7 j9 y. R- G
if [ ! -d "$cldr" ]; then( d/ W3 `9 B! a1 B% |+ E0 W# i7 z
mkdir $cldr1 s' M  S9 N+ e1 \
fi/ N, M( X9 g2 }5 B2 ^; S; `
cd $cldr- `5 q. p, c0 Z. K0 H( |$ q
sudo wget http://www.unicode.org/Public/cldr/1.7.1/core.zip# m' _* C1 @; k7 i. W0 Z; L
sudo unzip core.zip
7 ?+ L! x2 q& W: vcd ..3 Q1 @) E: L6 f5 X& ?. e. ^
if [ ! -d "$babel" ]; then5 p! V  g. I: g
mkdir $babel
% W8 b1 h; ]+ ]! ^9 Y$ ^$ xfi' D. E) z" V6 v: c
cd $babel: }+ a) _  U+ `6 O' q$ c, _
sudo svn checkout http://svn.edgewall.org/repos/babel/trunk
' _% F) p" ]! o) z- W# S* W! _0 M) Qcd trunk& u  B2 j8 ], H8 U, N# _; L
sudo python ./scripts/import_cldr.py ./../../cldr/common/" k! ?/ j% N+ K5 U- q! g
sudo python setup.py install) C0 J: v4 U( T/ g& J4 u
cd ../..$ z% a- O: P( n+ r9 d7 E  e
sudo wget http://ftp.edgewall.com/pub/trac/Trac-0.12.tar.gz/ }! r6 \# Z; u) V8 |& G
sudo tar zxvf Trac-0.12.tar.gz
/ l6 }! }6 B# L6 K0 Icd Trac-0.12- g  u; ^& Z' Z3 b2 j2 m
sudo python setup.py compile_catalog -f
7 k$ e  T  ?9 J% M8 ]: r/ u8 M: ssudo python setup.py install5 R* x& V9 A; u4 ?% g' O
echo "######################### install completed!  #########################"
 楼主| 发表于 2010-9-16 00:44:39 | 显示全部楼层
算了.把整体都写上!  p  E, ^; G: Q! v
下面介绍文件服务器,svn和trac的安装部署过程。6 p0 Y8 y% r% U8 h0 |
安装配置管理相关软件,新建一个脚本。内容如下,然后sudo执行此脚本!0 q6 ]* `* W9 P, ~2 O' H
( G& T, }2 q. B8 \
#!/bin/bash
0 [6 d" K) B. J( X( ^, U#***********************************************************************
, F7 ^6 F2 [9 Y# A1 [" Q#install.sh V1.00 2010.08.05#
: x% s2 ~" d' }' X9 O#***********************************************************************; E2 Q0 s% n% _
echo "######################### install starting!  #########################"
& S( u& a. m9 C$ p9 u3 gdepends=depends
3 n; x0 e1 H' [  ccldr=cldr
! R' x3 U% u# y* Lbabel=babel  |3 [: P# ]# v' N) Y

4 H3 e6 Y3 b( ?( R1 a# install apache2
& [2 X: Q% i3 ^( r  usudo apt-get -y install apache2! {& r% l3 q  M& z
# install subversion% Z' b5 U3 ]9 r! K
sudo apt-get -y install subversion libapache2-svn subversion-tools
2 s4 w5 `9 Q! g& n( \( i/ p# install sqlite
% q: {% ]  N3 Q8 ^+ Fsudo apt-get -y  install sqlite2 y7 x$ F% B3 k6 d& H
# install python+ D/ W, a& Q8 C% }& O
sudo apt-get -y install python python-setuptools libapache2-mod-python python-subversion& S6 `* l2 Z. I% E- N$ Q
# install zip
( a. N; j0 f& I6 I$ U+ f0 Vsudo apt-get -y install zip- Z# E( D, j# r4 g8 K3 q
# install plugin) Y( C4 K' T% q% z8 j
sudo easy_install simplejson% _! |) M" Z, {) M4 A3 S
sudo easy_install docutils
0 ^  b1 [$ v; r& `: Xsudo easy_install epydoc, i* [; k! {3 o$ U! h
sudo easy_install Pygments
5 K# r3 k  W) T2 S) i6 g3 nsudo easy_install genshi
% O9 k4 p$ R5 L% Y+ W( fsudo easy_install ElementTree
& F2 |. Q: [. z' ^sudo easy_install pytz9 g* n" a3 d+ y( }

0 O- C' T; b4 K( Q/ G2 L2 Tif [ ! -d "$depends" ]; then
( u6 f: y9 X+ @5 Wmkdir $depends
7 ^0 v& p/ V8 Z/ E& z! q  z1 rfi; H" E! h3 z; K9 `/ d2 N2 U" |7 L
cd $depends
" {! y* n+ n  ~5 n, ~3 L1 @5 Rif [ ! -d "$cldr" ]; then; i0 f( m% q. Q/ s+ n
mkdir $cldr
0 s' k- y% r$ p5 Mfi& l  \+ a5 U% [- c$ Q: n3 d9 ]
cd $cldr
- t& }0 A. B3 c% K/ l/ V" Zsudo wget http://www.unicode.org/Public/cldr/1.7.1/core.zip
6 @* _( H7 |. w% h, ]: s7 _5 gsudo unzip core.zip
. n  _. I% d. N5 Ucd ..
; B" V. \) f6 u" z; b" `if [ ! -d "$babel" ]; then
' ?8 [7 I+ O. ]2 F5 X2 S4 m, p/ p2 Gmkdir $babel  w6 m/ Z9 B6 t- N7 G' G9 |5 @
fi8 c( X8 z+ u. {- g7 I
cd $babel
$ W! p. e1 C' k$ T# msudo svn checkout http://svn.edgewall.org/repos/babel/trunk5 Z1 z5 \" ^% Q* m! g
cd trunk
- K! g! M1 {" w+ G6 E; ksudo python ./scripts/import_cldr.py ./../../cldr/common/0 L0 g) y, l5 b
sudo python setup.py install
6 t' s- M! ]" }+ T( |cd ../..
6 C* L3 |% G4 X1 a4 esudo wget http://ftp.edgewall.com/pub/trac/Trac-0.12.tar.gz
1 q! y% T/ n7 R3 D  h$ @& [sudo tar zxvf Trac-0.12.tar.gz : u: o# d4 V/ E3 N; s9 \4 |
cd Trac-0.12; q/ C" G5 I$ L9 p  A7 U
sudo python setup.py compile_catalog -f
& t! s; b+ ~8 Q1 g! p" }! |sudo python setup.py install, w: @6 F; r0 M
echo "######################### install completed!  #########################"         
8 ~5 M' Y: _9 @. f2 f8 o7 ~* }5 l* V所有的软件安装完成!下面进行配置库的创建并配置环境!5 u/ s+ o& B; x) a4 S
设置Subversion版本库的访问权限也有很多方法,通常的做法是,创建一个名为“svn-admin”的组,并将该组拥有访问Subversion版本库所在的目录的权限,同时将需要访问Subversion版本库的用户加入到这个组中(在这里添加的是自己的本地用户和Apache2用户):
# [; D" ^2 C8 l9 W8 a; ~* s 2 t# s. S9 e1 V: v* D3 H
$ sudo groupadd svn-admin4 w( V2 R, M/ E* Y
$ sudo usermod -G svn-admin -a username6 J; C! ^' Z0 l% y
$ sudo usermod -G svn-admin -a www-data         
5 n' F' n, s9 y% J- L. z: V创建配置库project1,因为访问模式是http访问存取。给apache2 需要的相关数据开通写权限。) g$ w8 h+ G+ `
0 K: j0 d$ b, |3 m, \* {5 j# g
$ sudo -u www-data svnadmin create /scmdata/svn/project1 --fs-type fsfs% ]) P  j& z: f  o4 S
$ sudo chmod -R g+w /scmdata/svn/project1/db/
; K- Z* U0 P" K. p$ sudo chmod -R g+w /scmdata/svn/project1/dav/         * g5 f+ u" j0 r7 n
创建与配置库相对应的trac环境0 U0 X! X9 K& ^* P& z- f

$ x# W8 Z' u" y6 x- D2 |$ sudo -u www-data mkdir /filedata/trac' W( O; j2 r: e- X
$ cd /filedata/trac/5 R+ F, d6 ^8 I8 ]6 ^
$ sudo -u www-data trac-admin /filedata/trac/project1 initenv         # U! K, i2 ^4 x9 \
根据提示,输入相关的信息。创建完成!
/ s! S" d( f7 S; a. j创建用户验证配置文件和SVN访问控制配置文件,并创建用户帐号!因为下面要用到“SvnAuthzAdminPlugin”模块对配置库进行用户认证,所以用户认证信息统一创建,版本库权限管理分散在项目通过“SvnAuthzAdminPlugin”管理。, S4 _. ^' {7 k9 I% s

$ U. ^# u6 b: z8 U. y$ sudo mkdir /auth_svn_trac
$ j) a% q- T2 H& f' N. k$ sudo chown -R svn-admin\: /auth_svn_trac4 i1 _7 R/ N1 `4 I
$ sudo –u svn-admin touch /auth_svn_trac/auth_svn_trac- s  V$ p6 v" E) J
$ htpasswd –b /auth_svn_trac/auth_svn_trac username 123456( y3 L1 C4 G: @
$ sudo -u www-data trac-admin /filedata/trac/project1/ permission add username TRAC_ADMIN         
& I8 L. L9 l4 t4 {/ @$ r& R把公司logo图片上传到相应的目录,并修改相应的配置文件,操作如下:) R! A! J" h) \

9 P( {, I, J& o- W: X6 p$ sudo -u www-data cp logo.png /filedata/trac/project1/htdocs/# [4 A' L( M, S1 c+ {0 M2 O
$ sudo vi /filedata/trac/project1/conf/trac.ini           # D' `8 ?: E& Q; V3 J# c
修改内容:
( S/ ?. Y) w7 ^8 R- I3 q" `[header_logo]
$ g* i* |% o2 s( p6 O/ F) nalt =
* j5 G9 [# g, [% Rsrc = site/logo.png         
6 Z1 a* g7 ?& h, p8 m现在启动trac测试。* u! r/ j6 F- z( {4 `* p; F
: P( g! y# V) c- K, @/ O
$ sudo tracd --port 8000 /filedata/trac/project1/         
2 c  J5 T4 I$ Q9 @http://ip:8000/& j# \: M  ?$ m* w$ B
显示与项目project1相对应的任务跟踪系统。成功!
* C( j/ }+ n9 h7 z下面我们实现apache+svn+trac 的用户认证并安装trac 插件。7 t% ]+ T0 q+ a3 d4 K8 V* ^
根据需要,我们选定为安装下面的6个插件,并依次安装,安装步骤基本一致:. y/ ~- b; d! {7 g' s3 ]
1、        下载安装插件。6 G+ g9 S6 l' K0 I: X, Q: g
2、        根据使用册修改项目对应的trac.ini文件。
. u/ d# w! x$ B; Q0 Z" n" Q6 `* s7 q3、        重新启动 apache 服务。5 f8 @% T8 c) k6 a
这里就不一一描述下面插件的安装过程了,每个插件的URL地址如下:
( z9 f& c* C# P& c, @6 O3 TTracAccountManager0 n) S9 y4 `5 V$ a0 c5 k1 }
http://trac-hacks.org/wiki/AccountManagerPlugin1 v: Z1 P/ d% T1 j. Z
TracXMLRPC5 T( {* h* n+ x2 D% ]$ Z: a: ?
http://trac-hacks.org/wiki/XmlRpcPlugin! i8 G3 O. T, }
TracHTTPAuth2 F( ?+ [- p# \( ^( }2 S7 L* N4 J
http://trac-hacks.org/wiki/HttpAuthPlugin" \2 `$ B2 n' T$ M+ N
Timingandestimationplugin8 M! q1 o! T9 U* n
http://trac-hacks.org/wiki/TimingAndEstimationPlugin
9 C8 {. Y) R& r+ ZTracGanttCalendarPlugin
' ~1 `5 z# H* D$ x$ Shttp://trac-hacks.org/wiki/GanttCalendarPlugin
# c5 Y1 A5 f/ S0 pSvnAuthzAdminPlugin6 e3 R7 h# @% f$ ]5 k
http://trac-hacks.org/wiki/SvnAuthzAdminPlugin
: x0 V7 v: v8 b4 j- s1 s8 o配置完成后,修改相应的apache2的配置文件!" U" {5 h$ |% h0 x6 F
选择多个trac项目环境, python方式,在apache2 的配置文件中追加以下信息!. S4 l; u$ R. V# i

, }6 f2 }$ O3 B<Location /trac>0 a) a- o& g( s4 S/ T! b; U9 h
    SetHandler mod_python& ?7 Y* o5 p5 e
    PythonInterpreter main_interpreter
+ J! S1 V  m+ d5 i4 K& R  W" K    PythonHandler trac.web.modpython_frontend. S' k2 ]1 t; [. }3 Q- G: c
    PythonOption TracEnvParentDir /filedata/trac
! S) T' i' w0 X    PythonOption TracUriRoot /trac# f6 f4 P( q2 d9 e) a! n
</Location>         2 y4 r2 \6 f& \, P! j- f% u
附:
. P6 ~2 G+ t9 o+ ^4 P7 f' QTracUriRoot在某些情况下不是必需的,除非你看到如下错误信息:7 w" t' T: _1 P  [, O% g" \' o( n
+ q8 B5 [4 j' v9 M! Y, |: e
404 Not Found (No handler matched request to %s)         ! y- U: c& C! W) o3 t7 ~( i
设置apahce2和SVN的整合!为沙盘和项目设置权限!, n& \" d  r! M  M" y$ m
修改apache2 的配置文件,在最后加入以下几行!
' W+ M: A, q& a$ n+ V7 ]6 x$ sudo vi /etc/apache2/sites-available/default) Q8 `4 s2 ]% R* G3 d& K, a
/ t  F+ Y- V/ \0 K6 r
<Location /svn/sandbox>
! @+ a7 c( M# u- V+ F3 l  DAV svn$ M% d& D) N, Q$ ?  `' G1 g
  SVNPath /scmdata/svn/sandbox5 ?5 g# F5 f$ p- ]. s5 R
# Satisfy Any1 J- y  q6 C" P- s" e4 K
  #SVNIndexXSLT "/svnindex.xsl"2 [8 U( D4 \1 g% O" k: i
  AuthType Basic
- D5 i' M9 f8 D  AuthName "SVN Repository"! y$ a, ^2 o- q; ~$ z
  AuthUserFile /auth_svn_trac/auth_svn_trac
4 b" p7 i; ^% v0 ^  AuthzSVNAccessFile /scmdata/svn/sandbox/conf/authz' c  T; b' [+ F6 [+ `3 q
<LimitExcept GET PROPFIND OPTIONS REPORT>
$ f' p( H6 s9 ]  B/ Z) w. ^: [$ V! g    Require valid-user
0 Y& \3 l: `1 x3 B& @  </LimitExcept>
. b9 r( U- |. ], a</Location>
. U% p/ s7 i5 K- T0 F$ {$ M( O<Location /svn/JavaIDE>7 T! `& U1 ~6 N5 r8 g  N
  DAV svn+ b3 L, v: i' ^. P
  SVNPath /scmdata/svn/JavaIDE, m$ v/ ?6 W; F" m* X+ q% b3 F
  Satisfy Any
) \8 b% X! m2 s7 {* g  #SVNIndexXSLT "/svnindex.xsl"
$ x8 H; j) x! m  AuthType Basic- `. n- H& o; o" [/ H
  AuthName "SVN Repository"
  I' Q% y! F& ]6 W  AuthUserFile /auth_svn_trac/auth_svn_trac- S6 g6 `0 K* j) G, C0 `: N4 J
  AuthzSVNAccessFile /scmdata/svn/JavaIDE/conf/authz9 ?1 ]1 v) ^' s" R9 t5 R
    Require valid-user* Q5 T7 M8 P0 G7 {2 g2 Z
</Location>         * L, ?( G& S2 l4 x5 K
重新启动apache2, 测试。. W5 }2 N+ ?, q' u0 z' K
sudo /etc/init.d/apache2 start
4 v) a$ P: @0 B5 i3 M打开浏览器
/ M) P- L" R" p' A' J6 b  bhttp://ip/testinfo
! `0 @5 v$ k( k; k显示配置库服务器相关的配置信息!
1 ~) G" m" ~$ I) Ehttp://ip/svn/sandbox/5 |6 _; R2 O" U5 |+ u/ [  ^
显示 项目project1 的配置库文件信息。
9 T, {) }9 d( T; I5 C% l# jhttp://ip/trac/sandbox/# Y+ W) m' t! P/ G4 \3 c+ q
显示与项目sandbox相对应的任务跟踪系统,把一切软件生产活动抽象成任务(文档、代码、需求变更、bug、处理用户问题等)
2 U. u2 g4 t% y0 y配置完成!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-16 17:38:37 | 显示全部楼层
自己坐沙发!
: |6 J2 i" y+ i. v6 U% A: I' \7 F自己坐沙发!# e) J. ~/ u& v3 f; b% P5 {
5 |; p5 c; H$ I- z) r5 a# l4 q
[ 本帖最后由 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 的帖子
  B; z9 {( O7 m3 Z' P# j( o4 b- t- @% v2 Z: u
之前没有接触过Trac,不过从楼主的内容来看(自己也查了下trac的资料),好像很强大
" j# \- c4 X# d7 T是不是Subversion+Trac的软件管理方式(Trac偏向于项目管理)呀?
% w! {9 c: t$ T7 [5 Z( I- M: B7 J# N# K6 J, ^: b/ Y
楼主能不能具体点说明下用途。
' U" _# c! D# b0 L4 ~, C
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-6 15:14:17 | 显示全部楼层
本帖最后由 ths0516 于 2011-5-6 15:17 编辑
. J( K3 S+ Q6 v/ k  m
% A+ a5 T, {# Z( H- o+ w回复 sophiawang 的帖子
. P' z: L. a: @
$ o) L/ }) o% E( c你可以把他当成一个轻重量级的任务管理跟踪系统,把任务可以按照日常任务、需求变更、BUG 或者维护、甚至功能增强等等。看你们如何自定义,然后可以简单的跟踪任务的完整过程(流程也可以自己定义)。还支持很多插件啊,如工作量评估,和时间工作时间等,还有 自定义查询等等!
/ ~2 H) N+ s+ J: M0 l2 }2 u金山使用的就不错,你可以参考看看金山是如何使用TRAC的,可惜他们的代码不开源,资料也比较少!参考下看他们的设置!
6 y0 H: T/ O6 k& A) H. p5 Dhttp://code.ijinshan.com/trac/1 @3 I2 V$ r/ U% L  ^1 X
想做的如此的好,不是那么容易,我暂时没有能力做到如此,很多需要二次开发!
回复 支持 反对

使用道具 举报

发表于 2011-5-7 07:15:16 | 显示全部楼层
本帖最后由 callmechen 于 2011-5-7 07:18 编辑 + ~+ \$ b6 O; W9 s: `8 B; O

: B& O9 V$ L; e很好的帖子。
. q7 n: ]4 ]' w) `# F0 ]( n0 l2 ^* [& M2 c' w
trac这种工具,完全可以上升到楼上所说的任务管理工具的层次。与svn契合,可以实现配置项的对应。用之前公司一个副总的话:任何工作都会有交付物,做完工作但是没有交付物,顶多可以算作完成一半。
! p& Y+ G4 c) Y+ }再加上相关的插件扩展,可以实现任务管理的其它属性,非常不错~
- d5 s4 f& T0 a$ y
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

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

GMT+8, 2019-4-23 22:58 , Processed in 0.062555 second(s), 6 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

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