公司刚刚把SVN从windows迁移到了linux,以下是安装笔记,大部分来自网上,自己有点小的修改,腆着脸标个原创吧,感谢开源,感谢分享。
到下列地址下载相关rpm包,更新相关文件(rpm -Uvh)
http://the.earth.li/pub/subversion/summersoft.fay.ar.us/pub/subversion/latest/1.6.13
主要下载以下几个安装包,以subversion1.6.1为例:
apr-0.9.12-2.i386.rpm
apr-util-0.9.12-1.i386.rpm
neon-0.28.4-1.i386.rpm
subversion-1.6.1-1.i386.rpm
sqlite-3.5.9-4.1.i386.rpm
安装这些包之前,检查一下这些安装包是否已经存在和它的版本。
例:
#rpm –q apr
若检查出包已存在且版本低于当前下载的版本,安装是要采用rpm –Uvh来升级一下。
安装这些包。
#rpm –ivh apr-0.9.12-2.i386.rpm或(rpm –Uvh apr-0.9.12-2.i386.rpm)
#rpm –ivh apr-util-0.9.12-1.i386.rpm或(rpm –Uvh apr-util-0.9.12-1.i386.rpm)
#rpm –ivh neon-0.28.4-1.i386.rpm或(rpm –Uvh neon-0.28.4-1.i386.rpm)
#rpm –ivh sqlite-3.5.9-4.1.i386.rpm
#rpm –ivh subversion-1.6.1-1.i386.rpm
6、配置subversion
创建资料库
svnadmin create /srv/mysvn
现在就可以使用svn://192.168.1.100/srv/mysvn或 svn+ssh://192.168.1.100/srv/mysvn来使用svn了
通过svn+ssh://登录svn使用的是ssh的用户名和密码
7、与apache结合
安装完上面的rpm包后在apache的module目录中可以找到两个模块mod_dav_svn.so和mod_authz_svn.so
在apache的httpd.conf中配置:
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
在httpd.conf最后加上如下内容
<Location /svn>
DAV svn
SVNPath /srv/mysvn #版本库的目录
AuthType Basic
AuthName "Subversion repository" #欢迎语言
AuthUserFile /srv/passwd.con #密码文件
Require valid-user
</Location>
注意:
(1) SVNPath一定要跟./svnadmin create /srv/mysvn的目录一样,要不晕死你
(2) 目录svnroot的权限设置成755
8、通过htpasswd创建密码(使用http登录时提示输入用户名密码)
htpasswd –c /srv/passwd.conf apache 创建一个密码文件
使用apache登录时,使用的是通过htpasswd创建的用户名、密码
vim /srv/mysvn/conf可以看到如下内容:
apache:Fn7WlDWaDmhxA #密码经过了加密
通过htpasswd /srv/passwd.con 用户名 增加或修改用户的密码
htpasswd -D /srv/passwd.con 用户名 删除用户
问题:
1、设立好了apache和subversion,但是只能读取/var/www/下的版本库,无法提交。对于其他路径的版本库就无法读取。
权限问题。
#chown -R apache.apache /srv/mysvn
#chmod -R 755 /srv/mysvn
2、为什么我通过svn://方式无法登录了
svnserve -d (-r)启动服务器
3、提交时提示:Can't open file '/srv/mysvn/db/txn-current-lock': Permission denied
如果是通过http的方式来访问svn服务,那么chown -R apache apache chomd -R 755 /srv/mysvn
4、如何创建一个新的项目
1)在linux下新建一个目录:例如:project
2)创建资料库
svnadmin create /srv/project
3)chown -R apache:apache project
chmod -R 755 project
4)在apache的配置文件中加入:
<Location /project>
DAV svn
SVNPath /srv/project
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /srv/passwd.conf #密码配置文件使用一个
Require valid-user
</Location>
重启apache
5)如果出现
svn: Could not open the requested SVN filesystem
检查apache中的配置文件是否全部写对