银行项目的主机不能连接外网,只能在离线模式下安装SVN,故记录下本次安装过程。
1、下载必须文件以及依赖文件
apr-1.7.6.tar.gz: http://apr.apache.org/download.cgi
apr-util-1.6.3.tar.gz: http://apr.apache.org/download.cgi
sqlite-autoconf-3500100.tar.gz:https://www.sqlite.org/download.html
zlib-1.2.11.tar.xz: https://linux.softpedia.com/get/Programming/Libraries/zlib-159.shtml
subversion-1.14.5.tar.gz: http://subversion.apache.org/download/
expat_2.0.1.orig.tar.gz:https://launchpad.net/ubuntu/+source/expat/2.0.1-7.2ubuntu1.4 虽然是ubuntu的, centos也能用
2、上传文件到服务器并解压
- 将下载文件利用U盘、磁盘或网络 上传到
/home/svn
目录下 - 使用以下命令进行解压
tar -xzvf apr-1.7.6.tar.gz
tar -xzvf apr-util-1.6.3.tar.gz
tar -xzvf subversion-1.14.5.tar.gz
tar -xzvf sqlite-autoconf-3500100.tar.gz
tar -zxvf expat_2.0.1.orig.tar.gz由于zlib是.tar.xz压缩文件,故需要两步,先转成gz文件zlib-1.2.11.gz,再解压,若为.tar.gz,同上
xz -d zlib-1.2.11.tar.xz
tar -xvf zlib-1.2.11.gz
3、开始安装
- 安装apr、expat、apr-util
cd /home/svn/apr-1.7.6
./configure --prefix=/home/svn/apr-1.7.6
make
make installcd /home/svn/expat_2.0.1
./configure
make
make installcd /home/svn/apr-util-1.6.3
./configure --prefix=/home/svn/apr-util-1.6.3 --with-apr=/home/svn/apr-1.7.6
make
make install
- 安装zlib
cd /home/svn/zlib-1.2.11
./configure --prefix=/home/svn/zlib-1.2.11
make
make install
- 安装subversion
cd /home/svn将sqlite移动到subversion目录下
mv sqlite-autoconf-3500100 ./subversion-1.14.5/sqlite-amalgamation
cd subversion-1.14.5安装subversion
./configure --prefix=/home/svn/subversion-1.14.5 --with-apr=/home/svn/apr-1.7.6 --with-apr-util=/home/svn/apr-util-1.6.3 --with-zlib=/home/svn/zlib-1.2.11 --with-lz4=internal --with-utf8proc=internal
make
make install
4、配置profile
vi /etc/profile
export PATH=$PATH:/home/svn/subversion-1.14.5/bin
source /etc/profile
5、验证安装结果
svnserve --version
打印版本信息即安装成功
6、配置开机自启文件
创建Systemd服务文件:
sudo vi /etc/systemd/system/svnserve.service
内容:
[Unit]
Description=Subversion Protocol Daemon
After=network.target[Service]
Type=forking
ExecStart=/usr/bin/svnserve -d -r /var/svn --listen-port 3690
Restart=on-failure[Install]
WantedBy=multi-user.target
启用服务:
sudo systemctl daemon-reload
sudo systemctl enable svnserve
sudo systemctl start svnserve
7、防火墙配置
开放SVN默认端口(3690):
# Ubuntu/CentOS通用
sudo ufw allow 3690/tcp# 或使用firewalld(CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=3690/tcp
sudo firewall-cmd --reload
8、创建仓库
sudo mkdir -p /var/svn/repos
sudo svnadmin create /var/svn/repos/myrepo
9、配置仓库权限
编辑 /var/svn/repos/myrepo/conf/
下的以下文件:
- svnserve.conf:
[general]
anon-access = none
auth-access = write
password-db = passwd
authz-db = authz
realm = My Offline SVN
- passwd(用户密码):
[users]
admin = admin@123
dev1 = dev1@pass
- authz(权限控制):
[groups]
dev_team = dev1[/]
admin = rw[myrepo:/project]
@dev_team = rw
10、重启服务
sudo systemctl stop svnserve
sudo systemctl start svnserve