SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 16159|回复: 12

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

[复制链接]
发表于 2010-9-16 00:23:03 | 显示全部楼层 |阅读模式
参考金山的安装程序,在UBUNTU下的apache+trac(中文)安装脚本,直接执行即可!0 p; C  {0 \$ y! A* }- T% o+ t

/ F/ W0 l+ [  L/ |3 [4 y  v#!/bin/bash4 o7 U3 ]1 f& W2 l+ ^4 }- ^
#***********************************************************************$ N+ q* R) l5 m% l6 z; L
#install.sh V1.00 2010.08.05#
/ X# c! a5 G+ @" l( a#***********************************************************************, U4 Q  Z2 e, y( y, D7 l0 P5 G
echo "######################### install starting!  #########################". ^" ^7 o- h" `+ C$ i) A+ Q
depends=depends; N* ~: V% b' P+ B8 u2 t- ^4 I
cldr=cldr
/ O/ ?4 N$ K+ e/ ~- Rbabel=babel
& X4 y, [6 \1 \, {. K
- S! Q/ M  P2 d5 w, O% B# install apache2
: J& r5 G4 q3 Ysudo apt-get -y install apache2# _7 f6 y4 y  a" s7 u
# install subversion
- z3 W* N- _8 Y0 n. ?8 Wsudo apt-get -y install subversion libapache2-svn subversion-tools
6 a( m+ z, _4 I  ]' t( S- o# install sqlite* L: B9 N- D* Z: U) w3 N
sudo apt-get -y  install sqlite3 W! Y7 w+ d1 P0 e
# install python$ W' ^1 s1 d( I
sudo apt-get -y install python python-setuptools libapache2-mod-python python-subversion
9 _; N' k# w6 X# install zip  g3 |4 v( H- P' j7 a6 n
sudo apt-get -y install zip
/ ]0 C: p/ x* E; @# install plugin
( a' ?: [, B% v/ Q! Xsudo easy_install simplejson
9 C7 @) t$ t, W! m* E3 b5 ]sudo easy_install docutils  S7 M1 ^8 z# b" [2 P& C$ h) r/ e
sudo easy_install epydoc
9 ]. O7 Z) \( T  O8 k. x% S' Nsudo easy_install Pygments
$ N" s& c  r( K, q9 _/ K0 l9 rsudo easy_install genshi
# u6 {+ q0 j" e* L6 t; {sudo easy_install ElementTree1 m( b8 T$ J1 h' r
sudo easy_install pytz  o9 Q3 ]: ]" V0 ?& Q2 G; r

' V& I, `1 u1 U9 fif [ ! -d "$depends" ]; then) ?2 S- \! Q" f: g, Y
mkdir $depends
+ B6 S' R& O3 g0 Vfi7 d/ V1 p6 k% I9 @5 I
cd $depends
% D/ |! y  Q5 c$ O+ B( dif [ ! -d "$cldr" ]; then
8 ]* J+ [- _! f) ^( \$ emkdir $cldr, W2 S# p5 E0 m$ a/ q
fi
6 X" x# }2 u7 y. k0 v; Rcd $cldr
0 O% P6 {. `8 l  P$ V6 isudo wget http://www.unicode.org/Public/cldr/1.7.1/core.zip( E% J, j, J5 _6 z  E
sudo unzip core.zip
0 I! ]' _* p+ N$ Zcd ..
' _. A5 n3 g- e$ G% G' A! L) {if [ ! -d "$babel" ]; then1 b: S) U! R3 D, c8 w
mkdir $babel
8 V3 G' }7 l- A6 n* ]fi
# J: E( z6 ~/ h% |  y& D3 kcd $babel
$ D/ Q5 N$ [. v/ Y6 Tsudo svn checkout http://svn.edgewall.org/repos/babel/trunk4 i  G* S$ ?6 {3 y+ l5 I8 p
cd trunk
  g6 {4 I4 A/ J, dsudo python ./scripts/import_cldr.py ./../../cldr/common/- a! g; d% O7 m4 m
sudo python setup.py install6 C8 [1 {. W( g6 b5 e
cd ../..
; j6 X6 C) g4 ?; g# U7 K, y" S7 Wsudo wget http://ftp.edgewall.com/pub/trac/Trac-0.12.tar.gz; X. L% S3 L8 s! u$ |0 g6 a' R
sudo tar zxvf Trac-0.12.tar.gz
) b' h  S5 o" }. i3 Rcd Trac-0.12% i9 r; x& A$ k8 ?( ]
sudo python setup.py compile_catalog -f
; o$ x+ r" _) n9 q# a* q& \: H$ isudo python setup.py install0 c$ ?2 L$ Y- j; o8 m# C1 p5 L1 H1 r
echo "######################### install completed!  #########################"
 楼主| 发表于 2010-9-16 00:44:39 | 显示全部楼层
算了.把整体都写上!! r) z& u1 q) B  Z
下面介绍文件服务器,svn和trac的安装部署过程。5 m* D- {7 ?7 S* d, H- ?9 A
安装配置管理相关软件,新建一个脚本。内容如下,然后sudo执行此脚本!' Q# X. j$ N- S. Q$ n, W$ Y
; n! D* u* v; D% F
#!/bin/bash$ D1 G- S3 b; A4 F( b2 N
#***********************************************************************8 Q( r$ E; M7 l; l; L
#install.sh V1.00 2010.08.05#4 O7 r$ L& W. z0 G. x
#***********************************************************************# C# Q! a9 t- O* F/ v$ w) I0 \
echo "######################### install starting!  #########################"
# P6 J& h8 T0 e2 z! F* Xdepends=depends1 w. A8 v! o4 c- s$ V
cldr=cldr  U5 c0 R! {" U7 ^- _4 u
babel=babel( h& |9 U2 w) H5 p% e8 B# A3 Z
" j# U2 L) P# @/ s7 F6 L5 l, W/ `
# install apache2
9 u: E- `6 ?- o2 ~  }. S8 R2 J2 @sudo apt-get -y install apache2
- x+ E# \, n& H  u1 m! R# install subversion; L5 R$ k+ A4 W, a& O$ k
sudo apt-get -y install subversion libapache2-svn subversion-tools
* k4 l, _  X7 I8 B7 \0 W) Q: i# install sqlite
( w- Q: ?+ ~2 lsudo apt-get -y  install sqlite# u1 A! g3 _, v! |* M" @  S
# install python. I3 j+ ?. k: C2 K, e1 n  L
sudo apt-get -y install python python-setuptools libapache2-mod-python python-subversion
( z0 ]9 O# t3 Y# install zip6 P+ ]' M( C$ C6 d
sudo apt-get -y install zip
/ p& H3 a3 t+ H$ h. A5 _. Y# install plugin4 U% e' {- u! N- q8 u6 n+ \: T
sudo easy_install simplejson
$ o& z) s0 J. Ysudo easy_install docutils! j7 K! ]$ \) _, C; A
sudo easy_install epydoc* l1 G) D; l, Y' h. N8 P. n
sudo easy_install Pygments  Q2 `# m2 n5 V6 D* f
sudo easy_install genshi
7 X' \7 s+ r. j. M6 Nsudo easy_install ElementTree
& A% C9 X- ^. l6 D3 Y8 Qsudo easy_install pytz
/ O7 n$ ]1 }! j9 L9 W0 p* O0 f* k2 e4 L' K) N& k0 l
if [ ! -d "$depends" ]; then2 z8 Q8 @( h  b- Y1 l7 U
mkdir $depends% k* p% t' _$ T' o3 l0 W0 ~
fi) i; g' J$ W. N" a! j0 p7 K
cd $depends& a0 n  W: _" q* M8 A  D& x
if [ ! -d "$cldr" ]; then6 a, W- }3 T$ f' W& q
mkdir $cldr
) @% m$ z2 |- Y) Afi
+ G  Y/ {4 |, j3 U  J1 ^cd $cldr
/ C+ {7 Q5 V* |# [/ \, w% ksudo wget http://www.unicode.org/Public/cldr/1.7.1/core.zip9 g) z! V) @9 U: \0 [5 S  {
sudo unzip core.zip: E& ]+ R9 V9 h5 S
cd ..
% ?! r) L# M" E: p7 T4 bif [ ! -d "$babel" ]; then
+ R* h' W. O( Pmkdir $babel
' k; c9 n! }/ p- c! B# pfi! V, X$ d9 H2 H/ n0 h3 j" L
cd $babel
0 Y* i% n! `5 {! Z6 a' Ksudo svn checkout http://svn.edgewall.org/repos/babel/trunk
1 |6 s- G8 d3 T5 J# |/ H* zcd trunk. Y# R7 j, c; Q1 R3 f
sudo python ./scripts/import_cldr.py ./../../cldr/common/
7 d: ^4 Y' C5 G9 e2 t; _: |sudo python setup.py install0 }( T) |2 h8 j) |8 E& G. v
cd ../..  \$ O- T7 g9 G0 G, ]1 V
sudo wget http://ftp.edgewall.com/pub/trac/Trac-0.12.tar.gz) s. i+ `$ I3 _( S
sudo tar zxvf Trac-0.12.tar.gz
/ w6 i/ c# d# M( j' Gcd Trac-0.12
: D; U. w) e) J3 [4 Fsudo python setup.py compile_catalog -f
* ^* U( E2 {3 R3 Xsudo python setup.py install* U- N( h" n5 c2 M( O
echo "######################### install completed!  #########################"         4 [% g. x. J5 H$ X) y
所有的软件安装完成!下面进行配置库的创建并配置环境!
4 k* l7 J. S* ^: w7 \) x+ L设置Subversion版本库的访问权限也有很多方法,通常的做法是,创建一个名为“svn-admin”的组,并将该组拥有访问Subversion版本库所在的目录的权限,同时将需要访问Subversion版本库的用户加入到这个组中(在这里添加的是自己的本地用户和Apache2用户):
8 O' Z! D" k+ }
: U0 F; [0 n2 K1 P$ sudo groupadd svn-admin0 M3 V: O7 _1 k: C7 H
$ sudo usermod -G svn-admin -a username& S5 t. _6 s1 q0 n
$ sudo usermod -G svn-admin -a www-data         " I' O" |, j6 X
创建配置库project1,因为访问模式是http访问存取。给apache2 需要的相关数据开通写权限。7 n% v/ E8 v. E" m9 c( l" J
2 y, C' F# P- f: a: J; S
$ sudo -u www-data svnadmin create /scmdata/svn/project1 --fs-type fsfs
+ e* b% \/ Q5 B3 A$ sudo chmod -R g+w /scmdata/svn/project1/db/
3 m, M/ j, I( w0 R3 Q$ sudo chmod -R g+w /scmdata/svn/project1/dav/         , {0 R" B/ v9 L, n% f4 q4 {
创建与配置库相对应的trac环境8 ^2 P. _5 w* G4 K

2 E' X2 J" A8 V1 P3 c4 F! K$ sudo -u www-data mkdir /filedata/trac4 a4 M  a: t! K& [- \8 I) G
$ cd /filedata/trac/" R/ \; S/ f$ Y6 Q- k
$ sudo -u www-data trac-admin /filedata/trac/project1 initenv         
! z/ f3 L1 c/ ?! C) V' y/ n; y根据提示,输入相关的信息。创建完成!' i. ~( U4 y% b5 R
创建用户验证配置文件和SVN访问控制配置文件,并创建用户帐号!因为下面要用到“SvnAuthzAdminPlugin”模块对配置库进行用户认证,所以用户认证信息统一创建,版本库权限管理分散在项目通过“SvnAuthzAdminPlugin”管理。
: {! {0 s" \( j* l
9 \+ y. h- W7 \8 V$ i- }$ sudo mkdir /auth_svn_trac
. S- t0 B' V" k) E( F4 `$ sudo chown -R svn-admin\: /auth_svn_trac4 K7 R; _2 \9 V
$ sudo –u svn-admin touch /auth_svn_trac/auth_svn_trac# u/ E- m7 I: N9 i8 g: Q+ L
$ htpasswd –b /auth_svn_trac/auth_svn_trac username 1234568 _/ X; r4 Q6 c; n7 @$ y
$ sudo -u www-data trac-admin /filedata/trac/project1/ permission add username TRAC_ADMIN         
+ ^: o. N/ g, n% N# {7 a3 |把公司logo图片上传到相应的目录,并修改相应的配置文件,操作如下:: y7 e# l# o9 _6 g* [0 `7 x

# e! m# D% R* u, d7 V4 A+ Y6 s) k6 y$ sudo -u www-data cp logo.png /filedata/trac/project1/htdocs/7 S0 H& d0 Z$ ?9 w4 j4 N
$ sudo vi /filedata/trac/project1/conf/trac.ini           0 ^. b5 v4 F0 Z5 c5 Q7 X8 j
修改内容:
9 m- R" C3 R  P0 f/ p[header_logo]
2 u( {2 h* H4 k3 \alt =5 [7 A  C4 V7 g' U8 \
src = site/logo.png         # a+ K, Z' T, g3 P' R7 t" n! a5 {
现在启动trac测试。1 A; J* O4 h+ L/ Q" C& {5 l
! I2 ?& {/ |8 E$ s) N8 F; R1 M
$ sudo tracd --port 8000 /filedata/trac/project1/         2 ~. P7 I! t  F% L
http://ip:8000/
1 q2 O+ j( _8 V/ n2 e; H显示与项目project1相对应的任务跟踪系统。成功!. Q) h2 T+ o% u  K9 t) E: _
下面我们实现apache+svn+trac 的用户认证并安装trac 插件。
1 {" [3 G* ?8 }' [# g! d根据需要,我们选定为安装下面的6个插件,并依次安装,安装步骤基本一致:
& O/ E& }) i* o  r. }/ a1、        下载安装插件。7 P  n# y7 ~* ~- V$ y, ~; `
2、        根据使用册修改项目对应的trac.ini文件。
* M9 _0 J7 }6 R3、        重新启动 apache 服务。
( ?$ R" N" a7 |- D9 G' W这里就不一一描述下面插件的安装过程了,每个插件的URL地址如下:
( R. ?# v/ P2 k. lTracAccountManager7 @- n( a$ [2 H" S& B
http://trac-hacks.org/wiki/AccountManagerPlugin
+ Z5 B( j, ?- T  p1 s+ n+ i9 LTracXMLRPC& f: u, J& K8 j
http://trac-hacks.org/wiki/XmlRpcPlugin
5 X! C, }$ ]8 n3 t0 [7 zTracHTTPAuth# e  e9 j) x: O# Q: a* n
http://trac-hacks.org/wiki/HttpAuthPlugin# E  g* s* x8 P
Timingandestimationplugin: j9 r7 H% h0 r( ~/ m$ v/ Y% Z
http://trac-hacks.org/wiki/TimingAndEstimationPlugin
; E5 n2 m# P0 `# i  n4 x; e5 xTracGanttCalendarPlugin8 J' m* ], Y9 h8 o+ |+ e7 L; u
http://trac-hacks.org/wiki/GanttCalendarPlugin
, l! n. [* |) |" ]8 ~5 JSvnAuthzAdminPlugin
& M& g# s" T# k+ Chttp://trac-hacks.org/wiki/SvnAuthzAdminPlugin, C8 M) k6 a3 N$ R; ?
配置完成后,修改相应的apache2的配置文件!
' V# n4 G: I/ Z- }' ]& g: T选择多个trac项目环境, python方式,在apache2 的配置文件中追加以下信息!4 W* \1 e+ g% U! D* l% o6 m$ ?4 e

5 P5 e# D& x4 W4 X% S* |+ S<Location /trac>
0 y. T1 |  n7 C  N7 x( S' T. N    SetHandler mod_python) U6 t5 Q0 ~1 i0 b- @
    PythonInterpreter main_interpreter( b3 ^! ?7 ^2 ?" c6 ^+ c) B+ B/ A
    PythonHandler trac.web.modpython_frontend
; l" L' z. G0 X2 n6 r    PythonOption TracEnvParentDir /filedata/trac
/ P8 g( ^. R3 o% P) Z% F) a  y    PythonOption TracUriRoot /trac
# e& [' M  ^) ?! L</Location>         
6 ^1 j0 h; P! s. R) b' ~附:
2 T3 R( D3 }7 [1 z) y6 jTracUriRoot在某些情况下不是必需的,除非你看到如下错误信息:8 J( @5 C& \; m* B6 }
0 b& M6 S6 K8 O4 n) r
404 Not Found (No handler matched request to %s)         
" z6 t- S( I) J设置apahce2和SVN的整合!为沙盘和项目设置权限!# ?) v% D( u, v
修改apache2 的配置文件,在最后加入以下几行!4 a0 j( r( e/ S* B
$ sudo vi /etc/apache2/sites-available/default5 B% p" J" s% E& X, }

& ^: L2 ^. F1 H. M<Location /svn/sandbox>; Y7 Q; \6 G. ?* H) W8 b& ~' L
  DAV svn
6 ]& U0 @$ J5 w  SVNPath /scmdata/svn/sandbox
. l. I2 X+ f3 h9 ~8 r/ K  W9 m # Satisfy Any
# M  I3 M* Q9 j7 ^  #SVNIndexXSLT "/svnindex.xsl"
7 d4 I& J& u) Z# B: g. d  AuthType Basic- {6 I9 c6 u% e4 x6 l+ p
  AuthName "SVN Repository"" b9 B; ^, u5 H; q4 H6 V
  AuthUserFile /auth_svn_trac/auth_svn_trac
# d( f' Z7 m( J0 Y6 o6 \  AuthzSVNAccessFile /scmdata/svn/sandbox/conf/authz. z: |5 P5 O% \" n
<LimitExcept GET PROPFIND OPTIONS REPORT>3 M+ S1 A* q! C
    Require valid-user
) p, y. }$ b5 d! R  </LimitExcept>
/ D1 t; h# h+ L</Location>
7 C; _. n+ ?; J+ }' `  C& m' |<Location /svn/JavaIDE># r" |2 N  _# N
  DAV svn
& O3 D# F1 g, m, i: L  SVNPath /scmdata/svn/JavaIDE/ p, q+ N8 A+ l2 O6 [# `/ x4 I
  Satisfy Any4 N! w% f: A& G% e
  #SVNIndexXSLT "/svnindex.xsl"
; w! L# j$ R' Z! c+ N( w& w$ R6 T/ L  AuthType Basic2 F1 ~- ~4 ~- O5 Z
  AuthName "SVN Repository"# \5 w3 T/ f3 }: t1 r( e: z. Q
  AuthUserFile /auth_svn_trac/auth_svn_trac; L: N! `4 g0 s3 [) L9 d0 C
  AuthzSVNAccessFile /scmdata/svn/JavaIDE/conf/authz1 x$ t* R" W1 H
    Require valid-user1 _; o( r( r- B$ B
</Location>         ! J1 c; h1 C3 V6 s6 {9 k1 u
重新启动apache2, 测试。
$ ?) _9 x# Q: Asudo /etc/init.d/apache2 start
9 [8 l  _: {! Z! b' |打开浏览器
( A7 E0 {* D1 Y' T& A! {. s& U+ fhttp://ip/testinfo
! O1 i4 r  J2 i. u( ]9 s显示配置库服务器相关的配置信息!9 T% _, K8 A! b3 e
http://ip/svn/sandbox/
! T* E4 y; {$ H. K. {" H6 n显示 项目project1 的配置库文件信息。) y# d. k: k$ c
http://ip/trac/sandbox/+ z: n! [1 p" V2 ^* z1 {# V/ ?) u+ @
显示与项目sandbox相对应的任务跟踪系统,把一切软件生产活动抽象成任务(文档、代码、需求变更、bug、处理用户问题等)
- Q3 f. U0 \, u2 m. N配置完成!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-16 17:38:37 | 显示全部楼层
自己坐沙发!
3 i9 q& t2 p* J+ c7 U' c. j# `! `自己坐沙发!( U+ Z( X4 H/ d  y! p
9 [. G/ {0 X, D- H1 g
[ 本帖最后由 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 的帖子  U1 x& l3 e4 e7 q$ u( b. ]

5 J" W7 h: N& D! c之前没有接触过Trac,不过从楼主的内容来看(自己也查了下trac的资料),好像很强大
4 |: h# k- ]3 f  n3 P/ Y, {是不是Subversion+Trac的软件管理方式(Trac偏向于项目管理)呀?
& x3 u' N6 s( p$ y- \- u' @2 ^; h- C# h% i2 [( N, g
楼主能不能具体点说明下用途。
) A: y, S! f4 K! |1 [4 r# [
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-6 15:14:17 | 显示全部楼层
本帖最后由 ths0516 于 2011-5-6 15:17 编辑
8 s4 q. N+ R9 F6 A+ v% b
* Q  w) o5 @+ x8 M$ L  |  r回复 sophiawang 的帖子
- r" [, x6 O  v* F0 q# `# j- p; m6 p- l5 k% [
你可以把他当成一个轻重量级的任务管理跟踪系统,把任务可以按照日常任务、需求变更、BUG 或者维护、甚至功能增强等等。看你们如何自定义,然后可以简单的跟踪任务的完整过程(流程也可以自己定义)。还支持很多插件啊,如工作量评估,和时间工作时间等,还有 自定义查询等等!( {! l/ r9 I* x! G2 @6 G
金山使用的就不错,你可以参考看看金山是如何使用TRAC的,可惜他们的代码不开源,资料也比较少!参考下看他们的设置!) D1 [9 _3 d$ B$ L2 d, f
http://code.ijinshan.com/trac/
6 Z5 M  X$ [) N/ B) ]) K想做的如此的好,不是那么容易,我暂时没有能力做到如此,很多需要二次开发!
回复 支持 反对

使用道具 举报

发表于 2011-5-7 07:15:16 | 显示全部楼层
本帖最后由 callmechen 于 2011-5-7 07:18 编辑 . k2 I/ S$ O4 r) D5 W7 I

. }! E3 Q* u4 M7 Q$ i. Y: {很好的帖子。
. @" v2 ?1 z$ Y$ e: ]8 l, O0 }: s+ y* J9 b5 Q' F# y3 l& n$ X
trac这种工具,完全可以上升到楼上所说的任务管理工具的层次。与svn契合,可以实现配置项的对应。用之前公司一个副总的话:任何工作都会有交付物,做完工作但是没有交付物,顶多可以算作完成一半。' a8 y/ g# W" s" ]
再加上相关的插件扩展,可以实现任务管理的其它属性,非常不错~
& B4 u  A$ v6 O; o* n6 p" Y
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

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

GMT+8, 2018-6-19 20:31 , Processed in 0.072669 second(s), 6 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

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