登录到服务器上,su - root
查看服务器上是否已经安装了软件
[root@single home]# rpm -qa subversion
[root@single home]#
没有显示任何东西,证明没有安装过软件
下面开始进行安装
新建一个文件夹用于存放软件和代码仓库的
[root@single home]# mkdir svn
[root@single home]# ls
data1 data2 data3 data4 db3 grid oracle svn
方框中选一个下载即可
通过sftp上传到linux服务器上 我习惯用xftp软件
Paste_Image.png通过命令行解压上传的软件包
[root@single svn]# ls
subversion-1.8.17.tar.gz subversion-1.9.5.tar.gz
[root@single svn]#
[root@single svn]# tar -xzvf subversion-1.8.17.tar.gz
[root@single svn]# ls
subversion-1.8.17 subversion-1.8.17.tar.gz subversion-1.9.5.tar.gz
进入到软件目录
[root@single svn]# cd subversion-1.8.17
[root@single subversion-1.8.17]#
测试安装
./configure --prefix=/home/svn
Paste_Image.png
这里提示需要apr,apr-util
查看是否安装了 apr,apr-util
[root@single subversion-1.8.17]# rpm -qa apr
[root@single subversion-1.8.17]# rpm -qa apr-util
[root@single subversion-1.8.17]#
圈中的都要下载
上传到服务器:
Paste_Image.png
解压软件:
[root@single svn]# ls
apr-1.5.2.tar.gz subversion-1.8.17 subversion-1.9.5.tar.gz
apr-util-1.5.4.tar.gz subversion-1.8.17.tar.gz
[root@single svn]#
[root@single svn]# tar -xzvf apr-1.5.2.tar.gz
[root@single svn]# tar -xzvf apr-util-1.5.4.tar.gz
[root@single svn]# ls
apr-1.5.2 apr-util-1.5.4 subversion-1.8.17 subversion-1.9.5.tar.gz
apr-1.5.2.tar.gz apr-util-1.5.4.tar.gz subversion-1.8.17.tar.gz
[root@single svn]#
接下来就是编译软件,make安装
[root@single svn]# cd apr-1.5.2
[root@single apr-1.5.2]# ./configure --prefix=/home/svn/apr-1.5.2
[root@single apr-1.5.2]# make
[root@single apr-1.5.2]# make test
[root@single apr-1.5.2]# make install
[root@single apr-1.5.2]# cd ../apr-util-1.5.4
[root@single apr-util-1.5.4]# ./configure --prefix=/home/svn/apr-util-1.5.4
Paste_Image.png
这里需要apr-util 依赖apr
[root@single apr-util-1.5.4]# ./configure --prefix=/home/svn/apr-util-1.5.4 --with-apr=/home/svn/apr-1.5.2
[root@single apr-util-1.5.4]# make
[root@single apr-util-1.5.4]# make test
[root@single apr-util-1.5.4]# make install
再次测试安装
[root@single apr-util-1.5.4]# cd ../subversion-1.8.17
[root@single subversion-1.8.17]# ./configure -- prefix=/home/svn/subversion-1.8.17 --with-apr=/home/svn/apr-1.5.2 --with-apr-util=/home/svn/apr-util-1.5.4
Paste_Image.png
这里选择第一个下载即可
按照提示sqlite 需要解压到路径:/home/svn/subversion-1.8.17/sqlite-amalgamation
我们上传软件并解压到指定路径下
[root@single subversion-1.8.17]# cd ..
[root@single svn]# ls
apr-1.5.2 apr-util-1.5.4.tar.gz subversion-1.8.17.tar.gz
apr-1.5.2.tar.gz sqlite-snapshot-201704181120.tar.gz subversion-1.9.5.tar.gz
apr-util-1.5.4 subversion-1.8.17
[root@single svn]# tar -xzvf sqlite-snapshot-201704181120.tar.gz -C /home/svn/subversion-1.8.17/
[root@single svn]# ls /home/svn/subversion-1.8.17
aclocal.m4 build-outputs.mk configure get-deps.sh README
autogen.sh CHANGES configure.ac INSTALL sqlite-snapshot- 201704181120
BUGS COMMITTERS doc LICENSE subversion
build config.log gen-make.opts Makefile.in tools
build.conf config.nice gen-make.py NOTICE win-tests.py
[root@single svn]#
修改成他要的文件名
[root@single svn]# cd subversion-1.8.17
[root@single subversion-1.8.17]# mv sqlite-snapshot-201704181120/ sqlite-amalgamation/
[root@single subversion-1.8.17]# ls
aclocal.m4 build-outputs.mk configure get-deps.sh README
autogen.sh CHANGES configure.ac INSTALL sqlite-amalgamation
BUGS COMMITTERS doc LICENSE subversion
build config.log gen-make.opts Makefile.in tools
build.conf config.nice gen-make.py NOTICE win-tests.py
[root@single subversion-1.8.17]#
再来测试安装一次
提示缺少zlib包
[root@single zlib-1.2.7]# cd ..
[root@single zlib-1.2.7]# tar -xzvf zlib-1.2.7.tar.gz
[root@single zlib-1.2.7]# cd zlib-1.2.7
[root@single zlib-1.2.7]# ./configure --prefix=/home/svn/zlib-1.2.7
[root@single zlib-1.2.7]# make
[root@single zlib-1.2.7]# make test
[root@single zlib-1.2.7]# make install
再次测试安装
[root@single subversion-1.8.17]# ./configure --prefix=/home/svn/subversion-1.8.17 --with-apr=/home/svn/apr-1.5.2 --with-apr-util=/home/svn/apr-util-1.5.4 --with-zlib=/home/svn/zlib-1.2.7
终于没有错误了
[root@single subversion-1.8.17]# make
[root@single subversion-1.8.17]# make test
[root@single subversion-1.8.17]# make install
下面测试下安装是否成功
先将路径加入环境变量里
[root@single ~]# vim .bash_profile
添加一行圈中的
PATH=/home/svn/subversion-1.8.17/bin:$PATH
退出root 重新登录测试
[root@single ~]# svnserve --version
版本信息
接下来就是配置权限问题了
1.建立SVN版本库目录,命令如下
[root@single ~]# cd /home/svn/
[root@single svn]# svnadmin create repo1
[root@single svn]# ls
apr-1.5.2 subversion-1.8.17
apr-1.5.2.tar.gz subversion-1.8.17.tar.gz
apr-util-1.5.4 subversion-1.9.5.tar.gz
apr-util-1.5.4.tar.gz tigervnc-server-1.7.0-alt2.x86_64.rpm
repo1 zlib-1.2.7
sqlite-snapshot-201704181120.tar.gz zlib-1.2.7.tar.gz
执行此命令后svn自动创建目录,并在目录下添加必须的配置文件.3. 修改版本库配置文件
在刚建好的目录下conf下有三个配置文件需要配置,分别是
[root@single svn]# cd repo1/
[root@single repo1]# ls
conf db format hooks locks README.txt
[root@single repo1]# cd conf
[root@single conf]# ls
authz hooks-env.tmpl passwd svnserve.conf
[root@single conf]#
首先是
svnserve.conf,注意原文件属性都是前面有#注释掉的,需要删除#
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = passwd # 指明密码文件路径
authz-db = authz # 访问控制文件
其次,修改passwd文件
输入以下内容:
[users]
username1 = password1
username2 = password2
可以添加多个,此为用户名密码对,如图
[root@single conf]# vim passwd
密码文件
最后修改authz文件
groups可以将多个用户分到一个组下,通过对组的权限控制,控制其读写操作和对项目库的权限
[groups]
users = user1,user2
[root@single conf]# vim authz
权限控制
此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,具体请参考svn手册,以下是简单例子:[/]
@users = rw
7.启动服务执行
启动服务:
[root@single conf]# svnserve -d --listen-port 3691 -r /home/svn/repo1
#############################################################################################
一定要关防火墙,神坑:
[root@single svn]# service iptables stop
注意关掉防火墙
#############################################################################################
其他命令
# 查看pid
[root@single svn]# netstat -ntlp
#杀死进程
[root@single svn]# kill -9 31088
# 查看 端口程序
[root@single svn]# lsof -i:3690
# 直接杀死svnserve
[root@single svn]# killall svnserve
# 启动svnserve
[root@single svn]# svnserve -d -r /home/svn/
#############################################################################################
新建一个库并添加文件顺序
[root@single svn]# svnadmin create ZHXXYYPT
#注意先备份 authz passwd svnserve.conf 到/home/svn 下
[root@single svn]# cp authz passwd svnserve.conf ZHXXYYPT/conf/
cp: overwrite `ZHXXYYPT/conf/authz'? y
cp: overwrite `ZHXXYYPT/conf/passwd'? y
cp: overwrite `ZHXXYYPT/conf/svnserve.conf'? y
[root@single svn]# cd ZHXXYYPT/conf/
[root@single conf]# vim authz
#这里修改下项目名称 [项目名:/]@users=rw
[root@single conf]# killall svnserve
[root@single conf]# svnserve -d -r /home/svn/