ubuntu上安装调试SVN服务

        刚成立团队需要临时搭建一台SVN服务器,所以对照网上的一些提示做了下,操作起来不复杂,还是踩了不少坑,顺便原理性了解了下。

        主要操作步骤如下:

1:安装svn

sudo apt-get install subversion

2: 创建svn版本库

先建目录,之后目录中创建respository

sudo mkdir /home/szbullsoft/svn

sudo mkdir /home/szbullsoft/svn/repository

3:修改权限

sudo chmod -R 777 /home/szbullsoft/svn/repository

4:创建版本库

sudo svnadmin create /home/szbullsoft/svn/repository

执行完成后,在/home/ szbullsoft/svn/repository 这个目录下,有如下文件:

Conf  db  format hooks locks 

5:给db权限

sudo chmod –R 777 /home/szbullsoft/svn/repository/db

6: 配置conf

cd /home/szbullsoft/svn/repository/conf

#配置svnserve.conf

sudo vim svnserve.conf

修改前:

修改后:

说明:(去掉前面的#,并且顶格)
anon-access = none 匿名用户不可读
auth-access = write 权限用户可写

password-db = passwd 密码文件为passwd
authz-db = authz
权限文件为authz

7:修改passwd文件,添加用户

Sudo vim passwd

#格式:名字 = 密码

[users]

Kongchengbo = kongcb123

gaohui = gaoh123

8: 修改权限文件authz

sudo vim authz

# 文件修改如下
[groups]

[/]

Kongchengbo=rw

Gaohui=r

9:启动服务

svnserve -d -r /home/szbullsoft/svn/repository

注意这个目录要保持一致哦,之前参照其他人的博客,配置为:

svnserve -d -r /home/szbullsoft/svn --listen-port 81

之后使用客户端访问的时候,一直提示:

或者中文提示:由于目标计算机积极拒绝,无法连接

找了好多人的说法,都是防火墙,网络代理之类的问题,都不能解决,最后发现就是此处配置svnserve的目录是svnserve -d -r /home/szbullsoft/svn,该目录下并没有这些文件:Conf  db  format hooks locks,登录无法执行,都不会提示要输入用户名和密码的!!

10:修改svnserve

修改后,需要重启下svnserve,方式就是先查找id,之后kill,之后再配置:

svnserve -d -r /home/szbullsoft/svn/repository

配置完成后,就可以访问了,单客户端访问也分为两种,http和svn,一般单主机就是svn了,apache会用http,我在工作站电脑上安装的,所以就是svn,如果用http也会失败,提示信息类似9.

此时使用SVN再checkout就会提示要输入用户名和密码了!

11:文件和目录的增加删除操作

登录上,checkout提示没有文件夹

目录不对,改为svn://10.24.32.7/Doc也是一样的。

那我直接根目录下提交一个文件test.txt试试,是可以提交的,别的地方也能checkout出来。

那这个test.txt文件保存在哪里呢,到服务器/home/szbullsoft 目录下,find ./ -name “test.txt”

查找不到文件,那文件在哪里?

文心一言:当你向SVN仓库添加一个文件(比如 test.txt),这个文件的实际内容以及版本历史会被存储在 db 目录下。你无法在仓库的根目录(在这个例子中是 /home/szbullsoft/svn/repository)直接看到文件的最新版本,因为SVN使用了特定的数据库格式来存储这些信息。

那我需要下载Doc目录并添加内容呢,如何实现?

开始我以为要在哪里创建一个目录,试了没成功,后来明白了SVN数据存储原理:文件,文件夹都不是以文件形式存在,而是将数据存储在db库文件中

创建Doc目录简单做法就是:

mkdir Doc 

svn add Doc 

svn commit -m "Creating Doc directory"

之后就可以checkout 目录Doc了

12 电脑重启后配置

服务器配置好之后,在本地运行了几天都正常,今天搬到机房,启动后,ssh登陆正常,但SVN在commit的时候异常了,提示同之前:

这个首先怀疑还是网络问题,防火墙或者网关配置。实际命令查看如下:

kongcb@bull-ThinkStation-P330:~$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
80/tcp                     ALLOW       Anywhere                  
81/tcp                     ALLOW       Anywhere                  
3690/tcp                   ALLOW       Anywhere                  
443/tcp                    ALLOW       Anywhere                  
3069/tcp                   ALLOW       Anywhere                  
3069                       ALLOW       Anywhere                  
3690                       ALLOW       Anywhere                  
80/tcp (v6)                ALLOW       Anywhere (v6)             
81/tcp (v6)                ALLOW       Anywhere (v6)             
3690/tcp (v6)              ALLOW       Anywhere (v6)             
443/tcp (v6)               ALLOW       Anywhere (v6)             
3069/tcp (v6)              ALLOW       Anywhere (v6)             
3069 (v6)                  ALLOW       Anywhere (v6)             
3690 (v6)                  ALLOW       Anywhere (v6)  

实际配置3690是正常开放的,可以telnet查看下服务

kongcb@bull-ThinkStation-P330:~$  telnet 127.0.0.1 3690
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
kongcb@bull-ThinkStation-P330:~$ telnet 127.0.0.1 3690
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
kongcb@bull-ThinkStation-P330:~$ sudo ufw allow 81
Rule added
Rule added (v6)
kongcb@bull-ThinkStation-P330:~$ telnet 127.0.0.1 81
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
kongcb@bull-ThinkStation-P330:~$ telnet 127.0.0.1 21
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused
kongcb@bull-ThinkStation-P330:~$ telnet 127.0.0.1 22
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.11
^C
Connection closed by foreign host.
kongcb@bull-ThinkStation-P330:~$ telnet 127.0.0.1 334
Trying 127.0.0.1...
telnet: Unable to connect to remote host: Connection refused

如上,ssh端口是22,目前ssh服务开放的,所以telnet到22端口有响应,而其他端口,即使防火墙开着,telnet过去也是没反应的。

那这就说明svn服务其实没有打开

那我再命令打开下服务:

 svnserve -d -r /home/szbullsoft/svn/respository/

不指定服务端口,那就默认为3690,之后svn就正常了

贴士:

       重启svnserve操作:

sudo killall svnserve
sudo svnserve -d -r /home/szbullsoft/svn/respository/

故而,SVN连接的时候,提示“目标计算机积极拒绝,无法连接”,这样提示的时候,还有可能是服务没启动,或配置端口问题

另外,如果想启动的时候自动配置,可以修改下/etc/rc.local文件,如下:

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
svnserve -d -r /home/szbullsoft/svn/respository/
exit 0

增加svnserve -d -r /home/szbullsoft/svn/respository/ 可以每次电脑重启后,自动生效。

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
cllion是一个基于JetBrains平台的跨平台IDE,Ubuntu 20.04是一个常用的Linux操作系统。在Ubuntu 20.04上使用clion可以提供一个高效的开发环境。 首先,在Ubuntu 20.04上安装clion是非常简单的。只需在JetBrains官方网站下载clion的压缩包,解压后运行clion.sh脚本即可。安装过程中可能需要一些依赖项,但clion的安装向导会指导你安装所需的依赖项。 安装完成后,clion提供了一个友好的界面,可以方便地创建、打开和管理你的项目。clion支持各种编程语言,如C++、Java和Python等。你可以使用其强大的代码编辑功能,包括代码自动补全、语法高亮、代码导航等,来提高你的开发效率。 对于C++开发者来说,clion提供了很多有用的功能。它支持C++11、C++14和C++17的语法,并且具有强大的代码分析功能,可以帮助你找出代码中的错误和问题。clion还提供了调试功能,可以方便地调试你的程序,并且可以与常用的调试器集成,如GDB和LLDB。 此外,clion还支持与版本控制系统的集成。你可以将你的项目与Git、SVN等版本控制系统连接,方便地管理和追踪代码的变化。 总之,clion在Ubuntu 20.04上是一个强大且易于使用的开发环境,它提供了丰富的功能和工具,使你能够更加高效地进行软件开发。无论你是C++开发者还是其他编程语言的开发者,clion都是一个值得尝试的工具。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术的微光

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值