CentOS7下 SVN版本控制的安装(包括yum与非yum)的步骤记录。

一、yum安装

rpm -qa subversion             //检查是否安装了低版本的SVN

yum remove subversion           //如果存储旧版本,卸载旧版本SVN

开始安装

yum -y install subversion   

svnserve --version             //查看版本

root@ding jvm]# svnserve --version

svnserve, version 1.7.14 (r1542130)

   compiled Apr 11 2018, 02:40:28

 

Copyright (C) 2013 The Apache Software Foundation.

This software consists of contributions made by many people; see the NOTICE

file for more information.

Subversion is open source software, see http://subversion.apache.org/

 

The following repository back-end (FS) modules are available:

 

* fs_base : Module for working with a Berkeley DB repository.

* fs_fs : Module for working with a plain file (FSFS) repository.

 

Cyrus SASL authentication is available.

创建版本仓库:

[root@ding /]# mkdir -p /data/svn/project/

[root@ding /]# svnadmin create /data/svn/project/

查看/data/svn/project 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

[root@ding /]# cd data/

[root@ding data]# ls -l

total 0

drwxr-xr-x. 3 root root 21 Feb 17 10:48 svn

[root@ding data]# cd svn/

[root@ding svn]# ls -l

total 0

drwxr-xr-x. 6 root root 86 Feb 17 10:49 project

[root@ding svn]# cd project/

[root@ding project]# ls -l

total 8

drwxr-xr-x. 2 root root  54 Feb 17 10:49 conf

drwxr-sr-x. 6 root root 233 Feb 17 10:49 db

-r--r--r--. 1 root root   2 Feb 17 10:49 format

drwxr-xr-x. 2 root root 231 Feb 17 10:49 hooks

drwxr-xr-x. 2 root root  41 Feb 17 10:49 locks

-rw-r--r--. 1 root root 229 Feb 17 10:49 README.txt

[root@ding project]#

 

配置权限:

cd /data/svn/project/conf/            //进入配置目录

vim svnserve.conf                    //编辑配置文件

https://www.linuxidc.com/upload/2017_10/171021140063623.png

vim passwd                        //编辑密码文件

https://www.linuxidc.com/upload/2017_10/171021140063624.png

vim authz

https://www.linuxidc.com/upload/2017_10/171021140063625.png

举例:

[groups]

project_p = pm

project_s = server1,server2,server3

project_c = client1,client2,client3

project_t = test1,test1,test1

[project:/]

@project_p = rw

* =

[project:/server]

@project_p = rw

@project_s = rw

* =

[project:/client]

@project_p = rw

@project_c = rw

* =

[project:/doc]

@project_p = rw

@project_s = r

@project_c = r

@project_t = r

* =

说明:以上信息表示,只有project_p用户组有根目录的读写权。r表示对该目录有读权限,w表示对该目录有写权限,

rw表示对该目录有读写权限。最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。

这个很重要,一定要加上!

 

 

配置防火墙

cenetos7 采用systemd来管理服务
centos7 没有采用传统的iptables服务, 而是采用的firewalld 服务, 以及firewall-cmd 命令;

也可以采用传统的 iptables.service服务来管理防火墙, 但是要安装 iptables-service 程序软件.

如果没有安装iptabes-service "软件/程序" , 将没有iptables命令, 自然就会提示 没有...文件或目录了....

yum install iptables-service;
systemctl start|stop|restart|save|status iptalbes.service

原始的firewalld管理是:

service firewalld start.

centos7 系统默认的防火墙服务叫 firewalld : firewalld.service.

 

vi /etc/sysconfig/iptables                //配置防火墙

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -dport 3690 -j ACCEPT   //加入此行代码

https://www.linuxidc.com/upload/2017_10/171021140063626.png

service iptables restart                //重启防火墙

另,有开启3690端口的命令,在终端输入以下命令:

1>iptables -I INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT

2>iptables -I OUTPUT -o eth0 -p tcp --sport 3690 -j ACCEPT

然后保存:/etc/rc.d/init.d/iptables save

在看看是否已经有了3690端口的开放权限:/etc/init.d/iptables status

 

 

 

启动SVN:

svnserve -d -r /data/svn/              //启动SVN

netstat -ln | grep 3690               //查看端口状态

https://www.linuxidc.com/upload/2017_10/171021140063627.png

打开本地Windows客户端检出

 

客户端提交文件测试

https://www.linuxidc.com/upload/2017_10/1710211400636218.png

 

然后新创建一个WEB目录,实现修改WEB程序文件。  在这里把/data/www/作为指定WEB目录

svn co svn://127.0.0.1/project /data/www/

客户端提交了版本修改之后,在之前的公司每次都是需要执行svn update命令,而且不小心会出现开发冲突。

下面来配置SVN钩子,来实现自动更新服务器WEB目录文件

cd /data/svn/project/hooks/

vim post-commit

 

#!/bin/sh

export LANG=zh_CN.UTF-8

SVN=/usr/bin/svn  #这里填写你的svn程序目录

WEB=/data/www/ #这里填写你的web程序目录

$SVN update $WEB --username user1 --password password123456 #客户端的用户名和密码,在svn配置文件里配置的信息

 

https://www.linuxidc.com/upload/2017_10/171021140063628.png

chmod 777 post-commit

最后重启svn!客户端提交测试,查看WEB目录文件自动更新成功!

二、非yum安装

 

wget http://subversion.tigris.org/downloads/subversion-1.6.9.tar.gz

wget http://subversion.tigris.org/downloads/subversion-deps-1.6.9.tar.gz

#解压

tar zxvf subversion-1.6.9.tar.gz

tar zxvf subversion-deps-1.6.9.tar.gz

#编译

cd subversion-1.6.9

./configure --prefix=/usr/local/svn --without-berkeley-db

make

make install

 

安装过程中可能遇到的问题:

1、提示OpenSSL缺失

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

https://www.linuxidc.com/upload/2017_10/171021140063629.png

解决方法:编译前先安装了一个openssl即可

 

cd /usr/local/src

wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz

tar -zxvf openssl-1.0.0a.tar.gz

cd openssl-1.0.0a

./config

./config -t

make depend

make

make test

make install

 

make test 的时候本人出现过以下错误,本人没有去理会,继续make install

https://www.linuxidc.com/upload/2017_10/1710211400636210.png

yum -y install openssl                 #为了放心,抱着试一试的态度,执行了yum安装命令

安装之后会在/usr/local下生成一个ssl目录,编译SVN时加上openssl路径即可

./configure --prefix=/usr/local/svn --without-berkely-db --with-openssl=/usr/local/ssl/

2 zlib依赖缺失

configure配置SVN时可能提示如下错误信息:

configure: error: subversion requires zlib

https://www.linuxidc.com/upload/2017_10/1710211400636211.png

解决办法:安装zlib

------------------------------------------分割线------------------------------------------

免费下载地址在 http://linux.linuxidc.com/

用户名与密码都是www.linuxidc.com

具体下载目录在 /2017年资料/10/21/CentOS SVN版本控制的安装(包括yum与非yum/

下载方法见 http://www.linuxidc.com/Linux/2013-07/87684.htm

------------------------------------------分割线------------------------------------------

cd /usr/local/src

    这里我上传Linux公社了 。也可以直接Google下  zlib-1.2.8.tar.gz ,下载上传至指定目录即可

tar -xvzf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure

make

make install

3expat依赖缺失

configure: error: no XML parser was found: expat or libxml 2.x required

解决办法:安装expat

cd /usr/local/src

wget http://nchc.dl.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz

tar -zxvf expat-2.1.0.tar.gz

cd expat-2.1.0

./configure

make

make install

再次执行

./configure --prefix=/usr/local/svn --without-berkely-db --with-openssl=/usr/local/ssl/

https://www.linuxidc.com/upload/2017_10/1710211400636212.png

4、在make && make install 时出现报错

https://www.linuxidc.com/upload/2017_10/1710211400636213.png

make[1]: Leaving directory `/usr/local/src/subversion-1.6.9/serf'

解决办法:添加 --without-serf 参数重新编译subversion即可:

./configure --prefix=/usr/local/svn --without-berkely-db --with-openssl=/usr/local/ssl/ --without-serf

https://www.linuxidc.com/upload/2017_10/1710211400636214.png

make && make install

安装完毕之后查看一下SVN版本

/usr/local/svn/bin/svnserve --version

https://www.linuxidc.com/upload/2017_10/1710211400636215.png

OK!咱的SVN都可以看到版本了,证明没问题,可以创建仓库之类的操作了。和yum配置的方式差不多,只不过有时候命令行要有所改动了,

比如yum安装之后是这样创建仓库:svnadmin create /data/svn/project/

但是在编译安装的需要指定目录了:/usr/local/svn/bin/svnadmin create /data/svn/project/

mkdir -p /data/svn/project

/usr/local/svn/bin/svnadmin create /data/svn/project/

cd /data/svn/project/

https://www.linuxidc.com/upload/2017_10/1710211400636216.png

接下来的配置步骤就略了,可以参考上面yum安装的配置方式,最后启动SVN服务还是需要注意的

/usr/local/svn/bin/svnserve -d -r /data/svn/

完毕~

 

 

 

 

三、 centos开机自动启动SVN服务的方法

1. /usr/lib/systemd/system/添加svnserve.service文件,文件内容如下:

[Unit]

Description=Subversion protocol daemon

After=syslog.target network.target 

[Service]

Type=forking

EnvironmentFile=/etc/sysconfig/svnserve    

ExecStart=/usr/bin/svnserve --daemon --pid-file=/run/svnserve/svnserve.pid -d -r /home/svn  #一定要写svnserve命令的绝对路径

[Install]

WantedBy=multi-user.target

2. 执行systemctl enable svnserve.service

3. 其它

[Unit]:服务的说明

Description:描述服务
After:描述服务类别

[Service]服务运行参数的设置

Type=forking是后台运行的形式
ExecStart为服务的具体运行命令
ExecReload为重启命令
ExecStop为停止命令
PrivateTmp=True表示给服务分配独立的临时空间
注意:[Service]的启动、重启、停止命令全部要求使用绝对路径

 

启动svnserve服务

systemctl start svnserve.service

设置开机自启动

systemctl enable svnserve.service

停止开机自启动

systemctl disable svnserve.service

查看服务当前状态

systemctl status svnserve.service

重新启动服务

systemctl restart svnserve.service

查看所有已启动的服务

systemctl list-units --type=service

分类CentOS

 

 

通过svn客户端连接报错Permission denied

如果报这样的错svn: E204900: Can't open file '/var/svn/wangwa/format': Permission denied的错误。那就是与SELinux有关系,目前我还不太会用SELinux,那就先把SELinux关闭吧,后面学会了,回过头来再改这一段!!!!:

临时关闭:

$ sudo setenforce 0

永久关闭:

$ sudo vim /etc/sysconfig/selinux

修改:

SELINUX = disable               #值修改为disable.

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值