a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 154|回复: 3

[综合辅导] Linux下SVN安装配置过程

[复制链接]
发表于 2012-8-4 12:07:07 | 显示全部楼层 |阅读模式
1. 采用源文件编译安装。源文件共两个,为:5 g$ H" _8 n/ x9 |- l' s& ]
  subversion-1.6.1.tar.gz (subversion 源文件)
0 _# Y3 y' G) F. G9 w& u  subversion-deps-1.6.1.tar.gz (subversion依赖文件)
. d# S4 f; m0 [; }: [5 H6 c  注意文件版本必须一致,否则很容易产生各种奇怪的问题.
3 \/ P  x0 q- r$ I5 P  f. }  2. 上传以上两个文件到服务器上,解压。解压命令为:
5 C- X3 E; v% \0 A0 G, v, ^; K  tar xfvz subversion-1.6.1.tar.gz% _* Z& D# w$ @
  tar xfvz subversion-deps-1.6.1.tar.gz7 y+ e/ `" B% f8 n
  指令简介:tar 为解压命令,xfvz为tar命令的参数,用于解压tar.gz格式压缩的文件。9 m& k5 o, r8 C3 d" [+ H9 L' ~
  3. 解压后生成 subversion-1.6.1 子目录,两个压缩包解压后都会自动放到此目录下,不用手动更改。
& U6 R4 C; E: l2 P* i( P4 `. U  4. 进入解压子目录:/ H7 F  _2 D( [* H* h* Y" T  A
  cd subversion-1.6.1
# N" a; e7 ^- E# u+ ~7 T  5. 执行 ./configure --prefix=/opt/subversion 进行配置设定并指明安装目录. 注意prefix前是两个减号. 默认不带BDB包, 所以默认使用的是FSFS模式. 若想使用BDB模式需另外下载BDB包.建议使用FSFS模式.两种模式比较参考以下链接:' r3 m3 ]) n$ ?/ t+ @8 l
  http://doc.iusesvn.com/show-21-1.html  W* O, z- e: t! o7 `' F! ~
  指令简介:configure命令用于检查安装平台和目标特征,prefix用于指定路径。
: W  H* E# x4 T! L' p- D# _  6. 执行 make 编译.  A/ T# ^) i" u( v5 I
  7. 执行 make install 安装./ \: H4 @# J; h7 s& {2 Q! W" n9 a
  8. 添加环境变量:
- a7 [* f4 s% ~" M. |6 X% n  vi /etc/profile$ B1 _% S! T# e
  在文件最后加入:) O" G" C" P, i5 I& [% J2 s
  SVNPATH=$PATH:/opt/subversion/bin& l1 o+ }$ `. y$ e( d  Q0 }
  export SVNPATH
% @9 h( V2 ]# ~7 p! ]  9. 测试SVN是否安装成功,执行:# L) n0 V1 `8 W! y8 H0 ?6 j
  svnserve --version
( {8 L/ s  [* D2 B5 V1 S" A& n- a9 |3 l% v: @% k7 H
  如果显示版本信息, 则安装成功.
回复

使用道具 举报

 楼主| 发表于 2012-8-4 12:07:08 | 显示全部楼层

Linux下SVN安装配置过程

</p>  第二章 配置
/ n+ E8 S$ u% g4 @( A% i  本系统采用为每个项目单独建一版本库的策略。配置文件,密码文件,访问控制文件等都放在版本库的conf目录下。所以每次开始一个新项目都必须新建一个版本库,并重新配置各配置文件。还有很重要的一条,要求各组员重新配置客户端,包括服务器版本库路径,本地路径等信息。1 d0 r7 g# f/ ^! d
  1. 建立版本库目录(可建立多个,新建库后以下各项都需重新配置。注意区别安装目录与版本库目录,以下讲的都是版本库目录)2 X+ P) A/ g2 K
  mkdir –p /opt/svndata/repos
, Z) q* h2 g2 }$ i- e  2. 建立svn版本库(与上面目录对应)
7 Q' k( E7 Y$ d/ ~4 P  svnadmin create /opt/svndata/repos0 c- o; A# e7 X1 n1 C
  执行此命令后svn自动在repos目录下添加必须的配置文件.5 M! J+ \; v" L, {  M$ {5 o1 R# G
  注意:版本库不同于一般的文件夹, 直接在操作系统上新建文件无法被SVN识别, 必须使用import等命令将文件导入版本库.
' @7 j. T/ K; Q! w! y" f8 I  此为svn内部指令,create用于新建版本库。请使用svn help查看详细说明。
* g" J/ ~; ~. Q& m; H, c# s  3. 修改版本库配置文件. v& V" s0 \& T& H! }0 r1 x
  vi /opt/svndata/repos/conf/svnserve.conf& X/ W) Q; ?4 ]6 `- F
  各参数功能在配置文件的注释中有说明, 此处配置如下:" X- F+ a) f$ f. B3 q. l/ @9 Z
  [general]3 n+ v! m9 _# k8 T% {( j: W
  anon-access = none # 使非授权用户无法访问
* |  b$ X  Q9 R9 q) X3 H  auth-access = write # 使授权用户有写权限6 s3 M7 H! n0 ]: m+ @
  password-db = /opt/svndata/repos/conf/pwd.conf # 指明密码文件路径3 L2 @# L8 m. {! e4 d
  authz-db = /opt/svndata/repos/conf/authz.conf # 访问控制文件5 s' M) t' x# }8 Q# n! ~
  realm = /opt/svndata/repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。8 ~# p. _; S4 q# c* B$ \9 J
  其它采用默认配置. 各语句都必须顶格写, 左侧不能留空格, 否则会出错., i3 {9 j8 G3 s$ L
  其中pwd.conf 与 authz.conf 在新建版本库时系统不会自动创建,需要自己创建。; C* m4 l5 x' _2 Z" H" S
  指令简介:这是svn配置文件的格式,请按照以上格式书写。
6 c/ ~" r& c8 _4 Z+ U  4. 配置用户
3 z" ?# F# B8 H7 B  vi /opt/svndata/repos/conf/pwd.conf
* Z9 h4 S+ ]2 f/ R  输入以下内容:& D% V6 X) F5 L5 J3 ~
  [users]
# o# N4 e& Z; l5 I  username1 = password14 w  Q8 _9 ]  K* m9 g! W
  username2 = password2
$ \/ L( Z5 J3 D9 Z1 h0 N" C( l6 X! z
  可以添加多个,此为用户名密码对。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-4 12:07:09 | 显示全部楼层

Linux下SVN安装配置过程

</p>5. 配置权限6 L# v; u3 X7 j8 J9 i& u
  vi /opt/svndata/repos/conf/authz.conf
8 a  c0 b0 x) N  指令简介:此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,具体请参考svn手册,以下是简单例子:
5 d$ ]% }% p& ^( @2 x! w  [/opt/svndata/repos]+ J% u" R8 c/ u/ e$ h+ o
  user1 = rw
% ~  H3 J) x# c/ c8 l; f  user2 = r$ S9 ~& [* R# r& L
  6. 使用import导入文件, C4 z) x: r2 r; ]% g
  新建好的版本库是空的,需要导入工作目录。% ~. D- g3 K: `/ |, P
  $ svnadmin create /usr/local/svn/newrepos+ W( K: |6 ?, J; w2 `; O% z
  $ svnimport mytree file:///usr/local/svn/newrepos/some/project
- i$ O: q2 ~& [9 x8 G1 J( b$ F' U! D  但是在导入后,用来的目录树并没有转换成工作拷贝,为了开始工作,还是需要运行svn checkout导出一个工作拷贝。因为导入后,文件在版本库中是以特殊的形式存在db文件夹中的,不能以明文的方式查看。必须使用svn checkout导出工作副本才能以正常方式查看。
  @) r( q5 g% o  J7 ?" b  7. 启动服务
! K6 q& y! s) \/ r( Y+ m  执行svnserve –d –r /opt/svndata/repos/ 启动服务, 以deamon方式运行。' v4 ^  x0 N1 i) j% v  A8 g6 h
  本系统采用svnserve方式, 这是小团队项目的推荐方法. 这种方法维护最少, 配置最简单.+ j0 o' N$ [$ V9 X5 Z( u" |
  指令简介:此指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,可以使用“--listen-port=”或者“--listen-host=”来指定其它端口。-r选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。6 w4 Y6 [) i+ E7 o  Y
  使用以下命令检出:(svnserver方式)
  E0 {! Q. K0 |8 p; u  K  svn checkout svn://127.0.0.1/dir$ r9 `4 a/ G9 P& S8 z/ l9 X+ y
  以上为示例。IP需要根据具体情况调整,dir为版本库路径,若在启动时已指定则可省略。, w+ a/ |6 g! J% W0 y
  版本库信息在版本库文件夹里,所以要删除版本库只需要删除版本库所在的文件夹即可。1 I7 X7 g) I3 t0 b1 o' k9 o
& v4 X- r1 r% s9 p5 R" [, h
  另外工作副本只是自己维护的文件夹,可以用Windows直接删掉,对别人没有影响。千万不要使用版本库的删除命令,否则版本库里的内容也会被删除。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-4 12:07:10 | 显示全部楼层

Linux下SVN安装配置过程

</p>  8,服务自动启动脚本
: ]$ x, Y; F( o, w  01 #文件名svnserve,存入/etc/init.d下,root权限700* f3 ?+ j# X) J' ^% D1 K% r  u, `
  02 #!/bin/sh
3 }3 H3 {* N3 M# C  03 # description: Svnserve auto start-stop script.2 [$ w, ~4 i" Z" \+ O% Y
  04 # chkconfig: - 20 80* q8 b4 i4 V/ s3 f
  05 #
' w0 F8 e4 S3 Z6 O  06 . /etc/init.d/functions
( t  W' X3 p( p7 B  07
3 ~" w9 |# B" z7 m( h  08 SVN_HOME=/usr/local/subversion/bin3 {! V4 E# o# d! [$ {. j4 B/ j
  09 SVN_OWNER=svn  m  I" x; V/ _' }5 b  p
  10 if [ ! -f "$SVN_HOME/svnserve" ]4 a& d# W% _5 g" \
  11 then
- }* L3 s; v7 E! D+ j* v% }7 ~' a  12 echo "svnserver startup: cannot start"
7 |1 [, L% a' P- A% m  13 exit: _# V; O" O1 N+ T$ f* @
  14 fi
$ X- y6 X: |7 h+ ?. a  15
  ?2 S9 ?; a- z3 ]  16 start() {
4 N) M' F& x# \5 _" u, a# w4 j6 V  17 $SVN_HOME/svnserve -d -r /root/svndata/dzpai
- [" n0 f2 l1 J: q1 O7 i  18 echo "svnserve is runing... "
) S" Y$ N( \9 m& y% F( L  O$ N  19 }
+ f! n+ l/ b1 L( c0 y9 O7 Y9 C( J8 g  20
  B3 Y$ C( |5 r, L6 r( c  21 stop() {
# {7 i/ ]5 [: Q$ C, z0 {' D) G  22 killproc svnserve
1 ~0 ]8 N& z/ h# X9 W- s  23 echo "svnserve is stoped"
% y* D5 A2 ~9 L* i9 g! L$ e  24 }
- x' e6 q: g$ H/ |8 I; x9 S8 d  25
* G# c1 g: V6 V! Z$ i  26 restart() {9 E- i1 A( ], ]" j
  27 killproc svnserve
0 N8 p) d) t. h& l  28 echo "svnserve is stoped"
% r9 i" {. i+ R9 [  29 $SVN_HOME/svnserve -d -r /root/svndata/dzpai
8 X- [7 j0 L4 M- }" g7 D  30 echo "svnserve is runing... "% o$ z6 M$ _% A
  31 }
7 P$ y0 {4 _6 P$ n- n% k  32  b; r, w! H" Q/ l; W7 P0 L6 D$ X
  33
( U& i& ^# q" z  34 # See how we were called.
2 P+ c, S' o* a' ^+ ~. @: B  35 case "$1" in
7 k' b  l& w; E5 X( L2 ]  36 start)
4 }( Q( Q5 J7 T( I% i/ A. {  37 start2 }% `. D* y* V7 b
  38 ;;
1 i: {! Z) a* j  39 stop)! V2 j% w1 c( E& I" x
  40 stop
) v! z; X7 Q, i  41 ;;
2 m) `5 R$ o: M4 p" o  42 restart)9 K3 b* }% B+ p8 J  ]; L
  43 restart
/ C- K8 M" p1 q+ g8 s* Q  44 ;;! h. O0 F7 q$ ]0 m( B
  45 esac: c' q9 O  _' Y/ r- |. u
  这个脚本是可以正常工作的。
- d2 e4 p- X1 _9 X- H' f  chkconfig --add svnserve( e) O+ w2 x* `( ]% W' ]$ A4 C9 s
  就可以ntsysv自由在启动项里进行设置了
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-5-21 14:24 , Processed in 0.219415 second(s), 27 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

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