网站后台空间满了怎么办,网易最新消息新闻,个人网站网站,一个网站值多少钱最近需要在ubuntu server上部署一个svn#xff0c;记录 不需要特定版本
如果不需要特定版本#xff0c;这样安装就是最简单的
sudo apt update然后开始安装
sudo apt install subversion等到安装完成之后执行查看版本命令#xff0c;如果正常输出那就没问题了
svnadmin … 最近需要在ubuntu server上部署一个svn记录 不需要特定版本
如果不需要特定版本这样安装就是最简单的
sudo apt update然后开始安装
sudo apt install subversion等到安装完成之后执行查看版本命令如果正常输出那就没问题了
svnadmin --version
安装特定版本
这就需要手动下载包和安装依赖我这边就用1.14.1举例了
sudo apt update安装必要的依赖
sudo apt-get install libapr1-dev libaprutil1-dev libsqlite3-dev zlib1g-dev liblz4-dev libutf8proc-dev下载 Subversion 1.14.1 的源代码。在浏览器中打开 Apache Subversion 下载页面 并复制链接地址然后在终端中使用 wget 命令下载
wget https://archive.apache.org/dist/subversion/subversion-1.14.1.tar.gz
解压源代码
tar -xzvf subversion-1.14.1.tar.gz
进入解压后的目录
cd subversion-1.14.1
配置 如果这个命令当中报错缺少什么包就进行单独apt安装就行了(我这边缺的包在开头已经在第一步单独进行安装但是不排除某些特殊版本可能依赖不一样)
./configure
编译
make
安装
sudo make install
等待命令完成就可以执行版本命令检查是否安装正确
svnadmin --version 如果报错
svnadmin: error while loading shared libraries: libsvn_fs_fs-1.so.0: cannot open shared object file: No such file or directory 就参考我这篇blogSVN手动下载安装包编译安装之后,执行svnadmin命令报错svnadmin: error while loading shared libraries: libsvn_fs_fs-1.so.0-CSDN博客
新建repo
创建一个新的 SVN 仓库
svnadmin create /path/to/new/repository
将 /path/to/new/repository 替换为你希望创建仓库的路径。
如果你有个某个svn的备份文件dump可以运行这个进行导入
svnadmin load /path/to/new/repository your_dump_file创建用户
进入你的 SVN 仓库目录
cd /path/to/new/repository
将 /path/to/new/repository 替换为你创建的 SVN 仓库路径。
创建一个新的 SVN 用户
sudo vim conf/passwd
然后在里面添加你需要的用户名和密码 配置 SVN 权限
打开 SVN 仓库的 conf 目录
cd /path/to/new/repository/conf 编辑 svnserve.conf 文件(ctrlo保存ctrlx退出)
nano svnserve.conf
将 anon-access 和 auth-access 设置为 none并确保 authz-db 行没有注释去掉前面的 #
anon-access none
auth-access write
authz-db authz#anon-access none#意义该配置项指定匿名用户未经身份验证的用户的访问权限。在这里none 表示禁止匿名用户访问他们无法读取或写入版本库。
#其他可能的值
#read允许匿名用户只读访问版本库。
#write允许匿名用户读写访问版本库。
#auth-access write#意义该配置项指定经过身份验证的用户的访问权限。在这里write 表示身份验证用户具有读写访问版本库的权限。
#其他可能的值
#read身份验证用户只有读取版本库的权限。
#write身份验证用户具有读写访问版本库的权限。
#authz-db authz#意义该配置项指定用于访问控制的权限数据库文件的路径。在这里authz 表示使用名为 authz 的文件作为权限数据库。
#默认情况下authz 文件中定义了用户和组的权限规则用于更精细地控制用户对特定路径的访问权限。
保存并关闭文件。 创建并编辑 authz 文件
nano authz
在文件中添加用户权限配置例如
[groups]
developers username[/]
developers rw
这将创建一个组 developers其中包含名为 username 的用户并为该组授予对仓库的读写权限。
在 SVN 的 authz 文件中你可以通过在 groups 部分为组添加多个用户然后在权限部分为该组分配相应的权限。以下是一个示例演示如何添加多个用户到组
[groups]
developers user1, user2, user3[/]
developers rw
在这个例子中developers 组包含了三个用户user1、user2 和 user3。然后developers 表示将权限赋予该组。这意味着 user1、user2 和 user3 都将具有对整个仓库的读写权限。
如果要为不同的目录或项目设置不同的权限你可以在 authz 文件中添加更多的部分例如
[groups]
developers user1, user2, user3[/project1]
developers rw[/project2]
developers r[project3:/]
user1 rw[project4:/]
*
在这个例子中/project1 目录对 developers 组开放读写权限而 /project2 目录只开放读权限。
project3 只对user1开放读写 project4任何人都没有权限
记得在修改 authz 文件后重新启动 SVN 服务器以使更改生效。
关闭svn进程命令
sudo pkill svnserve
查看svn进程命令
ps aux | grep svnserve
然后保存并关闭文件。
启动 SVN 服务器
返回到 SVN 仓库的根目录
cd /path/to/new/repository
启动 SVN 服务器
svnserve -d -r /path/to/new/
-d 选项表示以守护进程后台模式运行-r 选项指定 SVN 服务器的根目录。
然后拉取的url就是.repository就是你项目的名字
svn://vm_ip/repository 配置SVN自启动
这边如果想要server启动的时候svn就自动启动就需要配置service
打开文本编辑器创建一个新的服务文件例如 svnserve.service
sudo nano /etc/systemd/system/svnserve.service
在编辑器中添加以下内容替换 /path/to/new/repository 为你的 SVN 仓库路径
如果不知道svnserve你vm中的路径,可以使用这个命令查看
which svnserve pkill 同理
which pkill [Unit]
DescriptionSubversion SVN Serve[Service]
Typeforking
ExecStart/usr/local/bin/svnserve -d -r /path/to/new/
ExecStop/usr/bin/pkill svnserve
UsercortexDemo[Install]
WantedBymulti-user.target
将 your_username 替换为运行 SVN 服务的用户名
保存并关闭文件。
重新加载 systemd 配置
sudo systemctl daemon-reload
启用 SVN 服务使其在系统启动时自动启动
sudo systemctl enable svnserve.service
手动启动 SVN 服务
sudo systemctl start svnserve.service
现在SVN 服务将在系统启动时自动启动。你可以使用以下命令检查服务状态
sudo systemctl status svnserve.service
确保在 Active 行中看到 running 表示服务正在运行。
查看具体log
sudo journalctl -f -u svnserve -n 100