Chinaunix首页 | 论坛 | 博客
  • 博客访问: 381268
  • 博文数量: 46
  • 博客积分: 1476
  • 博客等级: 上尉
  • 技术积分: 428
  • 用 户 组: 普通用户
  • 注册时间: 2006-01-19 13:17
文章分类

全部博文(46)

文章存档

2015年(8)

2014年(20)

2013年(7)

2012年(4)

2011年(1)

2010年(2)

2009年(1)

2008年(2)

2006年(1)

我的朋友

分类: LINUX

2014-07-02 21:09:13

源码编译 svn-1.8
# ./configure --with-apxs=/usr/local/apache2/bin/apxs --enable-mod-activation

安装完成subversion后,使用svn获取http或https上资源时报错:
# svn co
svn: E170000: Unrecognized URL scheme for ''
 
解决办法:
在安装subversion之前没有先安装serf。当安装了serf后重新编译subversion即可。

配置Apache:
# vi /usr/local/apache2/conf/httpd.conf
查找文件中是否增加了
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
两行信息,并且查看/usr/local/apache2/modules 下是否有mod_dav_svn.so 和 mod_authz_svn.so 文件
如果http.conf 中没有增加代码。modules 下有mod_dav_svn.so 和mod_authz_svn.so 文件,在http.conf中增加那两行代码:



    DAV svn
    # svn库的根目录
    SVNParentPath /data/svn/repos/gps    
    AuthType Basic
    # 浏览器登陆时的提示信息
    AuthName "GPS repo"
    # 用户的密码信息
    AuthUserFile /data/svn/repos/gps/conf/webpasswd
    # 指向svn库的conf目录下authz
    AuthzSVNAccessFile /data/svn/repos/gps/conf/authz
    # 告诉apache在authfile中所有的用户都可以访问。如果没有它,则只能第一个用户可以访问新建库
    Require valid-user



SVN版本库操作:

1. 创建版本库(注意:如果这里不写--pre-1.6-compatible,更新svn的时候会报post commit FS processing had error: Couldn’t open rep-cache database)
# svnadmin create --pre-1.6-compatible /data/svn/repos/gps

2. passwd 文件,该文件用来给svnserve独立进程使用
在/data/svn/repos/gps/conf/下生成passwd文件,用户名为hello,密码为hello123

3. webpasswd文件,有后面 pl 脚本生成,作为apache svn校验用户使用

4. 编辑用户权限文件 authz, 在编辑authz时,所有行都必须要顶头写,不能有缩进,否则报错
权限具备继承性 任何子目录,均可继承其父目录的所有权限,除非它自己被明确设置了其他的权限
# vi /data/svn/repos/gps/conf/authz

[groups]       --表示群组设置
admin = hello    --表示admin群组里的成员有hello,如果要配置多个,用逗号分隔
develop = hello2  --表示develop群组里的成员有hello2,如果要配置多个,用逗号分隔

[gps:/]        --表示仓库gps的根目录下的访问权限
hello = rw       --poc仓库hello用户具有读和写权限
hello2 = r        --poc仓库hello2用户具有只读权限
@admin = rw    --表示群admin的成员都具有读写权限
@develop = r   --表示群poc的成员都具有只读权限

# gps 仓库下的项目 proj1 对 hello2 开放读写权限
[gps:/proj1]
hello2 = rw  

[/]            --表示在所有仓库的根目录下
* = r          --表示对所有的用户都具有读权限




创建脚本对passwd文件生成apache用户认证的加密文件webpasswd
# vim /usr/svn/repo/conf/PtoWP.pl
#!/usr/bin/perl
 
use warnings;
use strict;
 
#open the svn passwd file
open (FILE, "passwd") or die ("Cannot open the passwd file!!!\n");
 
#clear the apache passwd file
open (OUT_FILE, ">webpasswd") or die ("Cannot open the webpasswd file!!!\n");
close (OUT_FILE);
 
#begin
foreach () {
if($_ =~ m/^[^#].*=/) {
$_ =~ s/=//;
`htpasswd -b webpasswd $_`;
}
}
 
# chmod +x PtoWP.pl


启动脚本:
# vi mysvn.sh
#!/bin/bash
# chkconfig: 35 70 30
# description: It is used to serve


SVN_HOME=/usr/local/bin
SVN_USER=svn


if [ ! -f "$SVN_HOME/svnserve" ] 
then
echo "svnserver startup: cannot start"
exit
fi


case "$1" in
'start')
echo "Starting svnserve..."
$SVN_HOME/svnserve -d -r /data/svn/repos --log-file /data/svn/svn.log
echo "Finished!"
;;
'stop')
echo "Stoping svnserve..."
killall svnserve
echo "Finished!"
;;
'restart')
$0 stop
$0 start
;;
*)
echo "Usage: svn { start | stop | restart } "
exit 1
esac

若是多个仓库,则可以将多仓库的父目录 /data/svn/repos 作为启动脚本中 -r 所指定的路径。


*******************************************************************************
eclipse 安装 svn 插件后,若出现 JavaHL(JNI) Not available 错误:
yum install svnkit-javahl

现在/usr/lib64/目录下有一个libsvnjavahl-1.so文件存在,若还不行,可修改eclipse.ini文件,添加下面的option

-Djava.library.path=/lib:/usr/lib:/usr/lib64

实验下来,该 libsvnjavahl-1.so 在 eclipse 中对处理汉字有问题,还是使用 SVNKit(Pure Java)比较好.


*******************************************************************************
yum install rabbitvcs-*
yum install python-simplejson

这样 nautils 和 thunar 都集成到了右键菜单中。

*******************************************************************************

阅读(1879) | 评论(0) | 转发(0) |
0

上一篇:双系统分区恢复

下一篇:remmina 远程桌面

给主人留下些什么吧!~~