SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 16886|回复: 12

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

[复制链接]
发表于 2010-9-16 00:23:03 | 显示全部楼层 |阅读模式
参考金山的安装程序,在UBUNTU下的apache+trac(中文)安装脚本,直接执行即可!: M8 i- j& g- {. ]' `1 W3 }
1 E- ]* }, I$ d! N1 y- P; p
#!/bin/bash
1 N+ N! d2 ?3 [4 \7 `#***********************************************************************
  ~: L) a! g: m5 w9 j#install.sh V1.00 2010.08.05#
. j2 J- E% B! x0 q#***********************************************************************
" `* L6 Z* O) }, L4 H, Xecho "######################### install starting!  #########################"
$ N2 f' {8 c! w( S$ g: _" z7 Kdepends=depends
1 J2 [% D+ ]& a  ?9 S1 q$ q9 l# z+ gcldr=cldr& I0 n4 R) H, d# Y/ B/ U
babel=babel
& S- P' j) T% c5 A) U" R2 D
7 R4 B) Q. C# o( r2 b0 W# install apache22 K" P0 S) c7 T) d
sudo apt-get -y install apache24 i  m  M2 L; v* S5 G
# install subversion
" e: W" N: A" I" Zsudo apt-get -y install subversion libapache2-svn subversion-tools
, `% W+ F9 X) U# install sqlite+ \# _5 Q% Q5 ]( m
sudo apt-get -y  install sqlite9 I- Z0 K* w- b8 Y6 y* \0 C
# install python9 |! |+ Z  S: M* S1 n! ?% W! a; B
sudo apt-get -y install python python-setuptools libapache2-mod-python python-subversion
) F! R: {' J" W$ n) N: l# v# install zip6 n. I, ~6 X1 Q- B& X+ i2 B  Y: b
sudo apt-get -y install zip( N# e( m2 c4 S* l) h4 a- s( E0 E) J
# install plugin8 Y2 D4 n" S6 `0 o; a/ w2 O
sudo easy_install simplejson5 p' o' `- m3 q
sudo easy_install docutils
. I6 m. P3 I6 T- d8 L0 D8 ^sudo easy_install epydoc
2 \* z% ~: C3 p+ D( M8 z/ Csudo easy_install Pygments
0 n' b7 {+ j+ O: G% Nsudo easy_install genshi
+ q9 x' U& S. Y: dsudo easy_install ElementTree
8 U' q$ a" S& Fsudo easy_install pytz
4 D  f# s* W0 y* R+ ^3 k8 J+ A5 ^# R+ ], f2 `/ S) U- G
if [ ! -d "$depends" ]; then' P2 [  e% N1 H: B+ h6 [$ }1 r
mkdir $depends3 D; |+ V6 K8 M9 Z7 @, w
fi3 n2 H1 P7 J3 c9 {
cd $depends
$ ]' h1 \# J* s4 I7 e' Y3 kif [ ! -d "$cldr" ]; then0 l7 w  i5 n5 {2 \. j3 F; Z
mkdir $cldr" ^- U# x7 y  U% Z
fi7 g# }# B& E* ^% k3 S3 u7 ^, I
cd $cldr
# S2 G0 `. i, g( H; s% |9 Xsudo wget http://www.unicode.org/Public/cldr/1.7.1/core.zip
' n6 Z& K4 s7 F; hsudo unzip core.zip
- f3 O2 w( {+ s6 Rcd ..
4 W5 e+ R7 _8 K& D7 Q- Hif [ ! -d "$babel" ]; then2 f  s( D- G, T8 m  _8 E$ ?9 c/ N* b7 N
mkdir $babel, Z8 M( E* E3 A' }+ T" o% M
fi; B6 T8 s9 r# p* w! Q5 Y
cd $babel6 ]( N( q2 L3 R, C5 v+ c" `8 ^+ X
sudo svn checkout http://svn.edgewall.org/repos/babel/trunk
5 W& T3 z" b) [8 }& q$ @$ q. j5 jcd trunk
1 C& ]2 U6 d7 m0 @8 ~sudo python ./scripts/import_cldr.py ./../../cldr/common/
3 s" A) d. f2 }5 x/ q( {. fsudo python setup.py install  K& |* I' `9 j% g# Y9 |: M
cd ../..
, G' p1 s6 q9 d6 `/ y& W3 Csudo wget http://ftp.edgewall.com/pub/trac/Trac-0.12.tar.gz
* L! E8 W0 |8 w/ W, fsudo tar zxvf Trac-0.12.tar.gz
7 |' v* m2 _; v" g. r# L  _& {0 Gcd Trac-0.12
3 C& j* i* x/ o4 f' H4 ?sudo python setup.py compile_catalog -f
2 p3 l5 y# D! fsudo python setup.py install) U# ]5 ]: x5 P3 I8 z/ Y
echo "######################### install completed!  #########################"
 楼主| 发表于 2010-9-16 00:44:39 | 显示全部楼层
算了.把整体都写上!
$ Z! k& b+ C$ h/ W下面介绍文件服务器,svn和trac的安装部署过程。) e3 W/ {7 [- [4 x. _
安装配置管理相关软件,新建一个脚本。内容如下,然后sudo执行此脚本!7 L5 T! L; ~; q. b1 u; {# E0 B( m
' D  h; m9 n! S' O; }; C4 m$ d
#!/bin/bash
3 ~" Y" D$ x: w#***********************************************************************
+ u3 l5 t+ {2 l& [! s! z8 R6 {#install.sh V1.00 2010.08.05#% h9 i! {' j$ u' a: c
#***********************************************************************3 q* u  E! B, l8 D
echo "######################### install starting!  #########################"  @/ l$ l+ z0 b
depends=depends$ E+ f1 @0 i  O
cldr=cldr
, g# \3 Y/ ]  S) N! a0 nbabel=babel
% M0 U1 ]5 w" {7 l' P' l
- E9 b- T; a$ f# O3 W, d. x# install apache2
, _6 ]3 ^, ~  k9 o) c. `5 m: ]sudo apt-get -y install apache2
: B% ^: p. U/ t5 g# E9 p7 Y# install subversion
$ m' b1 h2 a7 O0 K- hsudo apt-get -y install subversion libapache2-svn subversion-tools
7 E  q' C2 f8 n, w9 B# install sqlite3 \& o7 c8 }* M- E, K
sudo apt-get -y  install sqlite
4 O4 E$ T: F# T9 ?- v' I# install python+ E9 k8 r/ X* o6 d
sudo apt-get -y install python python-setuptools libapache2-mod-python python-subversion
& x/ F3 I+ y8 G" f: W% K# install zip
" g- P0 x6 g0 p0 Ksudo apt-get -y install zip
; O4 O1 [4 `9 i* c8 q4 w: r9 m# install plugin7 g! T, ^* Y  c) }
sudo easy_install simplejson
3 O# g$ `- B0 g+ P. U% l" `7 A% msudo easy_install docutils
$ Q9 H+ v: m6 a, r; Y# Osudo easy_install epydoc! g7 c3 [5 \4 ^
sudo easy_install Pygments
( P+ H2 m" m* _" U: J! z2 Nsudo easy_install genshi
' X1 t, d  `- T. s4 Asudo easy_install ElementTree
4 \) _! t- f) Hsudo easy_install pytz5 z7 ]  V+ |: _/ ^( g6 o* f

4 e9 s9 W' U) Z6 wif [ ! -d "$depends" ]; then
, Y+ n. ~# |6 f$ H9 @8 K* \mkdir $depends
' G6 f% M9 s# [fi
' c9 Q9 U% F0 x8 [( ~- A! scd $depends. I! d) f' ]1 c. S6 h  R5 _2 S
if [ ! -d "$cldr" ]; then
* _+ g3 G4 u! k/ G. U2 amkdir $cldr6 {& y$ g. Y( S! ]
fi
; j( g. _$ e6 O/ _1 `$ Z* b( fcd $cldr
0 V. ?, _1 w  r/ n- x# v) m  b2 esudo wget http://www.unicode.org/Public/cldr/1.7.1/core.zip
. U  Z: z0 b* X7 Q9 Nsudo unzip core.zip
/ p4 _; f, Q9 b) |cd ..# s3 A7 E: W% o2 q1 j
if [ ! -d "$babel" ]; then+ n8 K+ _9 z, n
mkdir $babel' w1 O% f( @7 B& U- S5 l
fi
4 ]5 c  w4 b/ Ecd $babel+ A: R$ g) b& _  O' X% f
sudo svn checkout http://svn.edgewall.org/repos/babel/trunk6 A% \3 L5 r1 V2 b& T* H
cd trunk
  _# A& E9 s' u. W8 e" g( Tsudo python ./scripts/import_cldr.py ./../../cldr/common/- p# O6 [* C! x0 Q8 V* y- M4 n$ S" z
sudo python setup.py install1 J" A5 Y) E! d; W
cd ../..
. Q3 X/ I6 z4 k8 |0 M' I8 {1 I- _sudo wget http://ftp.edgewall.com/pub/trac/Trac-0.12.tar.gz
7 P0 z2 D4 V% K" B6 W5 Y4 psudo tar zxvf Trac-0.12.tar.gz
: S4 n( Q7 Z2 R  z) @! h$ mcd Trac-0.12
. X1 L! ]( L8 f0 C. usudo python setup.py compile_catalog -f6 |- I! V2 g* C  a# D# Q6 M
sudo python setup.py install. m. S, p: R- [! X: ]! i
echo "######################### install completed!  #########################"         & M- P, a: Y. `0 T% e( a6 O
所有的软件安装完成!下面进行配置库的创建并配置环境!
! ^% D; p! q# E3 Z+ ~5 X设置Subversion版本库的访问权限也有很多方法,通常的做法是,创建一个名为“svn-admin”的组,并将该组拥有访问Subversion版本库所在的目录的权限,同时将需要访问Subversion版本库的用户加入到这个组中(在这里添加的是自己的本地用户和Apache2用户):
6 J: m% ^( d0 S4 q) r9 K# w - e, K5 y1 Z3 p" N, Y9 |5 t4 v
$ sudo groupadd svn-admin( J, s* |* R: V3 P4 Y
$ sudo usermod -G svn-admin -a username
4 c4 G1 J6 {& f' V) W( M$ sudo usermod -G svn-admin -a www-data         * [& |$ R8 @( s4 `. d1 |
创建配置库project1,因为访问模式是http访问存取。给apache2 需要的相关数据开通写权限。7 E8 y+ m; Q* B# |* P$ Z0 z# c

! w" A9 B' z/ x$ }0 [% I  G$ sudo -u www-data svnadmin create /scmdata/svn/project1 --fs-type fsfs( k8 K: p+ M" h: d/ v" \5 B: ~
$ sudo chmod -R g+w /scmdata/svn/project1/db/% q$ o% s2 {% M
$ sudo chmod -R g+w /scmdata/svn/project1/dav/         
. I8 Q$ Q+ s0 O: d9 G创建与配置库相对应的trac环境
- t4 K; O( N) i+ p) g+ p5 L
2 S& U3 [; z  n$ sudo -u www-data mkdir /filedata/trac
- P: k3 v, \2 a/ m& W$ cd /filedata/trac/
& R" _' a7 y3 B4 C; p$ sudo -u www-data trac-admin /filedata/trac/project1 initenv         
2 N3 T8 T; I' U. X% a根据提示,输入相关的信息。创建完成!2 C: n4 a( F  g: G
创建用户验证配置文件和SVN访问控制配置文件,并创建用户帐号!因为下面要用到“SvnAuthzAdminPlugin”模块对配置库进行用户认证,所以用户认证信息统一创建,版本库权限管理分散在项目通过“SvnAuthzAdminPlugin”管理。, G+ m" W; \* b) O
  s5 j6 f. G( j2 X* V* z8 h  ~
$ sudo mkdir /auth_svn_trac+ w* a( H0 c7 U) Z
$ sudo chown -R svn-admin\: /auth_svn_trac
9 `% x+ K) Z0 U$ sudo –u svn-admin touch /auth_svn_trac/auth_svn_trac  c8 Y! X/ V/ Z- E) s# H0 p
$ htpasswd –b /auth_svn_trac/auth_svn_trac username 1234563 j( f' @7 {7 Y- d
$ sudo -u www-data trac-admin /filedata/trac/project1/ permission add username TRAC_ADMIN         
. d  s4 B" l* I0 t把公司logo图片上传到相应的目录,并修改相应的配置文件,操作如下:
0 i2 f( j* ^- P + r: J* F1 a# W6 O" @! x$ f
$ sudo -u www-data cp logo.png /filedata/trac/project1/htdocs/; v: ~1 O) ]# e4 I! L* a! D
$ sudo vi /filedata/trac/project1/conf/trac.ini          
$ z6 G  W+ p& _; f修改内容:: p6 y3 }. c; m1 o2 n
[header_logo], v" D  j" n- N. p4 x
alt =2 b) m3 _& u# u
src = site/logo.png         5 Z9 ?$ \2 Q+ z: }; R% q- |
现在启动trac测试。5 b3 G* Q0 ~" a- w

  m# U7 i8 T. o9 u' G. M# M$ sudo tracd --port 8000 /filedata/trac/project1/         
# }6 U  h- V3 ^1 Q: E9 chttp://ip:8000/
5 c, L4 R8 ]  ~$ J  D. g1 a  Y显示与项目project1相对应的任务跟踪系统。成功!
" v8 }6 L5 u0 a9 p1 v- {下面我们实现apache+svn+trac 的用户认证并安装trac 插件。. W% U+ S, H4 t
根据需要,我们选定为安装下面的6个插件,并依次安装,安装步骤基本一致:
5 q0 O! A: V" j" k' S5 x1、        下载安装插件。0 f" s2 W+ F& k& G2 g/ K" G: W/ o
2、        根据使用册修改项目对应的trac.ini文件。
/ ^9 v, s( C3 ^- P& K/ @! ~3 H3、        重新启动 apache 服务。" y- Z6 q* K! R# d8 Z3 l% _
这里就不一一描述下面插件的安装过程了,每个插件的URL地址如下:
7 D  ]. ^+ k# ?2 B9 F7 TTracAccountManager( ~# t4 ?$ p+ T% d6 ]$ @
http://trac-hacks.org/wiki/AccountManagerPlugin
. S4 A: v" b( a- l; [TracXMLRPC
8 F/ ^, n1 U  |http://trac-hacks.org/wiki/XmlRpcPlugin' a: X( V" T" }' v; r
TracHTTPAuth
+ ?6 K- W4 J5 \  U$ @1 shttp://trac-hacks.org/wiki/HttpAuthPlugin
" \5 g3 p* H$ E+ }Timingandestimationplugin
+ e& L1 ^" }+ Q$ k! rhttp://trac-hacks.org/wiki/TimingAndEstimationPlugin
" K7 H8 s3 b* b( F1 [TracGanttCalendarPlugin
, s# B( H; y2 N7 ^  o- p! u, ?http://trac-hacks.org/wiki/GanttCalendarPlugin: h- @0 ?' Q2 W
SvnAuthzAdminPlugin9 [( z4 o7 G6 Q) A' X! O
http://trac-hacks.org/wiki/SvnAuthzAdminPlugin
7 g$ _. N* O- e2 b4 C配置完成后,修改相应的apache2的配置文件!
" c+ w0 o! V0 v* w* B) Q7 W选择多个trac项目环境, python方式,在apache2 的配置文件中追加以下信息!  X* ~' i) M3 e/ u% u' V
2 n3 E5 ~) v$ ]6 ]  X5 r
<Location /trac>2 U; e! Q: E2 h4 U1 O
    SetHandler mod_python
% c7 v: L& t# p, J/ k; w7 J: L    PythonInterpreter main_interpreter
: v/ ^+ ^/ H% Q    PythonHandler trac.web.modpython_frontend
; F" N+ I9 |& x. u& u    PythonOption TracEnvParentDir /filedata/trac
5 y( f( S" p" P& u5 T    PythonOption TracUriRoot /trac: \0 f1 n. y# H  J" s( g
</Location>         : b# h- @( r& \: t2 Z/ w
附:
8 W" P/ a; ^7 q% eTracUriRoot在某些情况下不是必需的,除非你看到如下错误信息:$ {- M7 N2 S9 p5 e7 l

& d% Z" ?: R. Q1 W" S404 Not Found (No handler matched request to %s)         
: z( u/ O6 U1 G设置apahce2和SVN的整合!为沙盘和项目设置权限!% ^% ^2 g( L# R( f! O- Y  b7 m
修改apache2 的配置文件,在最后加入以下几行!
6 M8 ?5 J9 \9 a* x$ U$ sudo vi /etc/apache2/sites-available/default+ U; ?6 m# O: w3 [, y
5 _: x/ u" C% w. N, ~. S, w
<Location /svn/sandbox>
4 ?/ W6 k" y2 K& y0 E& n  DAV svn
" {/ H3 M, @" Z1 `4 m- \2 X  SVNPath /scmdata/svn/sandbox
% j9 u' z  }1 T( B8 y- H # Satisfy Any: Z7 _6 s- d9 {! ]* h* t
  #SVNIndexXSLT "/svnindex.xsl"" z3 P( R" k& A5 q
  AuthType Basic
0 _, Y& c+ A% V' N/ z, ?' \  L  AuthName "SVN Repository"
( m; [! b( R( V, `9 y+ a# P  AuthUserFile /auth_svn_trac/auth_svn_trac( k% r! I$ b  W  o
  AuthzSVNAccessFile /scmdata/svn/sandbox/conf/authz
% y1 \5 A3 r* j9 a/ D<LimitExcept GET PROPFIND OPTIONS REPORT>  E1 {: }4 ?% B, |0 R& M
    Require valid-user1 @, u0 Z" J. r) Y1 w
  </LimitExcept>% k3 E8 g  c0 V+ M+ ]/ o
</Location>
# C* ?8 C% Q' v' P- k( T<Location /svn/JavaIDE>1 A3 t1 x2 @; U, e' B$ }
  DAV svn
3 G5 n: `6 `) W2 q  SVNPath /scmdata/svn/JavaIDE6 b" Z. V/ _3 X) \. I; j& G9 D
  Satisfy Any( M- W! z- o& ?. b
  #SVNIndexXSLT "/svnindex.xsl"1 m2 ]5 t! L1 o* D! d/ `  N# m
  AuthType Basic
, y$ k6 p) c+ g9 p8 [! G  AuthName "SVN Repository"
: B3 F2 F! d& D  AuthUserFile /auth_svn_trac/auth_svn_trac
( ~+ d8 T& M3 v% m+ a  AuthzSVNAccessFile /scmdata/svn/JavaIDE/conf/authz
" e. e3 Z. j# ~" }6 `: k    Require valid-user5 x; z6 i! G& X3 t' d
</Location>         , I1 G) A* ~* d1 p& \7 C6 c5 r
重新启动apache2, 测试。4 ^: @% o6 D! X
sudo /etc/init.d/apache2 start; u! l- Q! S* t/ g+ f3 r
打开浏览器  ^- M6 S) i- S% O% b! V6 J
http://ip/testinfo
& v8 l% x+ h3 |5 w显示配置库服务器相关的配置信息!
1 |3 T" r: v# I: J0 ^http://ip/svn/sandbox/
( z5 W; P& J, ~显示 项目project1 的配置库文件信息。5 e+ i4 k$ U: b; F3 h" X
http://ip/trac/sandbox/9 ?% Z. y4 C  ~
显示与项目sandbox相对应的任务跟踪系统,把一切软件生产活动抽象成任务(文档、代码、需求变更、bug、处理用户问题等)9 C6 e; [- U* @. C
配置完成!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-16 17:38:37 | 显示全部楼层
自己坐沙发!
: w7 t% F9 G3 i+ r" J自己坐沙发!! h+ f' a  A+ x& E7 i* |

' s0 P4 w: O5 n  D[ 本帖最后由 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 的帖子* i& m/ Q5 `  d  h* a
4 C" A" i$ H# ?4 M
之前没有接触过Trac,不过从楼主的内容来看(自己也查了下trac的资料),好像很强大
# T) ~* o/ `" `" t, j& ]是不是Subversion+Trac的软件管理方式(Trac偏向于项目管理)呀?+ ]& d/ s" E! B# n9 C

- [6 J& T; z# P: Y9 M) L楼主能不能具体点说明下用途。
  G1 R9 Z, k) O& T( Y! u
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-6 15:14:17 | 显示全部楼层
本帖最后由 ths0516 于 2011-5-6 15:17 编辑 ' ?' v6 |+ ]- L+ y8 H

- l; b, ~' s5 w9 e' x# K1 X回复 sophiawang 的帖子
; h5 F- g/ p: e, r6 P+ w) d9 R6 ]7 C2 v/ q2 t
你可以把他当成一个轻重量级的任务管理跟踪系统,把任务可以按照日常任务、需求变更、BUG 或者维护、甚至功能增强等等。看你们如何自定义,然后可以简单的跟踪任务的完整过程(流程也可以自己定义)。还支持很多插件啊,如工作量评估,和时间工作时间等,还有 自定义查询等等!9 s0 x2 T( z2 o1 y
金山使用的就不错,你可以参考看看金山是如何使用TRAC的,可惜他们的代码不开源,资料也比较少!参考下看他们的设置!: f( @1 [3 h2 A
http://code.ijinshan.com/trac/
% ~* u1 \0 x9 m: i' _想做的如此的好,不是那么容易,我暂时没有能力做到如此,很多需要二次开发!
回复 支持 反对

使用道具 举报

发表于 2011-5-7 07:15:16 | 显示全部楼层
本帖最后由 callmechen 于 2011-5-7 07:18 编辑 % Y0 b  `8 r6 S" ]
" @$ u8 Y) m% k5 S
很好的帖子。1 ?4 [1 o8 f" h
8 U6 C1 Q5 ?0 S3 [- J
trac这种工具,完全可以上升到楼上所说的任务管理工具的层次。与svn契合,可以实现配置项的对应。用之前公司一个副总的话:任何工作都会有交付物,做完工作但是没有交付物,顶多可以算作完成一半。5 }' Q( ]. ?6 U
再加上相关的插件扩展,可以实现任务管理的其它属性,非常不错~
- ^# W7 r: b. I2 }6 M# Z  N: D4 k
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

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

GMT+8, 2018-12-11 07:11 , Processed in 0.064952 second(s), 7 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

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