linux安装svn服务器的两种方式(转载)「建议收藏」

linux安装svn服务器的两种方式(转载)「建议收藏」操作环境:CentOS7.264位第一种:采用压缩包安装:比如你们公司服务器上安装软件有自己的规定,一般会采用压缩包安装。第一步:SVN服务器端压缩包下载下载地址:http://mirrors.cnnic.cn/apache/subversion/我下载的是subversion-1.8.19版本,下载好的压缩包置于目录/usr/local/java/svn下(根据大家实际需要自行选择存放目录)。第二步:解压,进入解压后的文件在/usr/local/java/svn目录下执行下面两个命令:

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE稳定放心使用

操作环境:CentOS 7.2 64位

第一种:采用压缩包安装:比如你们公司服务器上安装软件有自己的规定,一般会采用压缩包安装。

第一步:SVN服务器端压缩包下载

下载地址:http://mirrors.cnnic.cn/apache/subversion/

我下载的是subversion-1.8.19版本,下载好的压缩包置于目录 /usr/local/java/svn 下(根据大家实际需要自行选择存放目录)。

第二步:解压,进入解压后的文件

在/usr/local/java/svn目录下执行下面两个命令:

[]# tar -zxvf subversion-1.8.15.tar.gz

[]#cd subversion-1.8.19/

第三步:编译并安装

A.在/usr/local/java/svn/subversion-1.8.19目录下执行下面命令:

先执行命令:# ./configure,看看有没有报错,

(1)如果没有报错则跳过下面的B步骤;

(2)如果有报错则看下面的B步骤安装依赖包,每安装完一个依赖包,就要在# ./configure 命令后面追加 –with参数并再次运行加了with参数的configure命令。

如果我只安了一个apr依赖包,那么就执行命令:
[]#./configure –with-apr=/usr/local/apr命令;
如果我安了apr和apr-util,那么就执行命令:
[]#./configure –with-apr=/usr/local/apr
–with-apr-util=/usr/local/apr 命令;

如果下面的依赖包全安了,就执行下面的命令:

[]#./configure –with-apr=/usr/local/apr
–with-apr-util=/usr/local/apr
–with-serf=/usr/local/serf
–with-openssl

B.如果报错,提示缺少某某依赖包,缺什么就在此步B中找到相应依赖包下载下来放到/usr/local/java/svn/dependPackage目录下,解压并安装。:

1、 缺少apr模块(1.5.1)
官网URL:http://apr.apache.org/
安装命令:
[]# tar zxvf apr-1.5.1.tar.gz
[]# cd apr-1.5.1
[]# ./configure –with-apr=/usr/local/apr
[]# make && make install
2、 缺少apr-util模块(1.6.1)
官网URL:http://apr.apache.org/
安装命令:
[]# tar zxvf apr-util-1.6.1.tar.gz
[]# cd apr-util-1.6.1
[]# ./configure –with-apr=/usr/local/apr
[]# make && make install

3.如果报错:fatal error: expat.h: No such file or directory
解决方法如下:
yum install expat-devel

4、 sqlite-amalgamation-3230100
官网URL:http://www.sqlite.org/download.html
解压到subversion目录下,解压后目录名为sqlite-amalgamation:
[]# unzip sqlite-amalgamation-3230100.zip -d …/subversion-1.8.15
[]# mv …/subversion-1.8.15/sqlite-amalgamation-3230100 …/subversion-1.8.10/sqlite-amalgamation
5、 缺少zlib模块(1.2.11)
官方网站:http://www.zlib.net/
安装命令:
[]# tar zxvf zlib-1.2.11.tar.gz
[]# cd zlib-1.2.11
[]# ./configure
[]# make && make install
6、 缺少openssl模块(1.0.1h)
官方网站:http://www.openssl.org/
安装命令:
[]# tar zxvf openssl-1.0.1h.tar.gz
[]# cd openssl-1.0.1h
[]# ./config
[]# make &&make install
7、 缺少expat模块(2.1.0)
官方网站:http://sourceforge.net/projects/expat/files/expat/2.1.0/
安装命令:
[]# tar zxvf expat-2.1.0.tar.gz
[]# cd expat-2.1.0
[]# ./configure
[]# make &&make install
8、 缺少serf模块(1.2.1)
官网URL:http://serf.googlecode.com/files/serf-1.2.1.tar.bz2
由于google官网受限,很难下载该模块。CSDN共享的下载地址:
http://download.csdn.net/detail/attagain/8071513
说明:
(1)1.8版本之前的需要加neon,1.8版本之后弃用neon而改使用serf;
(2)这里使用的是serf-1.2.1,据subversion 1.8版本使用serf-1.3.0会有异常
安装命令:
[]# tar xjvf serf-1.2.1.tar.bz2
[]# cd serf-1.2.1
[]# ./configure
[]# make && make install

C.在/usr/local/java/svn/subversion-1.8.19目录下执行下面命令:

[]# make && make install

第四步:SVN版本库的建立

A.我选择的目录是 /home/svn/作为SVN版本库的根目录,命令为:

[]# mkdir /home/svn

B.比如,现在我有一个名为“project”的项目需要用SVN做版本管理,那么我可以在svn根目录下建立一个 /project目录,我最终目的想让项目托管到/project目录下。接下来我需要新建这个目录:/home/svn/project

,命令为:
[]# mkdir -p /home/svn/project

C.然后需要将/project目录设定为版本库,命令如下:

[]# svnadmin create /home/svn/project

D.设定/project目录为版本库后,会发现/project目录下会多出以下文件:

在这里插入图片描述

第五步:svn服务器的相关配置:

svn的配置主要就是对conf目录下的三个文件配置:svnserve.conf、passwd、authzs。

A.对着三个配置文件的讲解

a.svnserve.conf文件讲解
[general]配置段中配置行格式: <配置项> = <值> ,常用的配置项是以下5项:

(1)anon-access控制非鉴权用户访问版本库的权限。取值范围为”write”、”read”和”none”。即”write”为可读可写,”read”为只读,”none”表示无访问权限。
缺省值:read
(2)auth-access控制鉴权用户访问版本库的权限。取值范围为”write”、”read”和”none”。即”write”为可读可写,”read”为只读,”none”表示无访问权限。
缺省值:write
(3)password-db 指定用户名口令文件名。除非指定绝对路径,否则文件位置为相对conf 目录的相对路径。
缺省值:passwd
(4)authz-db 指定权限配置文件名,通过该文件可以实现以路径为基础的访问控制。除非指定绝对路径,否则文件位置为相对conf目录的相对路径。
缺省值:authz
(5)realm 指定版本库的认证域,即在登录时提示的认证域名称(就是个作为提示用的,不用太纠结)。
b.passwd文件讲解
用户名口令文件,该文件名在文件svnserve.conf中指定,缺省为同目录下的passwd。

该文件仅由一个[users]配 置段组成。
[users]配置段的配置行格式如下: <用户名> = <口令> ,注意:配置行中的口令是未经过任何处理的明文。
例:用户名口令文件conf/passwd的内容如下,配置了两个用户,用户名分别为”quanran”和”dongxuening”。其中”quanran”用户的口令为”111111”,”dongxuening”用户的口令为”222222”:
[users]
quanran = 111111
dongxuening = 222222

c.authzs文件讲解
权限配置文件,该文件名也在文件svnserve.conf中指定,缺省为同目录下的authz。
该配置文件由一个[groups]配置段和 若干个版本库路径权限段组成。

[groups]配置段中配置行格式如下:
<用户组> = <用户列表>
用户列表由若干个用户组或用户名构成,用户组或用户名之间用逗号”,”分隔,引用用户组时要使用前缀”@”(如:引用用户组”all”要使用字符 串”@all”)。

版本库路径权限段的段名格式如下:
[<版本库名>:<路径>]
如版本库abc路径/tmp的版本库路径权限段的段名为”[abc:/tmp]”。
可省略段名中的版本库名。若省略版本库名,则该版本库路径权限段对所有版本库中相同路径的访问控制都有效。如:段名为”[/tmp]”的版本库路径权限段 设置了所有引用该权限配置文件的版本库中目录”/tmp”的访问权限。

版本库路径权限段中配置行格式有如下三种:
<用户名> = <权限>
<用户组> = <权限>

  • = <权限>
    其中,”*”表示任何用户;权限的取值范围为”、’r’和’rw’,”表示对该版本库路径无任何权限,’r’表示具有只读权限,’rw’表示有读写权 限。
    注意:每行配置只能配置单个用户或用户组。

例3:权限配置文件conf/authz的内容如下:
[groups]
g_admin = admin,zhangsan

[admintools:/]
@g_admin = rw

  • =

[test:/home/zhangsan]
zhangsan = rw

  • = r

在上述配置文件中,定义了一个用户组”g_admin”,该用户组包含用户”admin”和”zhangsan”。然后定义了2个版本库路径权限段。其中, 版本库”admintools”只有用户组”g_admin”可读写,其他用户无任何权限;版本库”test”中路径”/home/zhangsan”只有 用户”zhangsan”有读写权限,其他用户只有可读权限。

B.言归正传!开始配置!

(1)配置svnserve.conf
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
备注:vi命令编辑svnserve.conf,insert进入编辑模式,放开以上选项,ESC :wq保存。设置非鉴权用户无权访问、设置鉴权用户可读写、口令及权限配置参照conf目录下passwd和authz的配置。
重要提醒!!:首行不可以留空,要顶行,否则会造成SVN识别为配置错误。
(2)配置passwd

[users]
rokay = 123456
备注:配置了一个用户为“rokay”,密码为“123456”的用户。
(3)配置authz
[groups]
g_admin = rokay

[/]
@g_admin = rw
*=

备注:配置了一个管理员群组“g_admin”,包含用户“rokay”;
“[/]”表示对根目录“trunk”的权限配置。
配置了“g_admin”群组对于该目录下的权限为“rw“(读、写)权限。

  • = 配置了除群组”g_admin“外的其他用户均无权访问。
    注意:也可以用“,”分隔多个用户或者@+群组名称的方式配置多用户,参看上方说明。
    (4)综上,就完成了对三个文件也就是svnserve的配置了。

第六步:启动svn服务

输入命令:# svnserve -d -r /home/svn
注意:/svn目录为版本库的根目录,所以路径仅到/svn即可。

此时,SVN服务器的配置以及版本库已经建立完成!

第七步:SVN Windows客户端访问

访问地址:svn://[服务器IP地址]/[项目名称];

例如:svn://123.206.73.117/project/

输入已授权的用户信息登录即可访问资源位置。
同样的,可以通过右击项目[team]—[share],输入以上URL将项目共享至新建的SVN版本库中。

注意:上述地址中没有”/svn”这一级目录,”/svn”为版本库根目录,不用输入!!!

第八步:新建多个版本库

若要在/svn目录下添加新的版本库,直接新建相应的目录,然后设置为版本库,最后配置即可,不需要重新运行svnserve -d -r /home/svn,也不需要把该命令应用到/svn目录下你所新建的目录,如果因为误操作执行了以上命令,会导致资源库不可用,再次运行svnserve -d -r /home/svn也会报:“不能绑定服务器套接字 地址已在使用”的错误字样“(若已至此,删除掉新建的资源库,并用ps -ef | grep svnserve查看进程,kill -9 [进程号] 杀掉,重新执行svnserve -d -r /home/svn,再次新建资源库,直接配置即可使用)

比如在/svn目录下另外新建一个project2的资源库,命令如下:
[]# mkdir -p /home/svn/project2
[]# svnadmin create /home/svn/project2
:# 在次配置当前版本库的三个配置文件:svnserve.conf、passwd、authzs。
(不需再运行svnserve -d -r /home/svn !!!)

第九步:一切搞定,OK啦!

=第二种:yum安装方式。优点:简单,一键安装,不用手动配置环境变量等。缺点:安装位置为yum默认=

一、yum安装subversion

1. 安装subversion yum install subversion

2. 查看安装版本,检查安装是否成功 svnserve –version ,我装的版本为 1.7.14

3. 查看安装位置 rpm -ql subversion

二、创建版本库

1.创建用于存放版本库的目录,比如我准备在/home下创建版本库 mkdir -p /home/svn/

2.创建svn版本库,指定为刚才创建的目录 svnadmin create /home/svn/porject

3.创建完后,版本库目录下会生成一些文件,进入conf目录下。conf目录中authz文件是权限控制文件,passwd是帐号密码文件,svnserve.conf是SVN服务配置文件。

     修改svnserver.conf文件:

        [general]
        anon-access = none #匿名用户可读
        auth-access = write #授权用户可写
        password-db = passwd #使用哪个文件作为账号文件
        authz-db = authz #使用哪个文件作为权限文件

4.修改passwd文件,加入用户,格式就是“用户名=密码”,如:

         quanran = 11

        dongxuening = 22

5.修改authz文件,加入用户权限:

[/]

quanran = rw

       dongxuening = r

这就表示quanran 用户对版本库根目录有读写权限(即最高权限了),而dongxuening 用户对版本库目录只有读的权限。

6.svnserve.conf里面常用的配置有设置匿名用户(默认可读)、授权用户(默认读写)的读写权限,以及指定账号文件(默认passwd)、权限文件(默认authz)的路径等。看起来应该默认值就够了,但实际使用发现还是得手动把相关注释打开,不知道是什么原因。

7.启动svn版本库 svnserve -d -r /home/svn/

其中,-r的作用是设置根目录路径,比如我这样设置后在访问时输入svn://x.x.x.x/就会直接到我的svn目录下(当然在svn目录下是找不到版本库的),如果想访问版本库则输入svn://x.x.x.x/Code即可。

换句说话,如果启动版本库时命令为svnserve -d -r /home/svn/,则访问svn://x.x.x.x/就能直接到版本库内。

三、常见问题

1.注意打开端口的访问权限。svn服务的默认端口为3690,比如我部署在阿里云服务器上,必须先在阿里云控制台打开3690端口的外部访问权限。

2.关闭svn服务的方式是杀掉进程,kill pid或者pkill svnserve
————————————————
版权声明:以上文为CSDN博主「全冉」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_23167527/article/details/80182317

解决SVN 无法连接到服务器问题

问题描述:

1、由于目标计算机积极拒绝,无法连接
2、由于连接方在一段时间后没有正确答复或连接

解决方法

1、svn 未启动,启动svn: svnserve -d -r ‘svn的仓库路径’
2、防火墙原因,开放svn端口: 添加3690端口

问题描述

报No repository found in … …错误

解决方法

1、原因是svn指定运行仓库路径错误
2、查看svn进程:ps -aux|grep svn

root     28813  0.0  0.0 166804   936 ?        Ss   11:50   0:00 svnserve -d -r /mnt/svn
root     29456  0.0  0.0 112640   960 pts/0    S+   13:14   0:00 grep --color=auto svn

如果 svnserve -d -r /mnt/svn 指定的仓库路径与实际仓库路径不匹配,杀掉该进程后重新指定正确的仓库路径
3、本人服务器实际仓库路径是 /mnt/svn/repos,杀死进程:kill -9 28813
4、重新启动SVN,指定正确SVN仓库路径:svnserve -d -r /mnt/svn/repos
5、查看svn进程:ps -aux|grep svn

root     28813  0.0  0.0 166804   936 ?        Ss   11:50   0:00 svnserve -d -r /mnt/svn/repos
root     29456  0.0  0.0 112640   960 pts/0    S+   13:14   0:00 grep --color=auto svn

访问SVN成功!
————————————————
版权声明:本文为CSDN博主「止木」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011050607/article/details/79456915

linux操作防火墙,添加服务、端口

操作防火墙,添加或删除端口,需要root权限。

  1. 查看防火墙状态:systemctl status firewalld
    active(running):开启状态,正在运行中
    inactive(dead):关闭状态,未在运行
  2. 开启防火墙:systemctl start firewalld,没有任何提示,表示开启成功
  3. 关闭防火墙:systemctl stop firewalld
  4. 添加mysql服务到防火墙,并加载
    firewall-cmd –permanent –zone=public –add-service=mysql
    firewall-cmd –reload
  5. 打开防火墙的udp 8089端口
    firewall-cmd –zone=public –add-port=8089/udp –permanent
    #添加端口(–permanent表示永久生效,没有此参数重启后失效)
    firewall-cmd –reload 这个命令必须运行,才能加载成功
  6. 查看udp 8089端口是否添加成功,查询端口开启情况
    firewall-cmd –zone=public –query-port=8089/udp
    在这里插入图片描述
  7. 删除防火墙8086端口
    firewall-cmd –zone=public –remove-port=8086/tcp –permanent
    firewall-cmd –reload
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/180843.html原文链接:https://javaforall.net

(0)
上一篇 2022年10月17日 下午10:00
下一篇 2022年10月17日 下午10:16


相关推荐

  • python机器学习库sklearn——交叉验证(K折、留一、留p、随机)

    python机器学习库sklearn——交叉验证(K折、留一、留p、随机)全栈工程师开发手册 作者 栾鹏 python 数据挖掘系列教程学习预测函数的参数 并在相同数据集上进行测试是一种错误的做法 一个仅给出测试用例标签的模型将会获得极高的分数 但对于尚未出现过的数据它则无法预测出任何有用的信息 这种情况称为 overfitting 过拟合 为了避免这种情况 在进行 监督 机器学习实验时 通常取出部分可利用数据作为 testset 测试

    2026年3月17日
    1
  • R语言PCA分析_r语言可视化代码

    R语言PCA分析_r语言可视化代码R语言中的PCA分析函数R语言常用PCA分析函数有prcomp与princomp,二者主要是计算方法的差别,建议采用prcomp(SVD方法)prcomp函数prcomp函数使用较为简单,但是不同于常规的求取特征值和特征向量的方法,prcomp函数是对变量矩阵采用SVD方法计算其奇异值(原理上是特征值的平方根),函数帮助中描述为函数结果中的sdev。prcomp函数输入参数为变量矩阵(x…

    2022年10月12日
    4
  • linux dstat,dstat 用法详解

    linux dstat,dstat 用法详解Windows 下有性能监视器 Linux 下当然也不示弱 亲还在用 vmstat iostat nfsstat netstat ifstat 来查看系统性能状态 那你就弱爆了 今天给亲一个神器 只需他一个你就可以得到以上这么多工具综合的功能 闲言表过 步入正题 dstat 如果系统没有些工具 yum yinstalldsta 安装下即妥 此软件小巧玲珑 软件包大小只有 144k 安装

    2025年9月13日
    8
  • Advanced SystemCare Pro v12.x.x 激活码 亲测可用

    Advanced SystemCare Pro v12.x.x 激活码 亲测可用AdvancedSystemCare12Pro激活码DA824-3A1B0-1FB0A-37954有效期:2019-5-23原文链接:http://tieba.baidu.com/p/5965285169

    2022年10月20日
    4
  • 【DeepSeek教程】全面解析DeepSeek-V3 模型到底强在哪,以及如何运行它?一文搞定!

    【DeepSeek教程】全面解析DeepSeek-V3 模型到底强在哪,以及如何运行它?一文搞定!

    2026年3月16日
    2
  • pep8风格指南_pep方案是什么意思

    pep8风格指南_pep方案是什么意思参考链接:https://github.com/jackfrued/Python-100-DaysPEP8风格指南  PEP是PythonEnhancementProposal的缩写,通常翻译为“Python增强提案”。每个PEP都是一份为Python社区提供的指导Python往更好的方向发展的技术文档,其中的第8号增强提案(PEP8)是针对Python语言编订的代码风格指南。尽管我们…

    2025年6月14日
    3

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号