Linux下安装svn
一、准备关联包:1.apr-1.3.8.tar.gz。
下载页面:/download.php?id=25589&ResourceID=470直接复制:/distfiles/apr-1.3.8.tar.gz2.apr-util-1.3.9.tar.gz:下载页面:/download.php?id=25276&ResourceID=472直接复制:/distfiles/apr-util-1.3.9.tar.gz3.Apache,系统已默认安装,其版本可用apachectl–v 查看,我的是Apache/2.2.3。
建议重新安装,因各种包找不到。
下载httpd-2.2.17.tar.gz:下载页面:/download.cgi#apache22直接复制:/apache-mirror//httpd/httpd-2.2.17.tar.gz4.Svn,可能会有版本冲突,现尝试下载1.5.0版本subversion-1.5.0.tar.gz:下载页面:/index.php?q=node/73直接复制:/downloads/subversion-1.5.0.tar.gzSub version-deps-1.5.0-rc5.tar:直接复制:/downloads/subversion-deps-1.5.0-rc5.tar.gz 若只不下载deps,可能会出错:提示你neno没有安装zlib找不到二、安装:1.安装apr:a)解压:tar –xvf apr-1.3.8.tar.gzb)编译:./configure (路径应该是/usr/local/apr)c)安装:make && make install2.安装apr-util:a)解压:tar –xvfapr-util-1.3.9.tar.gzb)编译:./configure --with-apr=/usr/local/aprc)安装:make && make install3.安装apache:a)先去/usr/local下创建apache目录命令:mkdir /usr/local/apacheb)解压下载的apache,计入目录并安装,(一各回车一个命令)tar –xvfhttpd-2.2.17.tar.gzcd httpd-2.2.17./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config--with-apr-util=/usr/local/apr/bin/apu-1-config --enable-modules=so --enable-dav--enable-maintainer-mode --enable-rewritemakemake install./configure //配置源代码树--prefix=/usr/local/apache2 //体系无关文件的顶级安装目录PREFIX ,也就Apache的安装目录。
--enable-module=so //打开so 模块,so 模块是用来提DSO 支持的apache核心模块--enable-mods-shared=all //编译全部的模板,对于不需要我们可以在httpd.conf去掉。
--enable-cache //支持缓存--enable-file-cache //支持文件缓存--enable-mem-cache //支持记忆缓存--enable-disk-cache //支持磁盘缓存--enable-static-support //支持静态连接(默认为动态连接)--enable-static-htpasswd //使用静态连接编译htpasswd - 管理用于基本认证的用户文件--enable-static-htdigest //使用静态连接编译htdigest - 管理用于摘要认证的用户文件--enable-static-rotatelogs //使用静态连接编译rotatelogs - 滚动Apache 日志的管道日志程序--enable-static-logresolve //使用静态连接编译logresolve - 解析Apache 日志中的IP地址为主机名--enable-static-htdbm //使用静态连接编译htdbm - 操作DBM 密码数据库--enable-static-ab //使用静态连接编译ab - Apache HTTP 服务器性能测试工具--enable-static-checkgid //使用静态连接编译checkgid--disable-cgid //禁止用一个外部CGI 守护进程执行CGI脚本--disable-cgi //禁止编译CGI 版本的PHP我们不再使用worker模式编译apache,worker模式和php貌似有一些不协调不稳定之处。
所以使用了默认的perfork模式。
住:棕色字体为解释备份,其中许多参数实际中没有使用4.分别解压subversion-1.5.0.tar.gz与Sub version-deps-1.5.0-rc5.tar至同一个目录。
由于apache版本为2.2.x,所以匹配的版apr版本为1.2.x。
若apache版本为2.0.x,则apr版本为0.9.x。
差擦系统的apr版本可用命令rpm –qa|grepapr,发现版本为1.2.7,则不需要使用deps中解压出来的apr,删除两个包:a)rm –rfaprb)rm–rfapr-uitl5.由于apache为系统默认安装,没有安装apxs模块,所以需安装httpd的devel包命令:yum install httpd-devel。
安装和可用命令:whereisapxs来查看apxs的位置6.安装svn,进入subversion-1.5.0目录:命令:./configure --prefix=/usr/local/svn --with-apxs=/usr/sbin/apxs --with-apr=/usr/local/apr/bin/apr-1-config--with-apr-util=/usr/local/apr/bin/apu-1-config --with-ssl --with-zlib=/home/down/svn/subversion-1.5.0/zlib --enable-maintainer-mode注意:上述命令带with的参数其等号右边为为左边文件的目录。
网上有很多人--with-zlib都没有写路径,而我这样会报错:error: --with-zlib requires an argument所以需其路径,zlib在Sub version-deps-1.5.0-rc5.tar包中有,刚才已与subversion-1.5.0.tar.gz解压在同一目录,所以对我而言,zlib的路径为/home/down/svn/subversion-1.5.0/zlib。
Make如果是64位机,会出现如下错误:make: *** [subversion/libsvn_ra_dav/libsvn_ra_] Error 1解决方法:在./configure ……后,进入neon/src目录,编辑Makefile文件,找到CFLAGS = -g -O2,在等号右边添加参数:CFLAGS = -fPIC-g -O2然后再make && make install三、配置:1.创建svn库:svn库目录必须手动创建mkdir /svn/projectsvnadmin create /svn/project/2.配置文件:a)配置svnserve.conf,位置为新创建的库目录下的conf文件夹下,对应本次操作其位置为/svn/project/conf/f修改内容如下:anon-access = none //未经身份验证的人没有任何权限auth-access = write //进过验证的人有写的权限password-db=/svn/project/conf/pwd//验证用户文件,其位置与svnserve.conf在同一目录。
authz-db = /opt/svn/conf/authz //配置用户权限的目录,其位置与svnserve.conf在同一目录。
realm = project //访问的库,若创建了多个库可用到。
b)配置pwd文件:其内容为:[users] //此行不可少用户名=密码//可添加多个,一行一个(不知是否可以用其他方式隔开)如:[users]Tom=123456Mike=654321c)配置authz文件:[groups]<用户组名> = <用户1>,<用户2>其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。
版本库目录格式:[<版本库>:/项目/目录]@<用户组名> = <权限><用户名> = <权限>其中,方框号内部分可以有多种写法:/,表示根目录及以下。
根目录是svnserve启动时指定的,我们指定为/svn/project。
这样,/就是表示对全部版本库设置权限。
project:/,表示对版本库project设置权限repos2:/abc, ,表示对版本库2中的abc项目设置权限repos2:/abc/aaa, ,表示对版本库2中的abc项目的aaa目录设置权限示例:[groups]Admin=Tom[/]@admin=rw[project:/]Mike=r#若有第二个版本库:[project2:/aa]Mike= //没有权限3.启动:a)svnserve -d -r /svn/project/其中-d表示后台运行,-r指定服务器的根目录如果一个主有多个地址的话应在启动命令最后加--listen-host ip(如:192.168.0.10),来指定监听的地址启动后可用命令查看:ps -aux | grepsvnserve,是否启动,或者用lsof–i:3690查看端口占用情况,3690为svn的默认端口b)开机自动启动:创建一个脚本文件svn.sh,放在一个你找的到的地方(就是任意),输入如下内容:svnserve -d --listen-port 3690 -r /svn/project保存退出添加可执行权限:Chmodug+x /目录/svn.sh添加自动运行:vi /etc/init.d/rc.d/rc.local添加如下内容:/目录/svn.sh保存退出就行了c)Svn创建文件夹:svnmkdir svn://61.155.153.40/trunk/product --username zuochang.xiang--password 1234qwer -m "add trunk folder"./configure --prefix=/usr/local/apache --with-apr=/usr/local/apr/bin/apr-1-config--with-apr-util=/usr/local/apr/bin/apu-1-config --enable-modules=so --enable-dav--enable-maintainer-mode --enable-rewrite<Location /svn>DAV svnSVNParentPath /svn/project (此处配置你的版本库根目录)AuthType Basic (连接类型设置基本验证)AuthName "Hello welcome to here" (此处字符串内容修改为提示对话框标题)AuthUserFile /svn/passwd (访问版本库用户的文件,用apache 的htpasswd命令生成)AuthzSVNAccessFile /svn/auth.conf(此处修改为访问版本库权限的文件)Require valid-user ("Require valid-user"告诉apache在authfile中所有的用户都可以访问)</Location><VirtualHost *:80>ServerName ServerAdmin webmaster@DocumentRoot/home/down/edavis10-redmine-d217762/publicErrorLog logs/redmine_error_log<Directory "/home/down/edavis10-redmine-d217762/public">Options Indexes ExecCGIFollowSymLinksOrder allow,denAllow from allAllowOverride all</Directory></VirtualHost>LoadModulepassenger_module/usr/local/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.15/ext/apache2/mod_pas senger.soPassengerRoot /usr/local/ruby/lib/ruby/gems/1.8/gems/passenger-2.2.15 PassengerRuby /usr/local/ruby/bin/ruby。
linux的svn迁移事项
linux的svn迁移事项
将SVN迁移到Linux系统上可能涉及以下事项:
1. 安装SVN服务:在Linux系统上安装SVN服务,可以使用包管理工具或从SVN官网下载源代码进行编译安装。
2. 导出旧的SVN仓库:使用旧的SVN服务将仓库导出为SVN格式或SVN备份格式。
3. 导入仓库到新的SVN服务:将导出的仓库导入到新的SVN服务中。
可以使用svnadmin命令进行导入。
4. 迁移配置文件:将旧的SVN服务的配置文件转移到新的SVN服务中,以保留原有的设置和权限。
5. 迁移钩子脚本:将旧的SVN服务的钩子脚本转移到新的SVN服务中,以保留原有的自定义操作。
6. 更新客户端配置:在Linux系统上的SVN客户端中更新配置文件,以指向新的SVN服务。
7. 迁移用户认证信息:如果旧的SVN服务使用了用户认证机制,需要将用户认
证信息迁移到新的SVN服务中。
8. 测试和验证:迁移完成后,通过测试和验证确保SVN仓库在新的Linux系统上正常运行,并且所有之前的提交和版本历史仍然可用。
请注意,在执行所有操作之前,请务必备份旧的SVN仓库,以防止意外情况发生。
Svn Linux安装方法
Svn 安装方法1.创建 svn linux 用户:a)使用root 用户登录后,创建svn 组 gsvn, 创建用户 svn .b)创建组命令: groupadd gsvnc)创建用户命令: useradd –s svn -p svn -r svn –g gsvnd)修改密码: passwd svn2.安装java 运行环境 : jdk1.6a)Jdk linux 安装文件jdk-6u23-linux-x64.binb)安装jdk命令: ./jdk-6u23-linux-x64.binc)配置环境变量:在 /ect/profile 文件中添加如下变量:export JAVA_HOME=/svnserver/jdk1.6.0_23export JRE_HOME=/svnserver/jdk1.6.0_23/jreexport CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/libexport PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH3.安装svn 服务器: CollabNetSubversionEdge-1.3.1_linux-x86_64.tar.gza)安装文件CollabNetSubversionEdge-1.3.1_linux-x86_64.tar.gz.b)安装命令:tar -zxfCollabNetSubversionEdge-1.1.0_linux-x86.tar.gz 4.启动svn 服务器:o Svn 解压后会生成一个csvn 文件夹 ,移动到csvn 文件夹下: cd csvno启动命令: bin/csvn start5.管理台a)安装完成后页面,登录用户名/密码: admin/adminb)启动完成后登录管理台进行服务器设置:http://localhost:3343/csvn/ c)设置svn 端口号:。
linux ubuntu下svn命令使用指南
Linux ubuntu下svn的命令使用指南Svn简介:Svn的全名是Subversion,它使用服务端—客户端的结构,当然服务端与客户端可以都运行在同一台服务器上。
在服务端是存放着所有受控制数据的Subversion仓库,另一端是Subversion 的客户端程序,管理着受控数据的一部分在本地的映射(称为工作副本)。
在这两端之间,是通过各种仓库存取层(Repository Access,简称RA)的多条通道进行访问的。
这些通道中,可以通过不同的网络协议,例如HTTP、SSH等,或本地文件的方式来对仓库进行操作。
Subversion是一种开放源码的全新版本控制系统,支持可在本地访问或通过网络访问的数据库和文件系统存储库。
不但提供了常见的比较、修补、标记、提交、回复和分支功能性,Subversion 还增加了追踪移动和删除的能力。
此外,它支持非ASCII文本和二进制数据,所有这一切都使Subversion不仅对传统的编程任务非常有用,同时也适于Web 开发、图书创作和其他在传统方式下未采纳版本控制功能的领域.Subversion的官方网站是:/大部分的发行版都已经提供Subversion套件,ubuntu下安装subversion客户端:sudo apt-get install subversion使用SubversionSubversion一般使用两种后台服务模式:一种是其自己实现的svnserve,可以通过svn协议访问,另一种是借助mod_dav_svn模块,由Apache http服务器来实现,然后通过HTTP或HTTPS协议来访问。
1、通过svn协议访问svn协议客户端若要通过svn协议访问仓库,必须在存放仓库的机器上运行svnserve服务程序。
启动该程序后,会监听在3690端口,以响应客户端的访问工作。
2、通过HTTP协议访问版本库通过HTTP协议访问版本库是Subversion的亮点之一,这种方式具备许多svnserve服务器所没有的特性,使用上更加灵活。
Linux下多项目SVN配置方法
1. 安装SVN服务器软件2. 在home下创建svn根目录mkdir /home/svnroot3. 在/home/svnroot下创建Project1 , Project 2, Project3 三个项目文件夹,这三个文件夹要存放不同项目的SVN版本库。
4. 同样在/home/svnroot中创建CodeAuth 文件夹,该文件夹将保存passwd 和authz文件,在第6步中实现。
5. 创建项目cd /home/svnrootsvnadmin create Project1svnadmin create Project2svnadmin create Project3分别创建了三个项目的版本库,版本库目录conf中存在passwd 、authz、和svnserve.conf 文件passwd - 用于存放本svn库的用户名和密码authz - 存放本svn库的访问授权信息svnserve.conf 文件为存放本svn库的全局访问控制信息6. 将passwd 、authz文件拷贝到/home/svnroot/CodeAuth中,将三个项目下conf目录中的passwd 和authz文件删除7. 修改三个项目中conf目录下的svnserve.conf 文件,最快的办法是修改一个项目下的svnserve.conf 文件,使用它覆盖其他两个项目下的svnserve.conf 文件。
svnserve.conf 修改为[general]anon-access = none auth-access = writepassword-db = /CodeAuth/passwdauthz-db = /CodeAuth/authz 8. 修改/home/svnroot/CodeAuth下的passwd文件为[users] admin=admin0019. 修改/home/svnroot/CodeAuth下的Authz文件为[groups] admin_group=admin[Project1:/]@admin_group=rw*=[Project2:/]@admin_group=rw*=[Project3:/]@admin_group=rw*=10. 启动SVN服务svnserve -d -r /home/svnrootOK,服务器端配置完毕!。
CentOS linux下安装和配置Apache+SVN(用浏览器http方式访问SVN目录)
CentOS linux下安装和配置Apache+SVN(用浏览器http方式访问SVN目录)在CentOS linux下安装SVN,我们可以进行以下步骤:第一步:安装CentOS Linux操作系统,并在CentOS安装进行的同时,自定义安装这一步,一定要勾选Subversion(在“开发工具”里)和Web服务器(Apache)。
我用的是CentOS 6.4版本,只需要安装DVD1这个iso文件即可。
这个DVD文件中有我们下面用到的许多配置文件和模块文件,像mod_dav_svn等文件,都不需要用yum 命令进行额外下载安装(光盘中的文件的版本都是进行严格匹配的)。
第一次启动CentOS时,你就可以运行命令svn --version,查看是否提示SVN版本信息。
[root@svn ~]# svn --versionsvn,版本1.6.11 (r934486)编译于 Jun 232012,00:44:03版权所有 (C) 2000-2009 CollabNet。
Subversion 是开放源代码软件,请参阅 / 站点。
此产品包含由 CollabNet(/) 开发的软件。
可使用以下的版本库访问模块:* ra_neon : 通过 WebDAV 协议使用 neon 访问版本库的模块。
-处理“http”方案-处理“https”方案* ra_svn : 使用 svn 网络协议访问版本库的模块。
-使用 Cyrus SASL 认证-处理“svn”方案* ra_local : 访问本地磁盘的版本库模块。
- 处理“file”方案【准备工作】1.关闭防火墙、做好网络配置。
此时,我们要关闭防火墙,执行命令service iptables stop。
同时执行命令setup,选择“网络配置”,去掉DHCP,设置192.168.2.20(客户端也在192.168.2.x同一个网段内),子网掩码255.255.255.0。
linux搭建svn服务器的方法步骤
linux搭建svn服务器的⽅法步骤⼀:安装svnyum install -y subversion⼆:创建仓库1:创建仓库⽬录mkdir -p /var/project/test2:创建仓库svnadmin create /var/project/test创建成功后,在/var/project/test⽬录下如下⽬录:drwxr-xr-x. 2 root root 51 1⽉ 30 13:26 confdrwxr-sr-x. 6 root root 4096 1⽉ 30 13:26 db-r--r--r--. 1 root root 2 1⽉ 30 13:26 formatdrwxr-xr-x. 2 root root 4096 1⽉ 30 13:26 hooksdrwxr-xr-x. 2 root root 39 1⽉ 30 13:26 locks-rw-r--r--. 1 root root 229 1⽉ 30 13:26 README.txtconf⽬录下是svn的配置⽬录,其中包括:-rw-r--r--. 1 root root 1080 1⽉ 30 13:26 authz #权限控制-rw-r--r--. 1 root root 309 1⽉ 30 13:26 passwd #密码管理-rw-r--r--. 1 root root 3090 1⽉ 30 13:26 svnserve.conf #SVN服务进程配置三:svn配置1:权限配置(/var/project/test/conf/authz)#⽤户分组(admin->管理员,development ->开发 other->其他)[groups]admin = test1 #管理员⽤户test1development = test2,test3 #开发⽤户test2,test3other = test4,test5,test6 #其他⽤户test4,,test5,test6#权限配置[/]@admin = rw #管理员读写权限@development = rw #开发读写权限@other = r #其他读权限test7 = rw #test7⽤户读写权限2:密码配置(/var/project/test/conf/passwd)#密码配置,格式为⽤户名=密码,密码为明⽂[users]test1 = test1test2 = test2test3 = test3test4 = test4test5 = test5test6 = test6test7 = test73:SVN服务进程配置(/var/project/test/conf/svnserve.conf)[general]anon-access = none #匿名⽤户⽆权访问auth-access = write #认证⽤户可读写password-db = passwd #指定⽤户认证密码⽂件authz-db = authz #指定权限配置⽂件四:启动svn服务(默认端⼝号3690)复制代码代码如下:svnserve -d -r /var/project #-d 服务后台运⾏ -r 指定⼯作⽬录,/var/project表⽰指定⼯作⽬录,注意不能指定仓库名地址(/var/project/test)指定端⼝启动svnsvnserve -d -r /var/project --listen-port 3691五:关闭防⽕墙,或开启指定端⼝号1:关闭防⽕墙systemctl stop firewalld2:开启指定防⽕墙#开启3690端⼝firewall-cmd --zone=public --add-port=3690/tcp --permanent#刷新配置firewall-cmd --reload六:客户端连接并上传⽂件windows上连接svn1:新建⼀个⽬录,右击选择svn 检出2:在版本库上填写linux的svn地址 svn://ip:3690/仓库名 (这⾥的仓库名不是/var/project/test⽽是/test)2:填写⽤户名密码这时候我们可以看到此⽬录下⽣成了⼀个.svn⽂件,说明我们已经连接上了linux上的svn服务器3:上传⽂件现在我们新建⼀个test.txt⽂件,在⾥⾯随便填⼀些信息(1)右击选择add然后选择test.txt⽂件,点击确定,这时候我们会看到test.txt⽂件上会多了⼀个加号(2):上传右击选择提交填写备注选择要上传的⽂件后点击确定这时候我们可以看到test.txt⽂件上的加号会变成绿⾊的对号,表⽰上传成功但是这时候我们发现我们在/var/project/test⽬录下根本就没有找到我们上传的⽂件,这是为什么呢?难道我们没有上传成功,这是由于把⽂件上传到SVN版本库后,上传的⽂件不再以⽂件原来的格式存储,⽽是被svn以它⾃定义的格式压缩成版本库数据,存放在版本库中,svn服务器版本库有两种格式,⼀种为FSFS,⼀种为BDB这时候我们就需要在linux中实现检出4:检出svn checkout svn://192.168.11.201/test /data/test #svn://192.168.11.201/test表⽰需要检出的仓库地址 /data/test表⽰需要检出到哪个⽬录下这是我们可以在/data/test⽬录下看到我们之前在客户端上传的⽂件,但是现在问题⼜来了,我们在客户端上传⽂件之后,不可能每次都在服务器进⾏检出操作吧,那么如何进⾏⾃动检出呢?5:⾃动检出配置在/var/project/test/hooks⽬录下新建⼀个post-commit⽂件,post-commit⽂件添加内容为:#!/bin/shREPOS="$1" #仓库REV="$2" #版本号export.UTF-8 #编码SVN=/usr/bin/svn #svn地址WEB=/data/test #要更新的项⽬⽬录$SVN update $WEB --username test1 --password test1 #--username test1表⽰设置⽤户名 --password test1表⽰设置密码将post-commit设置为可执⾏chmod +x /var/project/test/hooks/post-commit到此⾃动检出配置完成,不过注意,第⼀次的时候需要⼿动检出,之后就不需要了,到此linux搭建svn服务器完成以上就是本⽂的全部内容,希望对⼤家的学习有所帮助,也希望⼤家多多⽀持。
linux下搭建svn服务器
自己摸索了几天,今天终于小有成就!从零基础逐渐壮大,收获还是颇丰的!系统环境:虚拟机中Red Hat Enterprise Linux 4客户端windows: TortoiseSVN-1.6.5.16974-win32-svn-1.6.5.msi需要的软件包:subversion-1.6.5.tar.bz2apr-1.3.8.tar.gz apr-util-1.3.9.tar.gzsqlite-amalgamation-3.6.13.tar.gzhttpd-2.2.4(不需要支持http访问的可以不安装)文章将阐述全过程,不需要支持http的可以不配置appche接下来的安装都是在root身份下安装apache#tar -zxvf httpd-2.2.4.tar.gz#cd httpd-2.2.4.tar.gz#./configure --prefix=/usr/local/apache 此处将会在后面的make时创建--enable-dav --enable-so --enable-modules=most注:--enbalce-dav 选项一定要加上启动apache#/usr/local/apache/bin/apachectl start打开浏览器http://192.168.58.xxx 如果有显示"It works!"则证明已经安装成功注:其中IP为安装apache机器的IP 也就是svn服务器的IP#make#make install安装apr apr-util#tar -zxvf apr-1.3.8.tar.gz注:解压时也可在此指定解压路径当然了安装时要进入其中#cd apr-1.3.8#./configure --prefix=/usr/local/apr 此路径为最终安装路径留个印象后面能用到#make#make install#tar -zxvf apr-util-1.3.9.tar.gz#cd apr-util-1.3.9.tar.gz#./configure=/usr/local/apr-util --with-apr=/usr/local/apr 提供apr支持 =后面为apr安装路径#make#make install安装 sqlite#tar -zxvf sqlite-amalgamation-3.6.13.tar.gz#cd sqlite-3.6.13#./configure --prefix=/usr/local/sqlite#make#make install安装svn#tar -zxvf subversion-1.6.5.tar.bz2#cd subversion-1.6.5#./configure --prefix=/usr/local/svn--with-paxs=/usr/local/apache/bin/apxs--with-apr=/usr/local/apr--with-apr-util=/usr/local/apr-util--with-sqlite=/usr/local/sqlite--with-zlib=/usr/local/zlib 此处地址不定看看你zlib的安装路径在哪把它写在这没有的话自己装一个路径写这--with-ssl--enable-maintainer-mode#make#make install注:--with-zlib=/...后面不写路径会报错svn服务器安装结束安装svn客户端windows 下安装TortoiseSVN-1.6.5.16974-win32-svn-1.6.5.msi 常用软件安装方法SVN配置建立版本库#mkdir -p /opt/svn#/usr/bin svnadmin create /opt/svn/repository#ls -l /opt/svn/repository有内容显示说明版本库建立成功#vi /opt/svn/repository/conf/svnserve.conf修改如下内容:并把每行的#去掉[general]anon-access = noneauth-access = writepassword-db = /opt/svn/repository/conf/passwd 此为系统自动生成文件,但要修改过之后才能生效authz-db = /opt/svn/authz.conf 此文件还没有创建但系统已经为此自动生成了一个文件,路径同上我用我自己创建的realm = repository创建svn用户此用户也就是客户端的登陆用户#htpasswd -c /opt/svn/htpasswd admin之后体统会提示输入密码、校验密码注:第一次创建svn用户时要加 -c 意思是:如果htpasswd存在将覆盖写入往后再创建svn用户时也是执行此命令不过不用加 -cadmin 为用户名标识登陆用户例:新增加用户user#htpasswd /opt/svn/htpasswd user用户配置文件#vi /opt/svn/repository/conf/passwd在最下面添加两行代码格式为:用户名 = 密码admin = admin 前不要加# 、留空格user = user权限配置文件#vi /opt/svn/authz.conf写入如下代码[groups]admin = admin,user[/]@admin = rw 代表admin的所有组员有读写权限注:admin组里面有admin和user组员其中有一个以上的组员时要用逗号隔开这一部分自己可以找资料看看设计内容很多,我只建了一个版本库,还有多个版本库的设置,版本库下的具体目录权限设置启动svn服务#svnserver -d --listen-port 9999 -r /opt/svn/repository注:启动时也是有名堂的可以找资料看看-d 后台运行9999是要监听的端口-r 后面的是版本库路径#ps -ef | grep svnserve 查看svn有没有启动成功成功显示root 5088 1 0 Jul05 ? 00:00:00 svnserve -d --listen-port 9999 -r /opt/svn/repository客户端登陆右键单击某个文件夹点击check out输入URL:svn://192.168.58.XXX:9999/opt/svn/repository其中IP为启动svn服务的机器的IP不用支持http的下面范围内可以不用理会/***********************************/配置apache#vi /usr/local/apache/conf/httpd.conf做如下修改:listen 80 如果是以root用户启动apache此处不用修改其他用户启动的要修改大于1024的否则报错# Example:# LoadModule foo_module modules/mod_foo.soLoadModule dav_module modules/mod_dav.soLoadModule dav_svn_module modules/mod_dav_svn.soLoadModule authz_svn_module modules/mod_authz_svn.so注:此段代码我的没有我自己添加的因为后面启动apache时报:Invalid command 'DAV', perhaps mis-spelled or defined by a module not included in the server configuration 别光添加代码还要确保此文件上级目录下的 modules 里面有相应的模块没有的话另外下载其他的 httpd-xxx-xxx 解压安装把其中的相应模块拷贝过来User svnGroup svnServerName 192.168.58.xxx IP设置svn服务器的IP把DocumentRoot "/usr/local/apache/htdocs"改为DocumentRoot "/opt/svn/repository"把<Directory "/usr/local/apache/htdocs">改为<Directory "/opt/svn/repository">另外在最下面添加:<Location /opt/svn>DAV svn 如果没有Loadmodules xxx_dav xxx.so 此处会报错SVNParentPath /opt/svn svn设置AuthType Basic 连接类型设置AuthName "Subversion Authorization" 连接框提示AuthzSVNAccessFile /opt/svn/authz.conf 权限配置文件此文件中有 [group] AuthUserFile /opt/svn/htpasswd 此文件中存的是用 htpasswd 创建的Require valid-user 采用何种认证</Location>重启apache 验证配置/usr/local/apache/bin/apachectl restart 如果没有启动用start打开浏览器访问http://192.168.58.xxx/opt/svn/repository --》弹出登陆框如果不弹出登陆框则配置失败/***********************************/最后:我安装过程中错误千奇百怪的,一点一点上网搜资料,慢慢的就完善了!也预祝你们顺利!。
linux下搭建SVN
linux下搭建SVN查看系统下有没有安装过⽼版本的svn:rpm -qa subversion,如果没安装过则什么都不显⽰如果有⽼版本先运⾏⼀下yum -y remove subversion,删除⽼版本。
第⼀步:通过yum命令安装svnserve,命令:yum -y install subversion此命令会全⾃动安装svn服务器相关服务和依赖,安装完成会⾃动停⽌命令运⾏若需查看svn安装位置,可以⽤命令:rpm -ql subversion第⼆步:创建版本库⽬录(此仅为⽬录,为后⾯创建版本库提供存放位置,subversion默认是把/var/svn作为数据根⽬录的,开机启动默认也是从这⾥):mkdir /var/svn/svnrepos第三步:创建svn版本库在第⼆步建⽴的路径基础上,创建版本库:svnadmin create /var/svn/test(test为⽬录(项⽬或版本库)名称,后⾯checkout项⽬时会⽤到。
)创建成功后,进⼊test⽬录下,可以看见如下⽂件信息:cd /var/svn/testconf:是这个仓库配置⽂件(仓库⽤户访问账户,权限)format:是⼀个⽂本⽂件,⾥边只放了⼀个整数,表⽰当前⽂件库配置的版本号hooks:放置hook脚步⽂件的⽬录locks:⽤来放置subversion的db锁⽂件和db_logs锁⽂件的⽬录,⽤来追踪存取⽂件库的客户端第四步:配置修改进⼊conf,conf⽬录下,⼀共存放三份重要的配置⽂件,如下:authz:负责账号权限的管理,控制账号是否读写权限passwd:负责账号和密码的⽤户名单管理svnserve.conf:svn服务器配置⽂件修改svnserve.conf:vim svnserve.conf原始⽂件内容,都被注释掉的,我们只需要去掉指定内容前注释即可,如下:[general]anon-access = none #控制⾮鉴权⽤户访问版本库的权限auth-access = write #控制鉴权⽤户访问版本库的权限password-db = passwd #指定⽤户名⼝令⽂件名,即访问时要输⽤户名和密码realm = test #指定版本库的认证域,即在登录时提⽰的认证域名称,改成⾃⼰的版本库修改authz⽂件信息:vim authz在⽂件内容的末尾,添加如下:rw表⽰赋予此账号可读写的权限,r为读,w为写,注意[/]中的斜杠,这⾥如果斜杠反了,authz-db = authz ⼀直会提⽰“认证失败”第⼀种⽅式:单个添加:# 按账号分权限[test/]admin = rwtest = r第⼆种⽅式(后⾯采⽤此⽅式配置):⽤户分组,再设权限[groups]# 按⽤户组分权限admin = admin,admin1 # admin为⽤户组,等号之后的为⽤户test = test1, test2 # test为⽤户组,等号之后的为⽤户[/] # 表⽰svn仓库⽬录(/var/svn/test),test: 对应前⾯配置的realm = test@admin = rw # 表⽰admin组对仓库(/var/svn/test)⽬录有读写权限,r为读,w为写@test = r # 表⽰test组的⽤户对对仓库(/var/svn/test)⽬录只有读的权限[/test1] # 表⽰test1⽬录(/var/svn/test/test1)@test = rw # 表⽰test组对test1⽬录有读写权限* =备注:版本库的⽬录格式如下:[<版本库>:/项⽬/⽬录]@<⽤户组名> = 权限<⽤户名> = 权限其中[]內容有許多写法:[/],表⽰根⽬录及其⼀下的路径,根⽬录是svnserver启动时指定好的,上述实例中我们指定为:/svn/svndata([/]=/svn/svndata).[/]就是表⽰对全部版本设置的权限[test:/],表⽰对版本库test设置权限;[test:/svnadmin],表⽰对版本库test中的svnadmin项⽬设置权限;[test:/svnadmin/second],表⽰对版本库test中的svnadmin项⽬的⽬录设置权限;权限的主体可以是⽤户组,⽤户或者*,⽤户组在前⾯要以@开头,*表⽰全部⽤户权限分为:r ,w, rw和null ,null空表⽰没有任何权限。
linux下安装svn详解
前言SVN服务器有2种运行方式:独立服务器和借助apache。
2种方式各有利弊,独立SVN服务器不结合Apache安装使用,连接独立SVN服务器也不用HTTP协议。
这是比较快捷的SVN服务器配置方法。
本次安装时使用的是独立用品方式。
SVN存储版本数据也有2种方式:BDB和FSFS。
因为BDB方式在服务器中断时,有可能锁住数据所以还是FSFS方式更安全一点,我安装时也使用的是FSFS方式。
一下载工具1. subversion-1.6.17.tar.gz2. subversion-deps-1.6.17.tar.gz这两个包可以直接到CSDN去下载,版本要一样,都是必须下载的,否则单独下载第一个包编译时就会提示缺少模块。
这两个包下载解压后会解压到同一个目录下,不需要特别指定。
二解压安装1. 解压两个包:在此之前,我已经创建了一个用户svnadmin专门用来安装管理svn的,就解压在/home/svnadmin/目录下tar -xzvf subversion-1.6.17.tar.gztar -xzvf subversion-deps-1.6.17.tar.gz2. 编译安装./configure --prefix=/home/svnadmin/subversion --without-berkeley-db //prefix指定安装的目录,without-berkeley-db表明不使用berkeley数据库//在这一步有可能不成功,是因为有一些依赖的软件没装,具体见下面“遇到的问题”makemake install//也许要sudo,看情况3. 查看是否安装成功/home/svnadmin/subversion/bin/svnserve --version//如果出现SVN的版本则证明安装成功三添加环境变量可以在/etc/profile中添加,这是全局的。
其实最好是专门添加一个svnadmin 用户,在~/.bashrc中添加即可:exprot PATH=$PATH:/home/svnadmin/subversion/bin四建立仓库1. 创建目录mkdir -p /home/svnadmin/svndata/repos1加上参数P,是如果没有父目录则自动创建注意: /home/svnadmin/svndata在这里将是所有仓库的根目录,repos1是其中的一个仓库。
Linux(CentOS6.2)下安装SVN
Linux(CentOS6.2)下安装SVN 首先通过xftp4上传SVN所需要的软件包(上传到lINUX服务器)如上图,右侧红色框中的为已经上传到服务器的软件包apr-1.4.6.tar.gzapr-util-1.4.1.tar.gzsqlite-autoconf-3071100.tar.gzexpat-2.1.0.tar.gzneon-0.29.6.tar.gz (其中expat在neon之前安装,neon依赖expat)zlib-1.2.5.1.tar.gzsubversion-1.7.4.tar.gz (其中zlib在svn之前安装,svn依赖zlib)第一步:安装apr-1.4.6.tar.gzcd /root/app #进入/root/app目录里tar -zvxf apr-1.4.6.tar.gz #解压缩apr-1.4.6.tar.gz压缩包cd apr-1.4.6 #进入apr-1.4.6目录里./configure --prefix=/usr/local/apr #配置安装的路径为/usr/local/aprmake #编译make install #安装cd .. #退出到app目录里tar -zvxf apr-util-1.4.1.tar.gz #解压缩apr-util-1.4.1包cd apr-util-1.4.1 #进入apr-util-1.4.1目录里./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ #配置安装路径为/usr/local/apr-utilmake #编译make install #安装第三步:安装sqlite-autoconf-3071100.tar.gzcd .. #退出到app目录tar -zvxf sqlite-autoconf-3071100.tar.gz #在app目录中解压缩tar包cd sqlite-autoconf-3071100 #进入到sqlite-autoconf-3071100目录./configure --prefix=/usr/local/sqlite #配置安装目录makemake install第四步:安装expat-2.1.0.tar.gz(neon依赖expat)cd .. #退到app目录tar -zvxf expat-2.1.0.tar.gz#解压缩expat-2.1.0.tar.gz包cd expat-2.1.0 #进入到expat-2.1.0目录./configure --prefix=/usr/local/expat #配置安装路径makemake installcd .. #退到app目录tar -zvxf neon-0.29.6.tar.gz #在app目录中解压缩neon-0.29.6.tar.gz包cd neon-0.29.6 #进入neon-0.29.6目录里./configure --prefix=/usr/local/neon --enable-shared #配置安装路径============================================================================= 如果报下面的错误(第四步没有安装的时候,即expat没有安装时,可以yum install expat-devel 自动下载安装)如果上面第4步安装,就不会出现下面的错误报错configure: error: no XML parser was found: expat or libxml 2.x required 下面,用yum install expat-devel #CentOS里先安装expat-devel然后从新./configure --prefix=/usr/local/neon --enable-shared================================================================================== makemake install第六步:安装zlib-1.2.5.1.tar.gz (svn依赖zlib)cd .. #退到app目录tar -zvxf zlib-1.2.5.1.tar.gz #在app解压缩zlib-1.2.5.1.tar.gz包cd zlib-1.2.5.1 #进入zlib-1.2.5.1目录里./configure --shared #(此处不需要指明安装路径,否则后面SVN安装会找不到zlib)makemake install第七步:安装subversion-1.7.4.tar.gzcd .. #退到app目录tar -zvxf subversion-1.7.4.tar.gz #在app解压缩包cd subversion-1.7.4#进入subversion-1.7.4目录里./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-sqlite=/usr/local/sqlite--with-neon=/usr/local/neon#配置安装路径,上面的三行需要一次复制到命令行中===========================================================================如果出现上面的问题configure: error: subversion requires zlib说明第六步没有起作用,从新自动安装zlibyum install zlib 自动从网上下载安装zlib如果出现上面的问题,说明配置zlib时,指明路径,需要从新配置./configure --shared zlib切记不需要指明安装路径================================================================================ makemake install==================================================================================安装成功,发现 /usr/local/svn 下面有4个目录。
