Centos7 SVN安装最新版本,Linux安装svn最新版本

 

================================

©Copyright 蕃薯耀 2022-01-14

https://www.cnblogs.com/fanshuyao/

 

一、查看有没有安装svn

rpm -qa subversion

 

二、yum安装svn服务端(非最新版本)

Svn yum命令直接安装

直接安装不是最新版本的svn,只是:1.7.14版本的当前最新版本是:svn-1.14,最新版本安装请跳过此步看下面

yum -y install subversion

 

执行结果:

已安装:
  subversion.x86_64 0:1.7.14-16.el7                                                                                                           
作为依赖被安装:
  apr.x86_64 0:1.4.8-7.el7                apr-util.x86_64 0:1.5.2-6.el7                subversion-libs.x86_64 0:1.7.14-16.el7               
 
完毕!

 

 

三、svn安装最新版本

 1、查看Centos系统适合的版本

http://opensource.wandisco.com/centos/

如果是Centos7,则是:

http://opensource.wandisco.com/centos/7/
适合的版本如下:
Name↓            Last Modified:            Size:    Type:
svn-1.7/        2014-Aug-07 08:16:37    -          Directory
svn-1.8/        2014-Aug-07 08:16:37    -          Directory
svn-1.9/        2014-Aug-07 08:16:37    -          Directory
svn-1.10/        2018-Apr-25 12:31:52    -          Directory
svn-1.11/        2018-Nov-22 09:45:38    -          Directory
svn-1.12/        2019-Mar-04 09:24:57    -          Directory
svn-1.13/        2019-Dec-09 08:20:28    -          Directory
svn-1.14/        2021-Feb-24 06:00:18    -          Directory

 

2、新增svn的最新版本库

vi /etc/yum.repos.d/wandisco-svn.repo

 

wandisco-svn.repo 文件添加的内容:

此处使用svn-1.14,即当前最新版本

[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.14/RPMS/$basearch/
enabled=1
gpgcheck=0

 

3、卸载svn旧版本


如果安装有旧版本,先卸载

yum remove subversion

 

删除执行结果:

删除:
  subversion.x86_64 0:1.7.14-16.el7 

 

接着,清理安装缓存

yum clean all

 

4、安装最新版本的svn

yum -y install subversion

 

执行结果:

已安装:
  subversion.x86_64 0:1.14.1-1                                                                                                                
作为依赖被安装:
  libserf.x86_64 0:1.3.9-1.el7                                                                                                                
 
替代:
  subversion-libs.x86_64 0:1.7.14-16.el7  

 

5、查看svn版本

svnserve --version

 

执行结果:

[root@host-100 ~]# svnserve --version
svnserve,版本 1.14.1 (r1886195)
   编译于 Jan  6 202214:30:34 在 x86_64-redhat-linux-gnu

svn当前最新版本:1.14.1

 

四、查看svn安装位置

which svnserve

 

执行结果:

/usr/bin/svnserve

 

 

五、创建svn 项目仓库目录

svnRepos为自定义目录

cd /
 
mkdir -p /var/svnRepos

 

也可以多增加一层文件夹:

mkdir -p /var/svnRepos/项目名称

 

六、svn项目初始化

如果不是root用户,命令前面要使用sudo

#修改目录拥有者
sudo chown -R java:java /var/svnRepos
 
#svn初始化
svnadmin create /var/svnRepos

 

执行结果:

 
[java@host-100 var]$ svnadmin create /var/svnRepos
[java@host-100 conf]$ cd /var/svnRepos
[java@host-100 svnRepos]$ ll
总用量 8
drwxrwxr-x. 2     java java          76     1月       7 10:17     conf
drwxrwsr-x. 6     java java         233     1月       7 10:17     db
-r--r--r--. 1     java java           2     1月       7 10:17     format
drwxrwxr-x. 2     java java         231     1月       7 10:17     hooks
drwxrwxr-x. 2     java java          41     1月       7 10:17     locks
-rw-rw-r--. 1     java java         246     1月       7 10:17     README.txt

 

conf 文件夹,存放配置文件

conf 文件夹下的三个重要文件:

authz:权限控制文件
passwd:帐号密码文件
svnserve.conf:SVN服务配置文件,配置账号和权限文件

 

 

七、svn配置用户和密码

编辑passwd文件:

cd /var/svnRepos/conf
 
vi passwd

 

配置格式是:用户名=密码

 
如:
[users]
# harry = harryssecret
# sally = sallyssecret
readUser=123456
appUser=123456

 

 

八、svn配置权限


编辑authz文件:

vi authz

 

在文件最下面增加用户和权限
格式是:用户名=权限

权限:
r:表示读权限
w:表示写权限
rw:表示可读可写权限
[/]:表示是svn根目录,[/]可以改为具体的文件夹目录,限制某些用户对某些文件夹的读写权限

 

示例:
 
[/]
appUser=rw
*=
 
[/aa]
readUser=r
appUser=rw
*=

最后一行*=表示其他用户无任何权限

 

另外一种配置方法,是使用用户分组(未测试)

[groups]
appGroup=appUser
readGroup= readUser
 
[/]
@appGroup=rw
@readGroup=r
*=

 

 

九、svn配置服务文件

vi svnserve.conf

在[general]下面增加下面的配置(也可以在配置上打开相应的选项,但# 后面的空格要删除):

#在[general]模块最下面增加的内容
#匿名访问的权限,可以是read,write,none,设置为none表示不能读写
anon-access=none
#授权用户可写
auth-access=write
#密码数据库配置
password-db=passwd
#访问控制数据库配置
authz-db=authz
#存储库的身份验证域。
#如果两个存储库具有相同的身份验证域,则它们应该
#拥有相同的密码数据库,反之亦然。默认领域是存储库的uuid。
#此处填写路径,这样就不会有相同的
#就是连接时提示的名称,如/var/svnRepos可修改为:我的svn仓库
realm=/var/svnRepos
 
#强制用户名大小写,默认是否
#lower,则全部变成小写;upper则全部变成大写;none则比较大小写。
# force-username-case = none

 

 

十、svn启动

查看svn是否启动:

ps -ef | grep svnserve

 

启动有权限问题,在下面有解决方案。

 

启动svn(端口默认为3690)

svnserve -d -r /var/svnRepos

 

修改端口启动:

svnserve -d -r /var/svnRepos  --listen-port=9369

 

指定配置文件启动:

svnserve -d -r /var/svnRepos  --listen-port=9369 --config-file=/var/svnRepos/conf/svnserve.conf

 

-d:表示守护进程
-r:svn根目录
--listen-port=9369:指定端口
--config-file:指定配置文件

 

查看svn进程

ps -ef | grep svnserve

杀掉svn进程

kill -9 [pid]

 

 

十一、打开svn防火墙端口

svn默认是3690端口

打开telnet服务:

firewall-cmd --permanent --add-service=telnet

 

开放端口:

默认的端口
firewall-cmd --permanent --zone=public --add-port=3690/tcp
 
自定义的端口
firewall-cmd --permanent --zone=public --add-port=9369/tcp

 

让端口生效:

firewall-cmd --reload

 

查看防火墙所有开放的端口

firewall-cmd --zone=public --list-ports

 

其它命令:

查看防火墙状态:
firewall-cmd --state
 
关闭防火墙
systemctl stop firewalld.service
 
禁止防火墙开机启动
systemctl disable firewalld.service

 

 

 

十二、svn设置开机启动

增加svnserve.service配置文件

vi /lib/systemd/system/svnserve.service

 

文件增加的内容:

[Unit]
Description=SVN Server service  
After=network.target
 
[Service]
Type=forking
ExecStart= /usr/bin/svnserve -d -r /var/svnRepos --listen-port=9369 --config-file=/var/svnRepos/conf/svnserve.conf
Restart=on-abort
 
[Install]
WantedBy=multi-user.target

 

设置开机启动

sudo systemctl enable svnserve.service

 

执行结果:

[java@host-100 system]$ sudo systemctl enable svnserve.service
Created symlink from /etc/systemd/system/multi-user.target.wants/svnserve.service to /usr/lib/systemd/system/svnserve.service.

 

其它命令

启动svn
systemctl start svnserve.service
 
停止svn
systemctl stop svnserve.service
 
重启svn
systemctl restart svnserve.service

 

 

十三、svn启动时权限不够解决方案

查看svn服务状态:

systemctl status svnserve.service

 

svnserve[166290]: svnserve: E000013: 不能打开文件“/var/svnRepos/conf/svns…限不够

[root@host-100 /]# systemctl status svnserve.service
● svnserve.service - SVN Server service
   Loaded: loaded (/usr/lib/systemd/system/svnserve.service; enabled; vendor preset: disabled)
   Active: failed (Result: exit-code) since 五 2022-01-07 11:07:11 CST; 11s ago
  Process: 166290 ExecStart=/usr/bin/svnserve -d -r /var/svnRepos --listen-port=9369 --config-file=/var/svnRepos/conf/svnserve.conf (code=exited, status=1/FAILURE)
 
1月 07 11:07:11 host-100 systemd[1]: Starting SVN Server service...
1月 07 11:07:11 host-100 svnserve[166290]: svnserve: E000013: 不能打开文件“/var/svnRepos/conf/svns…限不够
1月 07 11:07:11 host-100 systemd[1]: svnserve.service: control process exited, code=exited status=1
1月 07 11:07:11 host-100 systemd[1]: Failed to start SVN Server service.
1月 07 11:07:11 host-100 systemd[1]: Unit svnserve.service entered failed state.
1月 07 11:07:11 host-100 systemd[1]: svnserve.service failed.
Hint: Some lines were ellipsized, use -l to show in full.

 

svn启动权限不够解决方案

文件/etc/selinux/config先要添加可写权限

chmod -v u+w /etc/selinux/config

 

编辑文件:

vi /etc/selinux/config

 

修改(需要重启服务器)

SELINUX=enforcing

为:

SELINUX=disabled

 

收回文件/etc/selinux/config可写权限

chmod -v u-w /etc/selinux/config
 
chmod -R 777 svnserve.conf

 

重启服务器

reboot -f

 

 

十四、svn客户端tortoisesvn下载和svn检出

下载windows svn客户端

tortoisesvn下载地址

https://tortoisesvn.net/downloads.html

 

下载地址再下面一点,有中文语言安装包

 

安装完成后,新建一个文件夹,在文件夹中,【鼠标】右键,有一个【SVN 检出】命令,可检出项目。

输入svn地址:

端口默认为3690,我修改成了9369,记得修改成自己的端口

svn://ip地址:端口
 
示例:
svn://192.168.1.10:9369/

 

 

十五、Eclise svn subclipse插件下载和安装

Eclise svn插件 subclipse 要求:

Requirements - current master
 
Eclipse 4.2 (Juno) or later
Java 8 or later
Subversion 1.10 - 1.14 JavaHL client libraries

 

subclipse下载地址:

https://github.com/subclipse/subclipse/releases

 

wiki 文档地址:

​https://github.com/subclipse/subclipse/wiki

 

只下载subclipse-4.3.3.zip安装后没有JavaHL,会报错,建议在线安装,或者两个一起下载安装。

 

 

 

 

(时间宝贵,分享不易,捐赠回馈,^_^)

 

================================

©Copyright 蕃薯耀 2022-01-14

https://www.cnblogs.com/fanshuyao/

posted @ 2022-01-14 14:30  蕃薯耀  阅读(1293)  评论(1编辑  收藏  举报