SVN安装过程 on Linux
subversion-1.6.12
http://subversion.tigris.org/downloads/subversion-1.6.12.tar.gz
./configure --prefix=/usr/local/subversion --with-apxs=/usr/local/apache2/bin/apxs --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr --with-openssl=/usr/local/ssl --with-zlib=/usr/local/zlib --enable-maintainer-mode
错误
configure: error: no XML parser was found: expat or libxml 2.x required
解决方法:
这个时候 rpm -qa expat2 检查是否安装 expat2
如果没有请在
https://sourceforge.net/projects/expat/files/expat/2.0.1/expat-2.0.1.tar.gz/download
下载 expat2.tar.gz
tar -xvf expat2.tar.gz
cd expat-2.0.1
./configure
make,make install
安装openssl
http://www.openssl.org/source/
./config -fPIC --prefix=/usr/local/ssl/ enable-shared
/usr/bin/ld: /usr/local/lib/libz.a(crc32.o): relocation R_X86_64_32 against `a local symbol' can not be used when making a shared object; recompile with -fPIC
/usr/local/lib/libz.a: could not read symbols: Bad value
一般是64 位 电脑才会出现。
解决方法如下:
cd zlib-1.2.3 //进入zlib目录
CFLAGS="-O3 -fPIC" ./configure //使用64位元的方法进行编译
make clean
make
make install
如果 make install 出现下面错误:
/home/upload/subversion-1.6.6/subversion/svnversion/.libs/lt-svnversion: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
make: *** [revision-install] Error 127
解决办法:
1、编辑/etc/ld.so.conf文件
vi /etc/ld.so.conf
添加下面一行代码
/usr/local/lib
2、保存后运行ldconfig:
/sbin/ldconfig
注:ld.so.conf和ldconfig用于维护系统动态链接库。
3、然后再安装
make && make install
测试是否安装成功
1
/usr/local/subversion/bin/svnserve --version
(也可以试试 svn help命令)
如果显示如下,svn安装成功:
subversion/bin/svnserve --version
svnserve, version 1.6.12 (r955767)
compiled Jul 11 2015, 08:15:46
Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.tigris.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).
The following repository back-end (FS) modules are available:
* fs_fs : Module for working with a plain file (FSFS) repository.
---------------------------------------------------
/usr/local/subversion/bin
bash-3.2$ svnadmin create /lab/svn-repository/svn-test
配置apache支持svn
#vi /usr/local/apache/conf/httpd.conf
在文件末尾添加
<Location /subversion>
DAV svn
# (此处配置你的版本库根目录)
SVNParentPath /lab/svn-repository/
# (连接类型设置 基本验证)
AuthType Basic
#(此处字符串内容修改为提示对话框标题)
AuthName "Welcome to my svn-repository!"
# (此处修改为访问版本库用户的文件,用apache 的htpasswd命令生成)
AuthUserFile /lab/svn-repository/passwd
# (此处修改为访问版本库权限的文件)
AuthzSVNAccessFile /lab/svn-repository/auth.conf
# ("Require valid-user"告诉apache在authfile中所有的用户都可以访问。如果没有它,则只能第一个用户可以访问新建库)
Require valid-user
</location>
保存文件退出!
重新启动apache
apachectl restart
试试看能访问不
#curl http://192.168.1.104/subversion/svn-test/
配置svn权限管理(即authz.conf的配置)
添加用户:
#cd /usr/local/apache2/bin
# ./htpasswd –c /lab/svn-repository/passwd user1
第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
第二次添加用户不需要带 –c 参数 如:
#cd /usr/local/apache2/bin
#./htpasswd /lab/svn-repository/passwd user2
权限分配:
#vi /lab/svn-repository/auth.conf
#这个表示群组设置
[groups]
#这个表示admin群组里的成员 user1,user2
Admin=user1,user2
#这个表示Develop群组里的成员 u1,u2
Develop=u1,u2
#这表示,仓库svn-test的根目录下的访问权限
[svn-test:/]
#svn-test仓库user1用户具有读和写权限
user1=rw
#svn-test仓库user2用户具只有读权限
user2=r
#这表示 群 develop的成员都具有读写权限
@develop=rw
#这个表示在所有仓库的根目录下
#[/]
#这个表示对所有的用户都具有读权限
*=r
注意:在编辑authz.conf文件时,所有行都必须要顶头写,不能有缩行出现,否则会报错:"Access denied: 'user1' ",里面的内容可以根据自己的需要自行添加,不必与我上面所写的相同!
#apachectl restart
就可以通过 http://127.0.0.1/subversion/svn-test 这个URL来访问仓库了,当然,受权限的限制,必须是合法用户才能访问且具有相应的权限
最后启动svn
#/usr/local/subversion/bin/svnserve -d -r /lab/svn-repository/
-d 表示以 daemon 方式(后台运行)运行
-r /svn/project 指定根目录是/svn/project
检查服务器是否启动正常:
#ps –ef|grep svnserve
修改权限
chown -R user1 /lab/svn-repository/svn-test/
chmod 777 -R /lab/svn-repository/svn-test/