Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6276036
  • 博文数量: 2759
  • 博客积分: 1021
  • 博客等级: 中士
  • 技术积分: 4091
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-11 14:14
文章分类

全部博文(2759)

文章存档

2019年(1)

2017年(84)

2016年(196)

2015年(204)

2014年(636)

2013年(1176)

2012年(463)

分类: LINUX

2013-04-08 09:57:24

                                          Centos6.1详细搭建svn独立服务器

1准备源码包:2个源码包一个是Subversion-1.6.20.tar.gz一个是Subversion-deps-1.6.20.tar.gz

源码安装目录:/usr/local/svn/版本库的用户文件目录/usr/local/svn/conf/passwd.conf

版本库的权限控制文件目录:/usr/local/svn/conf/authz.conf  需要的有glibc gcc libstdc++ openssl openssl-devel zlib

2安装报错
    

解决方法挂载本地iso镜像文件使用centos6.1光盘自带安装包安装 挂载本地iso镜像

./configure –prefix=/usr/local/svn/ --with-neon= 注什么都不加

注:在编译安装之前要先安装opensslopenssl-devel,否则以下错误

checking openssl/opensslv.h usability... no

checking openssl/opensslv.h presence... no

checking for openssl/opensslv.h... no

configure: error: We require OpenSSL; try --with-openssl

configure failed for serf

解决:yum -y install openssl openssl-devel

3安装完成之后添加环境变量在/etc/profile 添加PATH=/usr/local/svn/bin:$PATH

4source /etc/profile一下/usr/local/svn/bin下的命令可以使用

5测试一下安装是否成功svnserve –version
      

6 创建版本库

1创建版本库目录mkdir –p /var/svndata/9000

Svnadmin create /var/svndata/9000 其中如果想在任意目录使用svnadmin请添加环境变量

2创建完成之后生成如下文件其中的conf目录下放置有版本库配置文件svnserve.conf

用户密码存放文件passwd 组权限控制文件authz我这里的用户密码配置文件和组权限

文件放置在/usr/local/svn/conf/下名字分别是:passwd.conf  authz.conf

       3:配置版本库配置文件如下

4注意对用户配置文件的修改不用重启svn立即生效。

5开机自动开启svn服务在/etc/rc.d/rc.local 加入svnserve –d –r /var/svndata就可以实现svn自动开机自启动

 附另外一种方法把svn做为服务器启动

 

1.  /etc/init.d/ 目录下建立svn运行脚本,并授于可执行权限

2.  [root@svn ~]# vim /etc/init.d/svn     

3.  #!/bin/bash 

4.  # build this file in /etc/rc.d/init.d/svn 

5.  # chmod 755 /etc/rc.d/init.d/svn 

6.  # chkconfig: - 85 15 

7.  # description: svn server 

8.  SVN_HOME=/var/svndata 

9.  if [ ! -f "/usr/local/svn/bin/svnserve" ] 

10. then 

11.     echo "svnserver startup: cannot start" 

12.     exit 

13. fi 

14. case "$1" in 

15.     start) 

16.         echo "Starting svnserve..." 

17.         /usr/local/svn/bin/svnserve -d --listen-port 3690 -r $SVN_HOME #这个3690是默认端口

18.         echo "Finished!" 

19.         ;; 

20.     stop) 

21.         echo "Stoping svnserve..." 

22.         killall svnserve 

23.         echo "Finished!" 

24.         ;; 

25.     restart) 

26.         $0 stop 

27.         $0 start 

28.         ;; 

29.     *) 

30.         echo "Usage: svn { start | stop | restart } " 

31.         exit 1 

32. esac 

33. [root@svn ~]# chmod 755 /etc/init.d/svn 

34. [root@svn ~]# chkconfig svn on 

35. [root@svn ~]# /etc/init.d/svn start 

注意如果脚本里不加 # chkconfig:空格-85空格15的话在使用chkconfig –add  svn 会提示
    

正确的设置如下:
    

添加成功之后如下显示

 

设置等级345开机自启动

个人喜欢第二种方法简单一目了然不过原理都一样总结一下

开启svn服务:svnservice –d –r /var/svndata    

关闭svn服务: killall svnservice 或者kill -9 pid

脚本开启svn服务:service svn start

脚本关闭svn服务:service svn stop

脚本重启svn 服务:service svn restart

注意:/etc/ini.d/svn 提示错误以前也遇到过是windowslinux下删除windows换行符^M

启动时发现一个问题:用%c读入的代码都会报wa。后来发现跟scanf有关。在linux下使用%c会读到\n\r两个字符。所以需要将^M(也就是\r)字符删掉
删除方法不少。
下一步:配置svn用户和组直接上截图:

密码:

 

 下面是组

       
注意这里的组适合大型项目,个人感觉比较有条理性

注意svn配置文件需要顶格写 登录用户中间有空格 如: svnadmin = svnadmin

左边是登录的用户名右边是密码

测试成功之后项目导入然后下边是备份脚本

要执行成功备份脚本必须使用ssh-kegen  rsa 回车回车回车。。

然后用scp ~/.ssh/id_rsa.pub 下并重命名为authorized.keys

然后定时执行备份脚本

Crontab –e –u root

下面是备份脚本内容

查看本机上的定时任务crontab –l

      

查看远程服务器是否生成文件注意脚本里面使用svnadmin hotcopy命令使用的是绝对路径 

      
以上过程亲测,并经过测试运行正常,如果以上有什么错误,请你一定不吝赐教,E-Mail:china_vision#outlook.com

阅读(960) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~