SCMLife.com

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 17055|回复: 12

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

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

0 q( b$ Q0 p" m( h#!/bin/bash' G/ o) @; u+ r# F+ Y" b
#***********************************************************************/ l& v0 Z$ c. [! F) S
#install.sh V1.00 2010.08.05#& k+ ?/ g1 I; H6 u
#***********************************************************************
7 m4 J0 D9 k( c1 G# Mecho "######################### install starting!  #########################"
% N1 D, T# S8 W0 S) ndepends=depends' k1 x$ C  w' P& Y( f
cldr=cldr
0 P$ r. Q. ^0 r* z7 Ybabel=babel
7 l8 Z9 _" U8 M+ b- N# _  G3 H1 }. ^
# install apache2
. W' ^0 y+ `3 Dsudo apt-get -y install apache2/ e$ w7 u: i- h7 G" M
# install subversion& T4 |0 |4 i- o2 \
sudo apt-get -y install subversion libapache2-svn subversion-tools
) V- w2 B5 F9 U# install sqlite$ Y6 c7 I/ t3 g. Q* G. B2 x
sudo apt-get -y  install sqlite
* B' c7 N. I+ D# install python
1 g8 H/ |2 _& ~5 o  S% _sudo apt-get -y install python python-setuptools libapache2-mod-python python-subversion) f5 [# M0 n' d' V2 N
# install zip
3 i- |4 h% z; D) K+ }sudo apt-get -y install zip/ i! y/ ~& I7 `) }" o) x: ?4 M
# install plugin8 a2 s/ _# K; I- G  G
sudo easy_install simplejson* o/ ~, N  p9 z6 A& d
sudo easy_install docutils
# M9 S$ w; i/ X, N- x+ ]sudo easy_install epydoc  c& M; d' y3 o  `2 k. ^
sudo easy_install Pygments
5 Q2 S# B- I; gsudo easy_install genshi' Y' j. m% A) y# C* L% g% g' E
sudo easy_install ElementTree
- \& ?1 g. k7 G+ |# Psudo easy_install pytz
0 _( u* x+ k- Q" l, y7 I* J# X5 H2 c/ d0 u3 @
if [ ! -d "$depends" ]; then% r4 G! k7 G6 b' B% ?  u) K
mkdir $depends4 X* ^3 I' j  D+ |' w
fi- J  x2 Z1 v7 `
cd $depends! ~; z1 U, [' l( ]/ ~% ~6 N) J. K  S( s
if [ ! -d "$cldr" ]; then
7 |  X4 V& L; l- {2 xmkdir $cldr) I' I* h  A4 ^$ Y
fi
) S5 Y7 o9 X: S4 _. D& T: j- F5 l) ]: scd $cldr9 ?: u& H' }  `' O3 |+ y6 X
sudo wget http://www.unicode.org/Public/cldr/1.7.1/core.zip
, L+ H) M9 f+ P' Ssudo unzip core.zip9 ^- ^4 a' q- ?4 @
cd ..& c& K7 ?. [# J4 p/ E
if [ ! -d "$babel" ]; then1 y" F/ ]& r# G* b
mkdir $babel; k; P3 g$ v6 X  c- q; m2 m" @: _& ~
fi6 j# Z$ G/ E6 Y0 Q5 X8 v! s  u% U+ f
cd $babel
6 l  `' |- M; I7 v$ U7 csudo svn checkout http://svn.edgewall.org/repos/babel/trunk
8 a6 t: r, X/ y" Fcd trunk
5 M$ l7 _! |- n% j1 Usudo python ./scripts/import_cldr.py ./../../cldr/common/
2 G4 d2 [& G' N) Hsudo python setup.py install: g# H* V$ D$ `$ x# W5 {
cd ../..
" ~; H4 s' w: I& V  ^sudo wget http://ftp.edgewall.com/pub/trac/Trac-0.12.tar.gz# K# q, x3 ?) _$ e+ y) K/ m# L6 u
sudo tar zxvf Trac-0.12.tar.gz
2 j; P9 E! L, N) Z( s. Ncd Trac-0.12
9 ^: P1 U2 E. P( I; D& Vsudo python setup.py compile_catalog -f
5 ?9 M' ?' r$ Gsudo python setup.py install
' s# @9 ?% ^/ a/ X. G- K) Vecho "######################### install completed!  #########################"
 楼主| 发表于 2010-9-16 00:44:39 | 显示全部楼层
算了.把整体都写上!
4 J& P9 v5 e; V8 f下面介绍文件服务器,svn和trac的安装部署过程。5 J9 \" p0 m: h8 |& s1 e1 q
安装配置管理相关软件,新建一个脚本。内容如下,然后sudo执行此脚本!( k( s+ T& `) T

' k+ |& v( o0 q/ T9 E$ y9 p#!/bin/bash
4 L/ O. ?+ U5 P) j6 z#***********************************************************************
- T/ q2 Z, `5 R/ a#install.sh V1.00 2010.08.05#4 _% H0 S0 P  @) q- S
#***********************************************************************
/ i  G2 J+ a0 E+ R. m- O' @$ q) ~echo "######################### install starting!  #########################"& e2 Z6 G# q* T% }% K5 B
depends=depends( P  ?( |" v; c; J
cldr=cldr
  N* [+ \9 P) m8 [- F1 ebabel=babel
7 E9 b" k' [4 d; ]5 y* U! v$ X) z7 k: F/ s' D7 O+ O
# install apache2
4 H$ t8 h0 F9 Q! o' a: @sudo apt-get -y install apache2
( ?0 q' _. e) W" a6 A4 g" w# install subversion: }4 t! B9 V3 z2 g# H0 \3 @" j
sudo apt-get -y install subversion libapache2-svn subversion-tools$ E5 g6 n4 z: J# e4 ~. r
# install sqlite
# G/ t  ~& O9 ?6 zsudo apt-get -y  install sqlite
# z0 r, R) n# T# install python
" R! M3 X* f1 Asudo apt-get -y install python python-setuptools libapache2-mod-python python-subversion
4 B& Z, M& |. C: Y' B# T# install zip# g4 ^4 O8 \' }+ X4 W6 w" m& U
sudo apt-get -y install zip8 n! f4 H# T% e+ C1 \
# install plugin
/ D9 J1 v. X3 m, Esudo easy_install simplejson
% E0 H+ W' s8 s3 msudo easy_install docutils* J' t/ f2 R/ T/ f
sudo easy_install epydoc1 }; x2 g1 v) {4 j
sudo easy_install Pygments
# J, i1 k. e3 x5 @: v# osudo easy_install genshi
: p$ C* |4 C9 b' X" zsudo easy_install ElementTree
; {) `  f4 S2 W* H! @- \sudo easy_install pytz
- F' H- z; l% l, Y9 u; l: X) ?. {/ c/ m0 B0 E
if [ ! -d "$depends" ]; then
! e+ U; W1 c) J9 y9 ^mkdir $depends9 D; X" l5 {1 D
fi) p2 E7 i. c0 e# N) W8 {
cd $depends
3 V: \! P# e* zif [ ! -d "$cldr" ]; then
/ E' F" Y! ^0 W$ H+ rmkdir $cldr
* X  }* a% g8 o* s! B3 r: H! `fi
" n# [4 n) G2 C7 i! p; S, @7 @8 G1 u" ycd $cldr
) U4 L# }5 y# L. _8 bsudo wget http://www.unicode.org/Public/cldr/1.7.1/core.zip
* _! m6 ^2 u$ N( h; E5 _1 ^sudo unzip core.zip/ `2 a4 e1 z  \
cd ..* z; Q! ]1 L& h8 A9 |! a/ [( D
if [ ! -d "$babel" ]; then
8 [- |- h4 ?8 o/ F2 b- Q+ t( h5 pmkdir $babel1 K9 ?5 A8 b, @8 D- @
fi" _5 e4 O' O6 M. C$ l" t
cd $babel- D" H' E, M% t* n6 I7 ^3 u& [
sudo svn checkout http://svn.edgewall.org/repos/babel/trunk
8 H9 G- F. b& H' [- R5 d4 }! Rcd trunk
; S6 ~+ F; L" p$ ^* u! S( Y7 `sudo python ./scripts/import_cldr.py ./../../cldr/common/
; \( `: z, [5 n' ?$ Msudo python setup.py install
+ A' s! D% ]& g* c; {cd ../..# r$ N8 O0 k. ^- d$ G
sudo wget http://ftp.edgewall.com/pub/trac/Trac-0.12.tar.gz
6 P- i6 e5 B+ {- i' U1 w, |sudo tar zxvf Trac-0.12.tar.gz
4 T- `- ^# _# ^+ o0 X0 P/ S; B% E# s) Ucd Trac-0.12
3 |1 a$ j" L. e7 y  Nsudo python setup.py compile_catalog -f5 m. A6 h5 R' Y7 n8 _: D$ g
sudo python setup.py install& W, k* q$ W3 f9 \8 |+ l& R  f
echo "######################### install completed!  #########################"         7 g3 M  u' G6 ]+ T1 i! t! u) L! L
所有的软件安装完成!下面进行配置库的创建并配置环境!
3 B0 ~3 w3 w( t8 ?9 ^, f设置Subversion版本库的访问权限也有很多方法,通常的做法是,创建一个名为“svn-admin”的组,并将该组拥有访问Subversion版本库所在的目录的权限,同时将需要访问Subversion版本库的用户加入到这个组中(在这里添加的是自己的本地用户和Apache2用户):
/ R" a4 t* v2 E8 `  g$ r
$ G4 x: {! F, `$ sudo groupadd svn-admin' t+ E; _3 I7 t2 V9 u) h% L  [% x
$ sudo usermod -G svn-admin -a username
! F4 e  d8 H. t7 h0 _$ sudo usermod -G svn-admin -a www-data         ( U* _$ F# n0 Z( c' R. b- [" n
创建配置库project1,因为访问模式是http访问存取。给apache2 需要的相关数据开通写权限。, D% `# E( T4 I5 l% a( j; X3 a

5 h2 h1 u0 Q+ K0 \$ K$ sudo -u www-data svnadmin create /scmdata/svn/project1 --fs-type fsfs
4 j* d7 l" R. P; B4 g3 Y$ sudo chmod -R g+w /scmdata/svn/project1/db/
2 n6 }& |: [0 p. |$ sudo chmod -R g+w /scmdata/svn/project1/dav/         : p. k7 |1 |; ?' K/ i
创建与配置库相对应的trac环境' j0 a6 N3 I! n7 F% Y
4 M0 Z' n* {7 _6 `# ~6 f2 ?1 i$ M3 S
$ sudo -u www-data mkdir /filedata/trac
& a  X7 a! h3 {2 _$ cd /filedata/trac/9 G6 e) o4 g& U# w  U( S
$ sudo -u www-data trac-admin /filedata/trac/project1 initenv         ; D  x* {& W3 \& @0 n! j
根据提示,输入相关的信息。创建完成!
- L9 z7 a. a$ c+ l4 Q2 n4 w创建用户验证配置文件和SVN访问控制配置文件,并创建用户帐号!因为下面要用到“SvnAuthzAdminPlugin”模块对配置库进行用户认证,所以用户认证信息统一创建,版本库权限管理分散在项目通过“SvnAuthzAdminPlugin”管理。2 D" N. t& Z: x! l( s

6 J; e5 C+ \% h' v1 E  L$ sudo mkdir /auth_svn_trac
, H; B3 P& A' P$ q: s  n" `( [$ sudo chown -R svn-admin\: /auth_svn_trac+ t# s+ v1 B' g! T
$ sudo –u svn-admin touch /auth_svn_trac/auth_svn_trac
; R- x$ O& m7 Q! {7 m. F$ htpasswd –b /auth_svn_trac/auth_svn_trac username 123456
0 F4 I, ~% B2 v7 J5 O2 R' P$ sudo -u www-data trac-admin /filedata/trac/project1/ permission add username TRAC_ADMIN         
* L; [4 W; r7 e2 g  Z' `1 K1 `  Y把公司logo图片上传到相应的目录,并修改相应的配置文件,操作如下:
! a& B* u+ m2 Y4 O2 h* x
8 F- ^" X, m) \/ U$ sudo -u www-data cp logo.png /filedata/trac/project1/htdocs/
4 a1 F. Q9 h8 Q$ sudo vi /filedata/trac/project1/conf/trac.ini           8 x' F1 o* y6 B4 r( [% R/ _. n5 b
修改内容:
+ T5 q& V2 x1 X4 Z  y* r7 `[header_logo]1 `* ?) m* z& A9 A; f3 ]
alt =9 b' q5 L! e) z' E" X7 a3 o2 s
src = site/logo.png         " G9 A: B; {- A) u: P: z- ?
现在启动trac测试。/ ]5 E4 d& u& U7 j

' t% B9 g4 ^/ p$ sudo tracd --port 8000 /filedata/trac/project1/         
( ^/ L6 N. B% b( A/ q' ghttp://ip:8000/+ }2 r4 w; q* \. W
显示与项目project1相对应的任务跟踪系统。成功!# Z/ H& G2 u+ M& ~6 _8 ^
下面我们实现apache+svn+trac 的用户认证并安装trac 插件。% h2 l+ w- O' r$ }5 U, W
根据需要,我们选定为安装下面的6个插件,并依次安装,安装步骤基本一致:
( M& T4 c1 l% E5 @1、        下载安装插件。
' N& g) v5 u3 ?; M* {2、        根据使用册修改项目对应的trac.ini文件。
3 s- B" ^: Y* G" ]3、        重新启动 apache 服务。% S) |7 P: R6 F) x8 N' Q, `; f
这里就不一一描述下面插件的安装过程了,每个插件的URL地址如下:
3 j+ S1 g; B9 s# ]TracAccountManager% ]9 e' Z! r; b" [9 ^! L* ?7 `
http://trac-hacks.org/wiki/AccountManagerPlugin  G1 n1 h. Z& H' x
TracXMLRPC2 M# C8 B- V1 g
http://trac-hacks.org/wiki/XmlRpcPlugin7 I& H3 b# k( o" F& _1 i0 v
TracHTTPAuth
' l) L$ n1 Y2 A  \& Dhttp://trac-hacks.org/wiki/HttpAuthPlugin
7 b. n5 d3 J0 \6 Z  ATimingandestimationplugin
9 E: ^7 w" {8 d( m$ w0 Jhttp://trac-hacks.org/wiki/TimingAndEstimationPlugin! V8 l2 x4 Y; V4 P) e5 R: V5 X5 Z$ ~. _
TracGanttCalendarPlugin5 q' W5 f9 ]& s! H
http://trac-hacks.org/wiki/GanttCalendarPlugin
0 d2 K  l1 T" y/ @: \" g9 oSvnAuthzAdminPlugin& d& G! Q- ]: m$ A7 F  q
http://trac-hacks.org/wiki/SvnAuthzAdminPlugin- `" `' p$ {/ Q8 X  b! m, Y* z
配置完成后,修改相应的apache2的配置文件!
" P# J; [0 h( l4 i选择多个trac项目环境, python方式,在apache2 的配置文件中追加以下信息!( n7 I  B2 E6 y7 T4 G
* r& L$ z8 A/ G
<Location /trac>: I& I% Y9 [* V) ~9 t9 i3 u5 B
    SetHandler mod_python
% {" U  Y& M3 q* a3 V$ b4 i    PythonInterpreter main_interpreter! n% ?# U1 g7 {/ F- s. P. p+ o
    PythonHandler trac.web.modpython_frontend0 V; q) l6 [' s  @( ]; j: i. X
    PythonOption TracEnvParentDir /filedata/trac
$ {. e8 W7 c- R2 _9 R' `    PythonOption TracUriRoot /trac
( p& F* l* }# D0 n</Location>         
5 y+ c2 H: y$ D# V1 H  o3 k附:$ y  r( |9 Q- ]9 J& K
TracUriRoot在某些情况下不是必需的,除非你看到如下错误信息:
* N5 @: ^" o8 E, u* |$ e3 x- H # X9 Q* D% p1 N, L2 c, d/ p
404 Not Found (No handler matched request to %s)         
% Y, w7 `* R8 ?- g" O" a, \# H设置apahce2和SVN的整合!为沙盘和项目设置权限!' C5 W* v' @) \. \! _
修改apache2 的配置文件,在最后加入以下几行!
3 z* m" H3 ~8 \5 h, M' b$ sudo vi /etc/apache2/sites-available/default
+ c1 J7 N' j9 P ; l8 I0 [* L( x8 [; A* |
<Location /svn/sandbox>
5 b: x( [( c: x% ~3 V' p  DAV svn/ g/ h' E  e* D6 j. i. Q
  SVNPath /scmdata/svn/sandbox
( d. r/ X* k1 ]0 X0 H. F: N3 {, w # Satisfy Any
1 ?' d2 o+ {8 P' m. u& \' z  #SVNIndexXSLT "/svnindex.xsl"% }0 V" i0 \4 N( u
  AuthType Basic; s' B* T  b3 t5 S
  AuthName "SVN Repository"
9 _  K0 M9 ?# ?% E: P3 C  AuthUserFile /auth_svn_trac/auth_svn_trac- o" M" S% g0 x! |8 {8 y
  AuthzSVNAccessFile /scmdata/svn/sandbox/conf/authz' n' X7 K6 L4 j8 T! c
<LimitExcept GET PROPFIND OPTIONS REPORT>" d2 D% ~% j9 y+ H8 t
    Require valid-user
3 D7 F6 |/ J2 y, L  </LimitExcept>+ \+ M( d5 G0 u0 N1 h9 g. k/ `4 Q
</Location>
: s+ q1 G3 d  f2 d<Location /svn/JavaIDE>
$ ~0 |; J; D) @' o2 T  U4 M0 b5 m3 n  DAV svn" v; g7 N2 ]6 R) J
  SVNPath /scmdata/svn/JavaIDE
: H; z6 w% G- ^. U  M  Satisfy Any
+ [. J/ W1 J7 X/ c  #SVNIndexXSLT "/svnindex.xsl"/ W- z. ~- J0 u8 B) L( ?* T
  AuthType Basic2 f3 l' F3 f. N8 M
  AuthName "SVN Repository"" |% n! K- J3 O: y3 y* I
  AuthUserFile /auth_svn_trac/auth_svn_trac7 {; i' P; {7 D2 @# T* f
  AuthzSVNAccessFile /scmdata/svn/JavaIDE/conf/authz9 k8 g8 {* _3 V- F3 z  r: u
    Require valid-user
. ?$ V. J" G, x& E( d</Location>         # {9 o2 g1 x/ B" a+ R4 V
重新启动apache2, 测试。
' A7 ]: c4 x& u  K) H) \- ]sudo /etc/init.d/apache2 start& v, a  S) ?7 s% r
打开浏览器* A6 }  P5 K+ _
http://ip/testinfo, T7 ?/ |3 B: }2 @
显示配置库服务器相关的配置信息!5 K! d7 I; B7 ?* G$ _
http://ip/svn/sandbox/
4 W5 P0 a/ Z% k显示 项目project1 的配置库文件信息。0 Z8 n+ q: V" s* y
http://ip/trac/sandbox/
( o8 N; G! g6 f5 x# \* p4 W显示与项目sandbox相对应的任务跟踪系统,把一切软件生产活动抽象成任务(文档、代码、需求变更、bug、处理用户问题等)+ C! f" G1 H0 A" ^) W
配置完成!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2010-9-16 17:38:37 | 显示全部楼层
自己坐沙发!
$ S% u% {( k8 w, _9 y自己坐沙发!
  Y/ g) O2 w0 F& J8 Z' _& Q/ }, a  C! c0 c! K! _: E, [% t, 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 的帖子
3 ]1 e3 A- r5 V. |. F0 F6 g- I" e* }. s- M9 S, p
之前没有接触过Trac,不过从楼主的内容来看(自己也查了下trac的资料),好像很强大& M. f; T- ~! f& x. i3 f
是不是Subversion+Trac的软件管理方式(Trac偏向于项目管理)呀?4 ~( h# I' }5 f* a5 u
6 ^% R/ \. X& e6 u" t: |: \  o1 r
楼主能不能具体点说明下用途。
# `7 S# a* ~8 b! W$ ~, j
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-5-6 15:14:17 | 显示全部楼层
本帖最后由 ths0516 于 2011-5-6 15:17 编辑
2 N  E: O) V; O- s. c7 U
% a! q& |- a  G+ u回复 sophiawang 的帖子$ {4 A& a- B4 A; W- r7 w2 i

) H) ], ^7 {9 d6 w你可以把他当成一个轻重量级的任务管理跟踪系统,把任务可以按照日常任务、需求变更、BUG 或者维护、甚至功能增强等等。看你们如何自定义,然后可以简单的跟踪任务的完整过程(流程也可以自己定义)。还支持很多插件啊,如工作量评估,和时间工作时间等,还有 自定义查询等等!
9 q# r" G, ^" t% m5 P0 j6 t金山使用的就不错,你可以参考看看金山是如何使用TRAC的,可惜他们的代码不开源,资料也比较少!参考下看他们的设置!
" E! Y1 z+ q& ]. rhttp://code.ijinshan.com/trac/  b' e* S! d5 d- }
想做的如此的好,不是那么容易,我暂时没有能力做到如此,很多需要二次开发!
回复 支持 反对

使用道具 举报

发表于 2011-5-7 07:15:16 | 显示全部楼层
本帖最后由 callmechen 于 2011-5-7 07:18 编辑 3 w- x# R* ]9 ?; v/ |" b% ?
) m) }( n- _& l1 Y& D; g, d
很好的帖子。& r( C4 o" V$ }+ u, n  J$ J
( i0 v, I- h* N. Z8 h6 O" K
trac这种工具,完全可以上升到楼上所说的任务管理工具的层次。与svn契合,可以实现配置项的对应。用之前公司一个副总的话:任何工作都会有交付物,做完工作但是没有交付物,顶多可以算作完成一半。
# I/ X; d& i1 E8 N! x再加上相关的插件扩展,可以实现任务管理的其它属性,非常不错~% x+ V; [# z, ~
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

SCMLife推荐上一条 /4 下一条

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

GMT+8, 2019-2-19 03:37 , Processed in 0.063793 second(s), 6 queries , Gzip On, MemCache On.

Powered by SCMLife X3.4 Licensed

© 2001-2017 JoyShare.

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