0018linux源码安装svn
Posted linux777
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了0018linux源码安装svn相关的知识,希望对你有一定的参考价值。
linux源码安装svn
yum list subversion #检查是否安装svn
参考资料
#configure参数参考http://www.linuxfromscratch.org/blfs/view/svn/general/subversion.html#安装步骤https://blog.csdn.net/shgh_2004/article/details/77884876说明:SVN(subversion)的运行方式有两种:一种是基于Apache的http、https网页访问形式;还有一种是基于svnserve的独立服务器模式。SVN的数据存储方式也有两种:一种是在Berkeley DB数据库中存储数据;另一种是使用普通的文件FSFS存储数据。由于Berkeley DB方式在使用中有可能锁住数据,一般建议使用FSFS方式更安全。实现目的:以svnserve的独立服务器模式,使用FSFS数据存储方式源码编译安装配置SVN服务器。具体操作:操作系统:CentOS 7.x服务器IP:192.168.1.151
一、关闭SELINUX
vi /etc/selinux/config#SELINUX=enforcing #注释掉#SELINUXTYPE=targeted #注释掉SELINUX=disabled #增加:wq! #保存退出setenforce 0 #使配置立即生效
二、开启防火墙端口
firewall-cmd --zone=public --add-port=3690/tcp --permanentfirewall-cmd --reload
三、安装编译工具包
yum install apr* autoconf automake bison cloog-ppl compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c++ gtk+-devel gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng* libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool libtool* libgomp libxml2 libxml2-devel libXpm* libtiff libtiff* libX* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd policycoreutils ppl telnet t1lib t1lib* nasm nasm* wget zlib-devel zlib unzip perl-ExtUtils-Embed
yum grouplist
#Installed Groups:yum groupinstall -y ‘Development Tools‘yum remove apr apr-util subversion subversion-libs #删除系统中原有的svn及依赖包
四、下载svn需要的依赖软件包
说明:安装svn需要的软件包:apr apr-util serf scons openssl软件包存放目录:/usr/local/srchttps://dist.apache.org/repos/dist/release/apr/apr-1.6.2.tar.gzhttps://dist.apache.org/repos/dist/release/apr/apr-util-1.6.0.tar.gzhttps://sourceforge.net/projects/scons/files/scons/2.5.1/scons-2.5.1.tar.gzhttps://www.openssl.org/source/openssl-1.1.0f.tar.gzhttps://fossies.org/linux/www/serf-1.3.9.tar.gzhttp://www.apache.org/dist/subversion/subversion-1.9.7.tar.gzhttp://www.sqlite.org/2017/sqlite-amalgamation-3200100.zip
1、安装apr
#检查是否已安装rpm -qa apr#若没安装,则安装:./configure --prefix=/usr/local/apr #配置make #编译make install #安装#make && make insatll
2、安装apr-util
#检查是否已安装rpm -qa apr-util#若没安装,则安装:./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/aprmake && make install
3、安装scons
#检查是否已安装rpm -qa scons#若没安装,则安装:cd scons-2.5.1python setup.py install #配置安装
4、安装openssl
#检查是否已安装rpm -qa openssl#若没安装,则安装:cd openssl-1.1.0fCFLAGS=-fPIC ./config --prefix=/home/programs/openssl enable-sharedmake && make installvi /etc/profile #添加系统环境变量export PATH=$PATH:/home/programs/openssl/bin:wq! #保存退出source /etc/profile #使配置生效ln -s /home/programs/openssl/include/openssl /usr/include/openssl #添加系统软连接
5、安装serf
#检查是否已安装rpm -qa serf#若没安装,则安装:#rpm -aql apr* 查看apr安装目录#rpm -aql openssl 查看openssl安装目录 whereis opensslcd serf-1.3.9scons PREFIX=/usr/local/serf APR=/usr/local/apr/bin/apr-1-config APU=/usr/local/apr-util/bin/apu-1-config OPENSSL=/usrscons install#拷贝文件到系统目录cp /usr/local/serf/lib/libserf-1.so* /usr/local/lib/
6、安装svn
tar -zxvf subversion-1.9.7.tar.gz#解压sqlite-amalgamation软件包到sqlite-amalgamation目录unzip sqlite-amalgamation-3200100.zip#移动目录下文件mv sqlite-amalgamation-3200100 /data/soft/subversion-1.10.0/sqlite-amalgamationrm sqlite-amalgamation-3200100 -rf#配置./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config --with-serf=/usr/local/serf --with-openssl=/usr --enable-mod-activation --with-utf8proc=internal --with-lz4=internalmake #编译make install #安装vi /etc/profile #添加系统环境变量,添加到最后一行export PATH=$PATH:/usr/local/svn/bin:wq! #保存退出source /etc/profile #使配置立刻生效# whereis libserf-1.so.1libserf-1.so: /usr/local/lib/libserf-1.so /usr/local/lib/libserf-1.so.1vi /etc/ld.so.conf #编辑加入libexpat.so.1的目录,如下:/usr/local/lib/:wq! #保存退出ldconfig #使配置生效
7、测试安装是否成功:
svn help #查看svn帮助信息svnserve --version #查看svn版本信息svn --version
NOTE:
1、configure执行报错解决rm: cannot remove `libtoolT‘: No such file or directoryhttps://blog.csdn.net/a673341766/article/details/9078011在configure里面 RM=‘$RM -f‘ 这里的$RM后面一定有一个空格。 如果后面没有空格,直接连接减号,就依然会报错。把RM=‘$RM‘改为RM=‘$RM -f‘2、安装svn,执行config报错: requires LZ4 >= r129,增加--with-lz4=internal参数,参考http://www.linuxfromscratch.org/blfs/view/svn/general/subversion.html./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config --with-serf=/usr/local/serf --with-openssl=/usr --enable-mod-activation --with-lz4=internal3、configure: error: Subversion requires UTF8PROC,参考http://www.linuxfromscratch.org/blfs/view/svn/general/subversion.html--with-utf8proc=internal
五、配置svn
1、创建svn代码库
mkdir -p /data/file/svn/repo #创建目录svnadmin create /data/file/svn/repo #创建svn代码库#上面的命令执行完成之后,会自动建立svn库,在/data/file/svn/repo文件夹含了conf,db,format,hooks,locks,README.txt等文件。#说明svn代码库创建成功。
2、配置svn代码库
(1)vi /data/file/svn/repo/conf/svnserve.conf #配置全局文件,在最后添加以下代码
[general]#禁止匿名访问,设置为none。默认为read,参数:read,write,noneanon-access=none#授权用户写权限auth-access=write#用户账号密码文件路径,可以写绝对路径password-db=passwd#访问控制权限文件路径,可以写绝对路径authz-db=authz#每个SVN项目的认证命,会在认证提示里显示,建议写项目名称。realm=svn
:wq! #保存退出
(2)vi /data/file/svn/repo/conf/passwd #配置用户密码
[users]# harry = harryssecret# sally = sallyssecretosyunwei=123456
(3)vi /mnt/svn/conf/authz #配置权限控制文件,设置用户可以访问的目录
[groups]admin = osyunweiusers = test,test2[/]@admin = rw* = r:wq! #保存退出#[/]代表根目录下所有的资源
3、启动svn
svnserve -d -r /data/file/svn --listen-port 3690ps -ef|grep svn|grep -v grep #查看svn进程root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /mnt/svnnetstat -ln |grep 3690 #检查svn端口tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTENkillall svnserve #关闭svn服务
4、设置svn服务开机启动,注:yum search killall,脚本中killall命令依赖
vi /etc/rc.d/init.d/svn #编辑,添加以下代码 whereis svnserve
#!/bin/sh# chkconfig: 2345 85 85# processname: svnsvn_port=3690svn_home=/mnt/svnif [ ! -f "/usr/local/svn/bin/svnserve" ]thenecho "svnserver startup: cannot start"exitficase "$1" instart)echo "Starting svnserve..."/usr/local/svn/bin/svnserve -d -r $svn_home --listen-port $svn_portecho "Successfully!";;stop)echo "Stoping svnserve..."killall svnserveecho "Successfully!";;restart)$0 stop$0 start;;*)echo "Usage: svn { start | stop | restart } "exit 1esac:wq! #保存退出chmod +x /etc/rc.d/init.d/svn #添加执行权限chkconfig svn on #开启自启动service svn stopservice svn start
5、测试svn
svn checkout svn://192.168.123.7/repo --username=osyunwei --password=123456 #将文件下载到本地目录svn checkout svn://192.168.123.7 --username=osyunwei --password=123456svn update --username=osyunwei --password=123456 #更新上次修改之后的版本库
NOTE:svn提交的时候强制写注释cd /mnt/svn/hookscp pre-commit.tmpl pre-commitchmod 777 pre-commitvi pre-commit#!/bin/shREPOS="$1"TXN="$2"SVNLOOK=/usr/local/bin/svnlook #修改为pre-commit中的提示路径,服务器安装的subversion目录 whereis svnlookLOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c`if [ "$LOGMSG" -lt 5 ];thenecho -e "注释信息不能为空且不少于5个字!" 1>&2exit 1fiexit 0
以上是关于0018linux源码安装svn的主要内容,如果未能解决你的问题,请参考以下文章