在Centos7 上安装SVN

2019-03-15 18:33:42 浏览数 (1)

1、安装

使用yum安装非常简单:

代码语言:javascript复制
yum install subversion

2、配置

创建仓库

我们这里在/opt下建立一个名为svn的仓库(repository),以后所有代码都放在这个下面,创建成功后在svn下面多了几个文件夹。

代码语言:javascript复制
  1. [root@localhost /]# cd /opt
  2. [root@localhost opt]# mkdir svn
  3. [root@localhost opt]# svnadmin create /opt/svn
  4. [root@localhost opt]# ls svn
  5. conf db format hooks locks README.txt

我们这里特别关注一下conf文件夹,这个是存放配置文件的

代码语言:javascript复制
  1. [root@localhost opt]# cd svn/conf
  2. [root@localhost conf]# ls
  3. authz passwd svnserve.conf

其中:

  • authz 是权限控制文件
  • passwd 是帐号密码文件
  • svnserve.conf 是SVN服务配置文件

接下来我们依次修改这3个文件。

配置passwd

代码语言:javascript复制
  1. [root@localhost conf]# vi passwd
  2. [users]
  3. test1=123456
  4. test2=123456

上面的例子中我们创建了2个用户,一个test1,一个test2

配置authz

代码语言:javascript复制
  1. [root@localhost conf]# vi authz
  2. [/]
  3. liuxianan=rw
  4. test1=r
  5. test2=r
  6. *=

上面配置的含义是,liuxianan/opt/svn/下所有文件具有可读可写权限,test只有只读权限,除此之外,其它用户均无任何权限,最后一行*=很重要不能少。

配置svnserve.conf

代码语言:javascript复制
  1. [root@localhost conf]# vi svnserve.conf
  2. 打开下面的5个注释
  3. anon-access = none#匿名用户可读
  4. auth-access = write #授权用户可写
  5. password-db = passwd #使用哪个文件作为账号文件
  6. authz-db = authz #使用哪个文件作为权限文件
  7. realm = /opt/svn # 认证空间名,版本库所在目录

2点注意:

  • 最后一行的realm记得改成你的svn目录
  • 打开注释时切记前面不要留有空格,否则可能有问题

3、启动与停止

代码语言:javascript复制
  1. [root@localhost conf]# svnserve -d -r /opt/svn(启动)
  2. [root@localhost conf]#killall svnserve(停止)

上述启动命令中,-d表示守护进程, -r 表示在后台执行。停止还可以采用杀死进程的方式:

代码语言:javascript复制
  1. [root@localhost conf]# ps -ef|grep svnserve
  2. root 4908 1 0 21:32 ? 00:00:00 svnserve -d -r /home/svn
  3. root 4949 4822 0 22:05 pts/0 00:00:00 grep svnserve
  4. [root@localhost conf]# kill -9 4908

客户端连接

这里使用TortoiseSVN,输入地址svn://你的IP 即可,不出意外输入用户名和密码就能连接成功了。

默认端口3690,如果你修改了端口,那么要记得加上端口号。

设置SVN自动更新

cd /opt/svn/hooks

mv post-commit.tml post-commit

然后:vim post-commit

代码语言:javascript复制
  1. #!/bin/sh
  2. #
  3. #
  4. #
  5. REPOS="$1"
  6. REV="$2"
  7. export LANG=zh_CN.UTF-8
  8. SVN=/usr/bin/svn #这里配置的是svn安装bin目录下的svn文件
  9. WEB=/opt/lampp/htdocs/ #要更新的目录
  10. $SVN update $WEB --username xxx --password xxx (此版本是linux下,windows下是.bat,写法少有不同)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

然后记得让post-commit有执行的权限: chmod 777 post-commit

总结

总的来说,如果你不需要杂七杂八的权限配置只是自己一个人用的话,安装配置还是比较简单的,并不像网上说的那么麻烦,我按照网上的方法一次性成功了。

扩展:yum安装路径

以svn为例:

代码语言:javascript复制
  1. # rpm -qa | grep subversion
  2. subversion-1.6.11-15.el6_7.x86_64
  3. # rpm -ql subversion-1.6.11-15.el6_7.x86_64
  4. ...
  5. /usr/share/doc/subversion-1.6.11
  6. /usr/share/doc/subversion-1.6.11/BUGS
  7. /usr/share/doc/subversion-1.6.11/CHANGES
  8. ...

说明:

  • rpm -qa 查询所有安装的rpm包,可以配合grep命令。
  • rpm -qi 查询某个具体包的介绍。
  • rpm -ql 列出某个具体包的所有文件

rpm几个默认安装路径:

代码语言:javascript复制
  1. /etc 一些设置文件放置的目录
  2. /usr/bin 一些可执行文件
  3. /usr/lib64 一些程序使用的动态函数库
  4. /usr/share/doc 一些基本的软件使用手册与帮助文档
  5. /usr/share/man 一些man page文件

本人出现的问题扩充:当linux中执行svn up 失败时,执行:

svn co svn://你的ip地址/  /opt/www/  --username  用户名 --password  密码

说明:svn://你的ip地址/     是svn url

/opt/www/ :目录也就是你要更东西的目录之后的

--username username 就是你的svn用户名 --password password就是svn密码  

扩展:数据库添加权限

进入

cd /opt/lampp/bin

./mysql -uroot -p

默认密码为空

grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;

flush privileges;

0 人点赞