SVN server on ubuntu

安装SVN svr

apt-get update
​
apt-get install subversion

卸载SVN svr

apt-get remove --purge subversion

查看svn svr版本信息

svnserve --version

创建SVN版本库

sudo mkdir /home/svn
sudo mkdir /home/svn/repository
cd /home/svn/repository
​
mkdir repository
#mkdir -p  /home/svn/repository
​
sudo chmod -R 777 /home/svn/repository

创建svn仓库

svnadmin create /home/svn/repository
​
sudo svnadmin create /home/svn/repository

执行命令后,会在repository下生成以下文件:

ls repository

对db进入权限设置

cd /home/svn/repository
sudo chmod -R 777 db

设置访问权限

修改配置文件svnserve.conf

cd  /home/svn/repository
cd ./conf

vi svnserve.conf

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

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

添加访问用户

修改password文件,添加访问用户

cd  /home/svn/repository
cd ./conf
vi passwd 

新增用户格式:名字 = 密码

user = user1234567

给用户增加目录权限

sudo vi authz
对以上进行解释:


# 用户王属于admin权限组
admin = user

# admin权限组的权限是读和写
# @admin = rw

# 所有的组都具有读权限
# * = r

normal = user1

[/]
@admin = rw
@normal = rw

具体意义及说明已经在图中标注写明了,图中的授权方式为对用户组进行授权,这里再提下

[/]
@admin = rw
@normal = r

这个部分的说明,上面的 [/] 表示对根目录进行授权,即用户组成员对所有项目都具有权限共通性,我们如果要针对不同项目去设置不同权限,可以如下操作

[JAVA:/]
user = rw  //表示用户 user 对项目 JAVA 的所有内容具有读写权限
Liu = r  //表示用户 Liu 对项目 JAVA 的所有内容仅具有读权限
​
[Python:/]
Ming = rw  //表示用户 Ming 对项目 Python 的所有内容具有读写权限
Tao = r  //表示用户 Tao 对项目 Python 的所有内容仅具有读权限
​

上面这种做法可以保证Heath仅拥有JAVA项目的读写权限,没有Python项目的权限,保证项目组成员之间的信息安全和项目安全,也便于项目组成员之间的管理。

精确目录权限控制

[/]
A=rw
A拥有版本库根目录读写的权限
​
[/Android]
A=rw
B=r
A拥有Android目录读写的权限
B拥有Android目录读的权限,但没有写的权限
[/Android/Project1]
A=rw
*=r
A拥有/Android/Project1目录读写的权限
所有人都拥有/Android/Project1目录读的权限

svn srv启停

启动SVN服务器

svnserve -d -r /home/svn/repository
​
svnserve -d -r /home/svn/repository --listen-port 81

-d:表示在后台运行
​
-r:指定服务器的根目录

如果提示:权限不够。

切换到root权限
命令:sudo su
重试启动svn:svnserve -d -r /home/svn --listen-port 81
​

查看是否启动成功

ps aux | grep svnserve
​
netstat -alnt

停止服务器

killall svnserve

如下图 说明已经关闭了

ps aux | grep svnserve

远程访问

这样访问服务器时就可以直接用”svn://服务器ip/repository”来访问了。

svn://ip:port
​
svn://192.168.1.15:81

### 配置和访问 Ubuntu SVN 服务器的 Web 界面 #### 使用 Apache 和 Submin 实现 Web 管理界面 对于希望在 Ubuntu 上设置 SVN 服务器并通过 Web 浏览器进行管理的情况,可以利用 Apache HTTP Server 结合 Submin 工具来创建直观易用的图形化操作平台[^1]。 - **安装必要的软件包** 确保已经正确安装了 Apache2 及其模块 `libapache2-svn` ,这允许 Apache 支持 SVN 协议。另外还需要安装 Submin 来提供 Web UI 功能。 ```bash sudo apt-get update && sudo apt-get install apache2 libapache2-mod-svn submin ``` - **配置 Apache 虚拟主机** 编辑 `/etc/apache2/sites-available/svn.conf` 文件定义新的虚拟站点或者修改现有配置以支持 SVN 访问路径。通常会指定 `<Location>` 指令指向 SVN 存储库位置,并启用 DAV_SVN 模块处理版本控制请求。 ```xml <Location /svn> DAV svn SVNParentPath /var/lib/svn </Location> ``` - **集成 Submin 到 Apache 中** 完成上述基础环境准备之后,需进一步调整使 Submin 成功嵌入到现有的 Apache 设置里工作。具体做法涉及更改 Submin 的 CGI 或 WSGI 接口参数以便于同 Apache 进行交互。 - **启动服务并测试连接** 重启 Apache 服务让改动生效: ```bash sudo service apache2 restart ``` 此时应该可以通过浏览器输入类似 http://yourserverip/svn 地址查看由 Submin 提供的服务页面,进而执行诸如浏览历史记录、提交变更等常规任务。 #### SSL 加密传输保障安全性 考虑到数据安全的重要性,在实际部署过程中建议开启 HTTPS 协议加密通信链路。这意味着除了基本的 SVN/WebUI 组件外,还需额外关注 OpenSSL 库以及相应证书申请/自签发流程[^2]。 通过以上方法可以在 Ubuntu 平台上成功构建起带有友好前端接口的支持远程协作开发工作的 SVN 版本控制系统。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值