Linux 安装 svn
Linux 安装 svn
一、网络安装
服务器可以连接外网的情况下直接通过命令安装即可:
yum install subversion查看版本:
svn --version --quiet二、本地安装(待办)
三、初始配置
1. 建立版本库目录
首先,需要创建一个目录来存放 SVN 版本库,一个项目建立新的版本库:
mkdir -p /home/svn/svndata/repos这条命令创建了一个名为 repos 的目录在 /home/svn/svndata/ 下。-p 参数确保了即使上级目录不存在,也会一并创建。
2. 建立版本库
接下来,使用 svnadmin create 命令在 repos 目录下创建一个新的 SVN 版本库(与上面目录对应)。
svnadmin create /home/svn/svndata/repos/project1这条命令会在 repos 目录下创建一个名为 project1 的新版本库,并自动生成所需的配置文件。
3. 修改配置文件
现在需要修改版本库的配置文件,以设置访问权限和认证。
vim /home/svn/svndata/repos/project1/conf/svnserve.conf找到下列配置项,确保配置项前的注释(#)被删除,且每项配置都位于行首:
[general]
anon-access = none # 非授权用户无法访问
auth-access = write # 授权用户有写权限
password-db = passwd # 指定密码文件路径
authz-db = authz # 访问控制文件
realm = /home/svn/svndata/repos # 认证命名空间4. 配置用户
设置 SVN 用户及其密码。
vim /home/svn/svndata/repos/project1/conf/passwd在 passwd 文件中添加用户认证信息:
[users]
svnAdmin = svnpwd这里 [users] 下的 svnAdmin 是用户名,svnpwd 是对应的密码。
5. 配置权限
设置不同用户的访问权限。
vim /home/svn/svndata/repos/project1/conf/authz在 authz 文件中定义权限:
[groups]
svnuser = svnAdmin
[/]
@svnuser = rw这里定义了一个用户组 svnuser 并赋予了对根路径 / 的读写权限(rw)。
6. 创建日志文件
虽然 SVN 自带日志功能,但可以创建一个自定义日志文件来记录操作。
cd /home/svn/svndata/repos/conf
touch svnlog.txttouch 命令创建了一个新的空文件 svnlog.txt。
7. 使用 import 导入文件
将本地的 project1 文件夹导入到 SVN 版本库中。
cd /home/svn/svndata/repos
svn import project1 file:///home/svn/svndata/repos/project1 -m "first import"这条命令导入了 project1 目录到版本库,并附带了一条提交信息 "first import"。
8. 检出副本
svn checkout file:///home/svn/svndata/repos/project1 workcopy9. 启动服务
最后,启动 svnserve 服务来监听客户端的 SVN 请求。
svnserve -d -r /home/svn/svndata/repos --log-file /home/svn/svndata/repos/conf/svnlog.txt-d 参数表示以守护进程模式运行,-r 指定了版本库的根目录。
#注:停止 svnserve 服务 pkill -f svnserve
10. 检查服务状态
ps aux | grep svnserve11. 测试检出
cd /home
svn checkout svn://127.0.0.1/project1
# 可以在home目录下看到project1目录12. 配置防火墙
直接查看 443 端口是否开放:
sudo firewall-cmd --zone=public --query-port=443/tcp
手动添加端口规则:
sudo firewall-cmd --permanent --zone=public --add-port=443/tcp重新加载 firewalld 以应用更改:
sudo systemctl reload firewalld再次执行命令检查更改是否生效:
sudo firewall-cmd --zone=public --query-port=443/tcp
