Linux配置subversion手记(包括apache apr, berkeley DB)

最好不要让root用户参与到svn的权限管理和日常的运行和维护工作中来,但是下面的一些安装和配置操作还是 需要root用户来完成的,因为有些操作只有root才能做。

编译安装httpd(root用户操作):

//解压apache2安装包

[root@localhostlocal]#tarxvzfhttpd-2.2.17.tar.gz

//进入解压后的目录

[root@localhostlocal]#cdhttpd-2.2.17

在安装Apache之前需要安装apr和apr-util:

使用发行源代码中自带的apr/apr-util源代码进行安装,你必须手动完成:

#编译和安装apr1.2

[root@localhosthttpd-2.2.17]#cdsrclib/apr

[root@localhostapr]#./configure--prefix=/usr/local/apr-httpd/

[root@localhostapr]#make

[root@localhostapr]#makeinstall

#编译和安装apr-util1.2

[root@localhostapr]#cd../apr-util

[root@localhostapr-util]#./configure--prefix=/usr/local/apr-util-httpd/--with-apr=/usr/local/apr-httpd/

[root@localhostapr-util]#make

[root@localhostapr-util]#makeinstall

#配置Apache的httpd,准备Apache的安装:

[root@localhosthttp-2.2.17]#./configure--with-apr=/usr/local/apr-httpd/--with-apr-util=/usr/local/apr-util-httpd/

//配置apache安装,前两个参数是必须要加的,你还可以根据您的需要添加其他的参数。

//后面的参数制定你要把apache安装哪里

#./configure--enable-dav--enable-so--prefix=/usr/local/apache2/

#make

//安装

#makeinstall

#cd/usr/local/apache2/bin

//启动apache服务

#./apachectlstart

//打开浏览器http://localhost/如果有测试页"Itworks!"出现则证明已经安装成功。

首先下载berkeleyDB

地址:http://download.oracle.com/berkeley-db/db-4.6.18.tar.gz

下这个因为subversion内部使用的管理数据的功能会需要用到。但是后来经过猜测,应该不装也没问题,因为subversion有两种关于这个的模式,不装的话可以用另外种,subversion的解释如下

Thefollowingrepositoryback-end(FS)modulesareavailable:

*fs_base:ModuleforworkingwithaBerkeleyDBrepository.*fs_fs:Moduleforworkingwithaplainfile(FSFS)repository.

但是为了保险我还是装了,具体命令行如下tarzxvfdb-4.6.18.tar.tar

cddb-4.6.18/build_unix/

../dist/configure--prefix=/usr/local/bdb

make

makeinstall

接着安装apr和apr-util

这是个apache的project,全名是ApachePortableRuntime现在最新的版本是1.2.12,不过貌似那个版本是给apache2.6用的,而我们的apache是2.0.x的,所以我用的是0.9.17的。这个要注意下,版本不符合安装会有问题,如果下载的是新版本的aprandapr-util,那么需要新版本的apache包,下面是下载地址http://apr.apache.org/

先装apr,如果下的gz包可以用tarzxvfapr-0.9.17.tar.tar解压如果是bz2包可以用tarxfjapr-0.9.17.tar.tar然后cdapr-0.9.17/

./configure

make

makeinstall这里configure的时候不指定路径的话默认是安装到/usr/local/下

然后安装apr-util解压同apr然后cdapr-util-0.9.15/

./configure--prefix=/usr/local/apr-util--with-apr=/usr/local/apr/--with-berkeley-db=/usr/local/bdb(这步要把berkeley数据库一起编译进去,否则berkeley就白装了)

make

makeinstall

安装subversion

//解压SubVersion安装包(root用户进行下面的操作)

#tarxvzfSubversion-1.3.1.tar.gz

//进入解压后的目录

#cdSubversion-1.3.1

//配置subversion安装

#./configure--with-apxs=/usr/local/apache2/bin/apxs--prefix=/usr/local/subversion

--with-apr=/usr/local/apache2/bin/apr-config--with-apr-util=/usr/local/apache2/bin/apu-config--with-ssl--with-zlib

#make

//安装

#makeinstall

装完后用svnadmin–version查看下是否有信息,有的话说明安装成功

SubVersion配置

//创建库文件所在的目录(svnroot用户进行下面的操作)

#mkdir/home/svnroot/repository

//进入subversion的bin目录

#cd/usr/local/subversion/bin

//创建仓库"test"

#./svnadmincreate/home/svnroot/repository/test

#cd/home/svnroot/repository/test

//看看是不是多了些文件,如果是则说明Subversion安装成功了

#ls–l

#cd/usr/local/subversion/bin

//这条语句将把路径/home/user/import下找到的文件导入到你创建的Subversion仓库中去,

//提交后的修订版为1。

#./svnimport/home/user/importfile:///home/svnroot/repository/test–m"注释"

//不让其他人有该目录的权限,也可以开放权限,我这里是开放了权限

#chmod-R777/home/svnroot

修改Apache配置文件

cd/usr/local/apadche2/bin

//启动Apache

#./apachect1start

#vi/usr/local/apache2/conf/httpd.conf

//在最下面添加

LoadModuledav_svn_modulemodules/mod_dav_svn.so

LoadModuleauthz_svn_modulemodules/mod_authz_svn.so

DAVsvn

SVNParentPath/home/svnroot/repository///svn父目录

AuthzSVNAccessFile/home/svnroot/repository/authz.conf//权限配置文件

AuthTypeBasic//连接类型设置

AuthName"Subversion.zoneyump"//连接框提示

AuthUserFile/home/svnroot/repository/authfile//用户配置文件

Requirevalid-user//采用何种认证

//其中authfile是通过

"htpasswd[–c]/home/svnroot/repository/authfileusernamepassword"

//来创建的

//"Requirevalid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,

//则只能第一个用户可以访问新建库

重启apache

#./usr/local/apache2/bin/apachectlrestart

//打开浏览器访问http://localhost/svn/test/,如果有东西显示就说明成功。

权限管理

1)增加用户

htpasswd[-c]/home/svnroot/repository/authfilewooin

//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,

//完成对用户的增加

#htpasswdauthfile用户名(加入新的用户)

2)权限分配

vi/home/svnroot/repository/authz.conf

[test:/]//这表示,仓库test的根目录下的访问权限

wooin=rw//test仓库wooin用户具有读和写权限

bao=r//test仓库bao用户具有读权限

[test2:/]//test2仓库根目录下的访问权限

wooin=r//wooin用户在test2仓库根目录下只有读权限

bao=//bao用户在test2仓库根目录下无任何权限

[/]//这个表示在所有仓库的根目录下

*=r//这个表示对所有的用户都具有读权限

#[groups]//这个表示群组设置

#svn1-developers=wooin,bao//这个表示某群组里的成员

#svn2-developers=wooin

#[svn1:/]

#@svn1-developers=rw//如果在前面加上@符号,则表示这是个群组权限设置

将这个设置完成后。重启Apache,就可以通过

http://localhost/svn/test

这个URL来访问仓库了,当然,受权限的限制,必须是合法用户才能访问且具有相应的权限

一些备忘:

1.//创建仓库"test"

./svnadmincreate/home/svnroot/repository/test

#cd/home/svnroot/repository/test

创建仓库后,将权限放大chmod-R777/home/svnroot

2.Importfiles

//这条语句将把路径/home/user/import下找到的文件导入到你创建的Subversion仓库中去,

//提交后的修订版为1。

#./svnimport/home/user/importfile:///home/svnroot/repository/test–m"注释"

或直接用客户端的导入工具.

3.客户端通过IE打开svnserver

http://172.16.251.42/svn/test

svn://172.16.251.42/test

4.启动SVN

启动:svnserve-d-r/home/svnroot/repository/test这是启动单库的SVN

如果有多库的话,可以用这个命令:svnserver-d-r/home/svnroot/repository

命令执行后可以用ps-ed|grepsvnserve查看svnserve服务是否已经启动

还可以用netstat-ant|grep3690查看3690端口是否已经被监听

5.创建授权用户

htpasswd[-c]/home/svnroot/repository/authfilewooin

//第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,

//完成对用户的增加

#htpasswdauthfile用户名(加入新的用户)

6.重新部署SVN仓库

需要将目前的某个仓库导出,并导入到另一个仓库(可以导入到该仓库的指定目录下),

要用到以下的命令:

//导出所有版本到stn.dump文件中

#svnadmindump/home/svnroot/sonatina/>stn.dump

//或者也可以只导出其中一个版本

#svnadmindump/home/svnroot/sonatina/--revision10>stn.r10.dump

//或者也可以导出多个版本,比如0-10版本

#svnadmindump/home/svnroot/sonatina/--revision0:10>stn.r0-10.dump

//导入到sonatinab/trunk目录下,如果不指定--parent-dir,则会导入到根目录sonatinab/下

# svnadmin load /home/svnroot/sonatinab/ --parent-dir trunk

相关推荐