- 浏览: 441447 次
- 性别:
- 来自: 无锡
文章分类
最新评论
-
belonghu:
这还和字段是否主键,加索引,有很大关系,我对一个索引的字段查询 ...
MYSQL每日一用:SELECT 语句中比对(between and \ like \ left) -
lqingqingzijin:
好,就是想知道怎样将默认bash修改成nologin
我怎么创建和修改用户帐号,让它有一个nologin shell? -
yangxiutian:
“在jar中添加了字体”是什么意思?
java.util.zip.ZipInputStream.getUTF8String(ZipInputStream.java:299) -
ljhard_1030:
楼主学习了,以后继续发表这类的文章,会继续光临的。。
刨根问底(Proxool连接池设置) -
RobustTm:
Selenium中使用的貌似是Junit 3.x,上面的例子也 ...
使用Selenium 和Junit 进行WEB功能测试
安装配置 svn server+apache
第一步,先检查是否安装了下面软件包
#rpm -q subversion httpd mod_dav_svn
如果没有请安装他们!
第二步,建立一个用户,用于管理SVN版本库
useradd -m -s /bin/bash svn
第三步,创建版本库目录,并修改相应权限。
mkdir /var/repos
chown svn.svn /var/repos
第四步,创建项目仓库
su - svn
svnadmin create /var/repos/svn1
svnadmin create /var/repos/svn2
这是在svn1,svn2下面会参数一些文件,包括conf目录。
/var/repos/svn*为所创建的项目仓库的路径,理论上可以是任何目录, 但建议放在/home/svn下
第六步,修改配置文件/var/repos/svn1/conf/svnserve.conf
代码
#去掉#[general]前面的#号
[general]
#匿名访问的权限,可以是read,write,none,默认为read,如果你不愿意匿名共享请配置为none
anon-access = none
#认证用户的权限,可以是read,write,none,默认为write
auth-access = write
#密码数据库的路径,去掉前面的#, 默认使用的是同一目录下的passwd 文件作为用户认证方式
password-db = passwd
注意:所有的行都必须顶格,否则报错。
建议:为了防止不必要的错误,建议你直接用我上面的内容覆盖掉文件原来的内容
第五步,修改配置文件passwd。
代码
[users]
sxy = sxy 格式为:用户名=密码
注意
1. 一定要去掉[users]前面的#,否则svn只能以匿名用户登录,客户端不会出现登录窗口或密码提示,除非你的anon不为none,否则将返回一个错误。
2. 这里的密码都是没有加密的。
第六步,修改authz(可选)
cd /var/repos/svn1/conf
vi authz
用户组格式:
[groups]
<用户组名> = <用户1>,<用户2>
其中,1个用户组可以包含1个或多个用户,用户间以逗号分隔。用户必须要在passwd文件里能找到,它是给那个里面的user赋权限.
版本库目录格式:
[/目录]
@<用户组名> = <权限>
<用户名> = <权限>
示例:
[groups]
admin = tube
[/]
@admin = rw
[/var/repos/svn1]
user1 = rw(表示user1能够读写/var/repos/svn1目录下的所有信息)
[svn2:/]
user2=r(表示user2能够读svn2项目下的所有信息)
第七步,启动服务器
使用用户svn来管理版本库目录/var/repos,则须转为svn用户,命令如下:
su- svn
然后启动svn服务
svnserve -d -r /var/repos
-d表示以daemon方式(后台运行)运行
-r /var/repos指定根目录是/var/repos
检查服务器是否启动正常:
ps –ef|grep svnserve
这样访问服务器时就可以直接用svn://服务器ip来访问了。如果服务器有多ip的话可以使用--listen-host来指定监听的ip地址.
我们可以在svn客户端中通过svn://192.168.0.xx来访问svn服务器
对于多个代码仓库,我们在启动时也可以用-r选项来指定服务器根目录,但访问时需要写上每个仓库相对于svn根目录的相对路径.
比如,我们现在有两个代码仓库/var/repos/svn1 和/var/repos/svn2,我们用svnserve -d -r /var/repos 来启动,那么在客户端访问时可以用svn://192.168.0.xx/repo1和svn: //192.168.0.xx/repo2来分别访问两个项目
第八步 开放服务器端口
svn默认端口是3690,你需要在防火墙上开放这个端口。
/sbin/iptables -A INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT
/sbin/service iptables save
你也可以通过svnserve的--listen-port选项来指定一个已经开放的其他端口,不过这样的话客户端使用也必须家上端口,如svn://192.168.0.xx:yyyy/.
第九步,使用svn客户端导入项目
首先,切换至svn用户
su – svn
假设我们当前的项目源代码目录在/home/svn/work目录下。首先,创建这个目录:
mkdir –pv /home/svn/work
然后随便解压缩个源代码包或者自己手工建立一些文件,等等好作为导入项目的演示
接下来,进入项目源代码目录
cd /home/svn/work
导入项目
svn import svn://192.168.0.X/svn1 –m “test-svn1”
接下来你应该可以看到上传得显示。
APACHE部分
第一步,查看subversion两个动态库有没有安装成功
vi /opt/apache/conf/httpd.conf
看到下面两个模块说明安装成功
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
第二步,配置SVN
vi /opt/apache/conf/httpd.conf
将apache使用的用户和组都改为svn
User svn
Group svn
配置svn目录,以下是我的配置:
<Location /svn>
DAV svn
SVNParentPath /var/repos
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /home/svn/passwd
AuthzSVNAccessFile /home/svn/auth
Require valid-user
</Location>
第三步,建立本地访问控制文件
htpasswd -c /home/svn/passwd tube
会提示你输入密码,默认是MD5加密
第四步,建立本地项目控制文件
touch /home/svn/auth
我的文件内容为:
[/]
tube = rw
kevin = rw
shrek = rw
[svn1:/]
@group1 = rw
peter = rw
[svn2:/]
tube = rw
@group2 = rw
[groups]
group1 = testuser1,testuser2
group2 = testuser3,testuser4
以上文件书写格式的解释:
[svn1:/] 这表示,仓库svn1的根目录下的访问权限
user1 = rw svn1仓库user1用户具有读和写权限
user2 = rw svn1仓库user2用户具有读和写权限
user3 = r svn1仓库user3用户具有读权限
[svn2:/] svn2仓库根目录下的访问权限
user1 = r user1用户在svn2仓库根目录下只有读权限
suser2 = // user2用户在 svn2仓库根目录下无任何权限
#[/] // 这个表示在所有仓库的根目录下
#* = r // 这个表示对所有的用户都具有读权限
#[groups] // 这个表示群组设置
#svn1-developers = harry, sally // 这个表示某群组里的成员
#svn2-developers = sally
#[svn1:/]
#@svn1-developers = rw // 如果在前面加上@符号,则表示这是个群组权限设置
第五步,重启httpd服务,访问svn
service httpd restart
svn的访问地址是:http://192.168.0.X/svn/svn1
http://192.168.0.X/svn/svn2
附:SVN客户端使用说明
把本地项目testsvn整个目录里的内容往备份站点塞, 这是最初的结构, 建立最初的rev 0
以后checkout回来同样是按该路径,把目录下的(不包括最后的目录名)文件取回
svn import testsvn svn://path/to/repos -m "最后的这个注释不能少"
取回项目, 路径同上. 最后取出来的新目录名不给定就会用最后路径的最后一个目录名, 这里就是repos目录
svn checkout svn:///path/to/repos A_NewProjectName
更新本地项目. 千万记得,通过第一步import后的那个目录并没有默认建立svn与远程的关系,需要手动从服务器checkout回服务器的版本到本地, 才算正式建立与远程的关系(什么关系? 复杂关系!). checkout回来的项目就可以时不时地执行:
svn update
搅和取回来的项目一番后,察看动了什么(一下命令都要在项目目录下运行)
svn status
你对目录结构的修改或添加删除文件等类操作不能自动commit, 需要根据svn status显示的提示将文件/目录 明确 告诉svn是add, delete, copy 还是move
svn add new_dir
svn delete new_dir
svn status仅仅显示最根本的信息,更多的改动变化通过这个获得:
svn diff
查看项目当前状态。
svn status
查看你做的更改。
svn diff
svn commit -m “message” 提交你的改变到版本库中,后面参数为此次发动的注释.
svn list 列出版本库中当前目录下的文件
svn delete file 在本地中删除file文件。svn commit 提交更新才会在版本库实际删除file文件。
svn add file 增加file文件。同样只有在svn commit 提交后才会在版本库中实际增加。
svn move file file2 将file文件更名为file2
.
svn revert 去除更改。后面可接操作过的文件。
svn log svn 日志。
svn各种状态关键字意义:
L abc.c # svn已经在.svn目录锁定了abc.c
M bar.c # bar.c的内容已经在本地修改过了
M baz.c # baz.c属性有修改,但没有内容修改
X 3rd_party # 这个目录是外部定义的一部分
? foo.o # svn并没有管理foo.o
! some_dir # svn管理这个,但它可能丢失或者不完整
~ qux # 作为file/dir/link进行了版本控制,但类型已经改变
I .screenrc # svn不管理这个,配置确定要忽略它
A + moved_dir # 包含历史的添加,历史记录了它的来历
M + moved_dir/README # 包含历史的添加,并有了本地修改
D stuff/fish.c # 这个文件预定要删除
A stuff/loot/bloo.h # 这个文件预定要添加
C stuff/loot/lump.c # 这个文件在更新时发生冲突
R xyz.c # 这个文件预定要被替换
S stuff/squawk # 这个文件已经跳转到了分支
SVN恢复旧版本
svn没有恢复旧版本的直接功能,不过可以使用svn merge命令恢复。
比如说当前HEAD为14,而我要恢复成10版本,怎么做?用svn merge:
svn update
svn merge --revision 14:10 svn://192.168.0.X/svn1
svn commit -m "restore to revision 10"
可能会很奇怪,因为不理解为什么合并能恢复旧版本。
这里要理解一个关键点,就是svn merge的原理。merge是比较指定版本的差异,然后把这些差异应用到本地工作副本,而-r后的14:10,是指相对于版本14来说版本10的变化(注意,这个版本的次序很重要。),也就是相对版本14,我版本10添加了哪些文件或目录,以及哪些文件添加了哪些行删除了哪些行。又因为本地版本是最新的14,所以把这些差异应用到本地版本时就等于把14改变成10,其效果等于还原到版本10。然后提交,最后的版本号是15。
附:svnserve [选项]
有效选项:
-d [--daemon] : 后台模式
--listen-port arg : 监听端口(后台模式)
--listen-host arg : 监听主机名或IP地址(后台模式)
--foreground : 在前台运行(调试时有用)
-h [--help] : 显示这个帮助
--version : 显示版本信息
-i [--inetd] : inetd 模式
-r [--root] arg : 服务根目录
-R [--read-only] : 不赞成;使用档案库配置文件
-t [--tunnel] : 隧道模式
--tunnel-user arg : 隧道用户名(模式是当前用户UID的名字)
-T [--threads] : 使用线程代替进程
-X [--listen-once] : 监听一次(调试时有用)
软件包和模块说明
svn : Subversion 命令行客户端
svnlook : 检查版本库工具
svnadmin : 建立、调整和修补版本库的工具
Svndumpfilter : 过滤 Subversion 版本库转存文件的工具
mod_dav_svn : apache http 服务器的插件,可以让版本库在网络上可见。
svnserve : 单独运行的服务器,作为守护进程运行。
- svn-install.rar (5.1 KB)
- 下载次数: 2
发表评论
-
Centos(带宽测试脚本-测试通过)
2010-07-15 18:00 2492#!/bin/bash # test network ... -
linux 性能检测工具 dstat
2010-07-06 14:40 1784在sentos中,使用yum install dstat ... -
网络监控:带宽、网络情况……
2010-06-25 13:37 1375iftop是LINUX下查看網路流 ... -
Rootkit Hunter
2010-06-04 14:06 1994Rootkit Hunter Description ... -
SSH安全配置
2010-06-04 13:00 01.远程可否重启SSHD服务? 答:实际操作是: ... -
vsftp客户连接常见故障现象
2010-05-24 16:54 1555ftp客户连接常见故障现象 现象0: > ftp ... -
applet 打印的属性和配置
2010-05-18 23:58 2135如果您已经使用过一段 ... -
linux下压缩与解压缩
2010-04-16 13:49 1225linux下压缩与解压缩 对于刚刚接触Lin ... -
linux 出现大量的TIME_WAIT解决办法
2010-04-15 10:11 3599昨天服务器的应用有开 ... -
linux下修改目录权限(chmod)
2010-04-14 16:09 3051指令名称 : chmod 使用权限 : 所有使用者 ... -
批量修改LINUX下的文件或目录权限
2010-04-14 16:01 1877CU里的一个用户用"#chown -R 777 /* ... -
我怎么创建和修改用户帐号,让它有一个nologin shell?
2010-04-13 15:34 15146我怎么创建和修改用户帐号,让它有一个nologin shell ... -
repair filesystem 1 #一般是什么引起的和该怎样解决
2010-04-08 10:40 3307Finding module dependencies; ... -
提高linux ssh访问的安全性
2010-02-25 16:44 1639提高ssh安全性: 鼓励您系统上的所有用户使用 ssh 取 ... -
查看linux硬件信息大全
2010-02-24 10:53 31431, 主板信息 .查看主板的序列号 ------- ... -
网关服务器设置手册(iptables+iptables_logger_v0.4)
2010-01-15 18:03 3203iptables_logger的配置网站: http ... -
添加yum源 :yum install PHP 5.2
2010-01-15 15:37 7526喜欢CentOS 的原因之一他有yum ,有些依赖包安装起来 ... -
tar.bz2解压方法
2010-01-14 13:10 41781. tar -zvxf wine******.tar. ... -
MYSQL: ERROR 2002 (HY000):Can't connect to local MySQL server
2010-01-14 11:58 2805在SentOS 5中: >>yum instal ... -
IPtables日志管理
2010-01-13 17:48 2526IPtables日志管理 Iptable ...
相关推荐
linux安装svn文档,文档描述相关的linux安装svn的命令
本文将详细讲解如何在没有网络连接的情况下,通过提供的“Linux离线安装svn.zip”压缩包来安装和配置svn。 首先,确保你的Linux系统已经安装了基本的开发工具,通常包括GCC编译器、make以及相关的库。这些工具可以...
linux下安装SVN支持http;linux下安装SVN支持http;linux下安装SVN支持http
Linux 安装 SVN 并实现本地同步服务器 本文将指导读者在 Linux 环境下安装 SVN(Subversion),并使用钩子脚本实现本地提交后自动同步代码文件到服务器的网站目录下。 安装 SVN 首先,使用 yum 命令安装 SVN: `...
可以参考提供的`linux安装svn.txt`文件,里面可能包含了具体的配置示例。通常,这涉及到创建一个SVN仓库目录,设置权限,以及配置服务器的主配置文件`/etc/subversion/svnserve.conf`。例如: ``` sudo mkdir /var...
### Linux上安装svn简单步骤 #### 一、简介 在Linux环境下安装Subversion(简称SVN)是一项常见的任务,尤其对于软件开发团队来说至关重要。SVN是一种广泛使用的版本控制系统,用于管理代码库的历史版本,方便团队...
因此,我们需要使用RPM包来安装SVN。 3. **离线安装的前提**: 首先,你需要在有网络的环境中下载所有必需的RPM包。这些包通常包括`subversion`, `subversion-devel`, `apr`, `apr-util`, `neon`, `serf`, `db4`, `...
linux安装svn1.8详细步骤。修改添加删除用户名。svn的重启。
Linux服务器离线安装SVN,所需要的依赖包,包括apr-1.7.0.tar.gz、apr-util-1.6.1.tar.gz、expat-2.0.1.tar.gz、sqlite-autoconf-.tar.gz、subversion-1.14.1.tar.gz、zlib-1.2.11.tar.xz,比从官网下载快N倍
### Linux 下安装 SVN 服务器及实现版本库同步到 Web 目录详解 #### 一、安装 Subversion (SVN) 在 Linux 系统中安装 SVN 服务器,首先需要确保系统中已经安装了必要的软件包。这里我们将使用 `yum` 包管理器来...
Linux 安装SVN 详细步骤说明,包括下路径、配置、启动
### Linux (CentOS 6.2) 下安装SVN服务 #### 一、概述 本文将详细介绍如何在Linux(CentOS 6.2)环境下安装SVN服务。SVN(Subversion)是一种分布式版本控制系统,广泛应用于软件开发过程中对源代码进行版本控制。...
在本文中,我们将详细介绍如何在Linux环境下安装SVN。安装过程分为几个步骤,涉及apr、apr-util和Apache HTTP Server的安装,以及最后的Subversion安装。 首先,我们需要准备必要的安装包。在本例中,我们下载了apr...
本篇文章将详细讲解如何在Linux环境下离线安装SVN 1.8.17服务,并列出所需的安装包。 首先,你需要确保你的Linux系统已经安装了必要的基础工具,如`wget`(用于下载文件)和`tar`(用于解压压缩文件)。如果没有,...
### Linux下安装SVN命令行知识点详解 #### 一、安装Subversion服务器 在Linux环境中部署Subversion(SVN)服务器通常涉及几个关键步骤。首先,确保已经安装了必要的软件包。对于Debian及其衍生系统(如Ubuntu),...
SVN(linux中安装配置SVN1.9.9所需的软件包)按照压缩包中的说明安装即可