在RHEL4上安装subversion1.4.2

在RHEL4上安装subversion1.4.2

windows上使用svn已经有一阵子了,最近在准备svn备份策略,想配置一台linux作为svn的备份,先拿个虚拟机做实验,搞定了再实战。

1、在vmware 5上安装RHEL4U2
安装过程中什么组件都不选,像apache、ftp、smb这些。主要想安装好系统后手动安装最新版本,反正在定制软件时什么勾勾都不选,包括图形界面,装完后发现进入kde桌面了,可能是漏选了,也罢,有个图形也好。

2、安装Apache2.2.3
在http://httpd.apache.org上看到2.2.3是最好的版本,于是下载下来安装

  tar -zxvf httpd-2.2.3.tar.gz
  cd cd httpd-2.2.3最初用下面的命令进行配置,结果subversion装好后不能造成apache启动
  ./configure --prefix=/usr/local/apache --enable-module=most --enable-shared=max
后来改为
./configure --prefix=/usr/local/apache2 --enable-so --enable-rewrite=share --enable-proxy=share --enable-proxy-ajp=share --enable-dav=share --enable-dav-fs就没有问题了

运行后发现报错,找不到编译器,这才想起没有安装gcc,于是mount上光盘,先把gcc装了再说 rpm -ivh /media/cdrom/RedHat/RPMS/gcc*.rpm,安装gcc时也遇到一些包的依赖关系,逐一解决,主要是以下几个rpm的依赖
rpm -ivh /media/cdrom/RedHat/RPMS/zlib-devel-1.2.1.2-1.2.i386.rpm
rpm -ivh /media/cdrom/RedHat/RPMS/libstdc++-devel-3.4.4-2.i386.rpm
rpm -ivh /media/cdrom/RedHat/RPMS/libgcj-devel-3.4.4-2.i386.rpm
装好gcc之后再运行上面的apache的configure命令,然后make,再make install

装好apache后,测试一下看apache能否运行
/usr/local/apache/bin/apachectl start
浏览器访问,看到it works字样,说明apache成功了

3、安装subversion1.4.2
一开始我是准备用rpm方式安装的,下载的1.4.0的rpm包,安装时报告apr版本太低,刚好看到subversion的下载目录里有
apr-0.9.12-2.i386.rpm和apr-util-0.9.12-1.i386.rpm,这两个包以-U方式安装后,subversion就可以装上去了
rpm -U apr-0.9.12-2.i386.rpm
rpm -U apr-util-0.9.4-21.i386.rpm
rpm -ivh subversion-1.4.2-1.i386.rpm

之后建个资料库测试一下
svnadmin create /svn_repo/test 成功

但是我把1.4.0卸载了,准备安装1.4.2的tar.gz的包
rmp -e subversion

下载的是subversion1.4.2.tar.gz
还是先解压
tar -zxvf subversion-1.4.2.tar.gz
cd subversion-1.4.2
开始配置
./configure --prefix=/usr/local/svn
报告说apr找不到,qq群里问了老大,又在论坛里找,最后下面的命令不会有错
./configure --prefix=/usr/local/svn --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apache2 --with-apr-util=/usr/local/apache2
然后make 再make install

再看apache的配置文件,已经自动加上了如下两行
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
这两个so文件也被copy到相应的modules目录了。

现在apache和subversion都成功了,接下来就是建立配置文件

4、权限配置
我在/svn_repo下建了个conf文件夹,专门用于存放用户信息、权限配置信息
mkdir /svn_repo/conf
建立一个用户名密码文件
/usr/local/apache2/bin/htpasswd -cm /svn_repo/conf/users.conf yourname
根据屏幕提示输入两次密码
zaiconf目录下再建test资料库的权限文件和组文件(个人觉得组文件没有用)
mkdir /svn_repo/conf/test
cd /svn_repo/conf/test
vi testAccess.conf
输入如下配置信息,最简单的权限配置
[groups]
admin = wangdm,zhugang,yinfei,zhumz
[/]
@admin = rw

vi testGroup.conf
输入ms:ligw wanghj
这里是组名+冒号+以空格分隔的用户名列表

保存退出

创建svnadmin用户,用户名可以随便取
useradd svnadmin

编辑/usr/local/apache2/conf/httpd.conf文件
把user daemon和group daemon中的daemon换成svnadmin
在文件尾部输入和此项目配置库的访问信息

<Location /svn/test>
    DAV svn
    SVNPath /svn_repo/test

    # our access control policy
    AuthzSVNAccessFile /svn_repo/conf/test/testAccess.conf

    # how to authenticate a user
    AuthType Basic
    AuthName "Test SVN"
    AuthUserFile /svn_repo/conf/users.conf
    AuthGroupFile /svn_repo/test/testGroups.conf
    Require group test
</Location>
我个人喜欢每一个资料库单独配置一个访问路径,每个资料库都使用同一个用户文件,但权限文件是独立的,这样不像svnparentpath那种方式,权限文件看上去很复杂,不好管理

注意,还要把/svn_repo整个目录的属主设为svnadmin用户
chown -R svnadmin:svnadmin /svn_repo

重新启动apache,到此一个项目的svn就完成了。下一步配置ssl,实现了再发帖。

重启apache后即可
原文地址:https://www.cnblogs.com/licheng/p/1329645.html