⑴ linux 搭建SVN服务器(C/S模式)
Linux System Environment
一、配置阿里云yum源和epel源
提示: 阿里云yum源官网 https://developer.aliyun.com/mirror/
二、yum安装SVN软件
三、创建SVN版本库目录
提示: 自定义此目录为版本库目录,为后面创建版本库提供存位置
四、创建SVN版本库
五、创建用户并设置用户权限
六、配置SVN服务器配置文件
提示: 每一项目参数前面都不要留空格,否则会报错
七、关闭防火墙及SElinux
提示: 防火墙可以不关闭,放行SVN端口(SVN默认端口3690)
八、启动SVN服务
九、测试SVN客户端访问SVN服务
1、Windows使用TortoiseSVN 客户端测试
输入 svn://192.168.201.56:3690/xiaoming (xiaoming是自定义的版本库名称)
2、Linux SVN客户端操作命令
⑵ svn怎么在linux服务器建库
1、安装svn服务
# yuminstall subversion
2、新建一个目录用于存储SVN所有文件
# mkdir /home/svn
3、在上面创建的文件夹中为项目 project_1 创建一个版本仓库
# svnadmin create /home/svn/project_1
执行完这一步,/home/svn中将存在project_1文件夹,这个项目的配置都在 /home/svn/project_1/conf 中
4、为项目配置权限
(1)svnserve.conf 是主配置文件
# vi/home/svn/project_1/conf/svnserve.conf
anon-access=read #匿名可读
auth-access=write #验证用户可读写
password-db=passwd #指向验证用户名密码的数据文件 passwd ,请看下文配置
auth-db=authz #指向验证用户的权限配置文件 authz ,请看下文配置
注意:每一行前方不能有空格,否则会出现 Option expected错误!
(2)passwd用户名密码配置文件
# vi/home/svn/project_1/conf/passwd
[users]
manager1=123456 #每一行都要是“用户名=密码”的格式
manager2=123123
manager3=888888
(3)authz用户权限配置文件
# vi/home/svn/project_1/conf/authz
[groups]
managers=manager1,manager2 #定义群组 managers 包含 manager1 和 manager2 两个用户
[/]
@managers=rw #定义群组 managers 有读写权限
manager3=r #定义 manager3 有读权限
*= #以上没有定义的用户都没有任何权限
⑶ linux配置的svn,上传文件总是在root目录下,怎么改为我自定义的目录
1、需要在服务器上安装svn服务器端,启动svn服务,并创建一个svn库;
2、将当前的default文件夹变成新建的svn库的工作副本(客户端存放数据的文件夹),具体操作:将当前default文件夹下的内容import到新建的svn库中,然后再清空default,然后再将svn库中的内容checkout到default;
3、使用svn的post-commit钩子(这个钩子是在每次成功commit后被SVN服务器自动调用的),编辑这个钩子,内容就是svn update 文件夹default,这样每次commit成功后就会自动更新default文件夹;
4、在你自己的电脑上checkout那个svn库,然后你就可以从本地commit,然后服务器端就自动更新default文件夹了。
⑷ windows下svn迁移到linux
将windows上svn迁移到linux上
实现svn方式和http方式访问
进入conf目录
authz :负责test3库的账号权限管理,控制账号是否读写权限
passwd :负责test3库的账号和密码管理,注意密码是明文的
svnserve.conf :svn服务器配置文件
示例:
启动:
端口:3690 注意打开防火墙
访问:
svn://192.168.1.206:3690/test3
用mod_dav_svn模块实现Apache服务进行访问svn仓库,mod_dav_svn是Apache和svn之间的接口
SVNParentPath /svn/svndir
指如果有多个版本库建议使用SVNParentPath不使用SVNPath,/svn/svndir 版本库位置
AuthUserFile /svn/svndir/passwd
指后面使用apache的htpasswd创建的用户名密码
AuthzSVNAccessFile /svn/svndir/authz
指权限文件
创建用户并设置密码
此时可以通过
http://192.168.1.206/svn/test3
在浏览器中输入用户名密码访问
直接将windows下Repositories目录下的数据打包迁移到linux下的Repositories即可访问,但是用户名和密码不可以迁移,需要重建
1 注意权限为问题,如果/svn/svndir属主不是apache,会一直访问拒绝访问
2 svn协助与http协议
svn协议,用于客户端使用svn://方式访问版本库,而mod_authz_svn模块让客户端可通过Apache访问版本库,它们分别使用不同的服务:svnserve、httpd进行访问。由于用户、组权限不同,权限管理方式也不相同,因此,不建议同时启动两种访问方式。
而易用性,管理方便的角度来分析,Apache以,mod_authz_svn模块的方式访问版本库会更多人选择。(mod_authz_svn方式,使用80端口访问,并且提供https等加密传输,用于用户信息验证的密码保存方式不是明文的)
⑸ 怎么在linux服务器上部署svn
1. 安装SVN服务器:
检查是否已安装
# rpm -qa subversion
安装SVN服务器
# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
验证安装
# cd /etc/httpd/moles
# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so
查看版本
# svnserve --version
2. 代码库创建:
安装完成后要建立SVN库
# mkdir -p /opt/svn/repositories
# svnadmin create /opt/svn/repositories
执行后,自动建立repositories库,查看/opt/svn/repositories文件夹包含了conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立。
3. 配置版本库:
进入上面conf文件夹下,进行配置:
a. 用户密码passwd配置:
# vi + passwd //+表示光标放在文件最低端
修改passwd为一下内容:
[users]
# harry = harryssecret
# sally = sallyssecret
zhoulf=123456
b. 权限控制authz配置:
# vi + authz
设置哪些用户可以访问哪些目录,向authz文件追加以下内容:
[/]
zhoulf=rw //给该用户访问所有库的权限
或
[repositories:/project] //repository库的根目录权限
zhoulf=rw
/ 表示根目录及以下,根目录是svnserve启动时指定的,我们指定的是/opt/svn;/ 就是指对全部版本库都具有权限
repositories:/ 表示对库repositories的根目录设置权限
PS:
* 权限配置文件中出现的用户名必须已在用户配置文件中定义。
* 对权限配置文件的修改立即生效,不必重启svn。
c. 服务svnserve.con配置:
# vi + svnserve.conf
添加一下内容:
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限
auth-access=write
#密码数据库的路径
password-db=passwd
#访问控制文件
authz-db=authz
#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字
realm=/opt/svn/repositories
这里注意各标签不能错,也不能有重复,不然无法连接。
d. 配置防火墙端口(如果需要):
不一定每个人都需要设置,可以先测试后再看是否需要打开端口
# vi /etc/sysconfig/iptables
添加一下内容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙
# service iptables restart
4. 查看:
a. 启动SVN
# svnserve -d -r /opt/svn/repositories
b. 查看SVN进程
# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories
c. 检测SVN端口
# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
5. 停止重启SVN:
# killall svnserve //停止
# svnserve -d -r /opt/svn/repositories // 启动
6. 测试连接:
使用TortoiseSVN进行测试:
1. SVN服务启动后,需要使用客户端测试连接:
客户端连接地址:svn://192.168.15.231;然后,输入用户名密码;
2. 新建一个文件夹,即本地的库文件夹,右键checkout,将会得到一个隐藏文件夹.svn;
3. 在此文件夹中放入项目内容,然后右键点击commit,就可以上传本地项目了。
⑹ linux配置SVN,添加用户,配置用户组的权限
用xshell登陆服务器,cd切换到服务器中svn的项目仓库目录中,然后切换到conf文件中(也可使用xftp),会看到3个文件,分别是
authz、passwd、svnserve.conf
首先编辑svnserve.conf主配置文件,主要是对以下几项修改
如果后面大家要用到组权限的话,大家看authz-db = authz 前面应该会有 # 号键,记得去掉,这样才能在下面分配组权限的时候,才能起作用。
建立svn用户以及密码:
配置组:
配置各个组权限:
保存修改后的svnserve.conf ,passwd,authz 三个文件
然后用下面的命令重启一下svn
查看svn进程:ps -ef | grep svn 或者 ps aux | grep svn
强制杀死进程:kill -9 进程号
重启svn(/home/svn为自己的目录地址):svnserve -d -r /home/svn
最后看看是不是成功了,可以在本地测试一下,看看账户是否可用,对应的权限是不是已经有了,不是该组的用户应该不能访问没有赋予权限的目录的
helloword仓库:
现在对于def项目中,我不想让产品部的人看到开发部和数据部的目录下面的数据怎么办?可以通过 = 来设置,没有设置权限的人统统不能访问, = 这一句的目的,就是割断权限继承性,使得管理员可以定制某个目录及其子目录的权限,从而完全避开其父目录权限设置的影响
⑺ linux怎么使用svn进行多个版本库的配置
1、Linux系统安装svn服务
# yuminstall subversion<img id="selectsearch-icon" src="https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/iknow/qb/select-search.png" alt="搜索">
2、新建一个目录用于存储SVN所有文件
#mkdir -p /cbroot/svnserver/cbweb
3、在上面创建的文件夹中为项目project_1,创建一个版本仓库
# svnadmin create /cbroot/svnserver/cbweb/trunk
4、为项目配置权限
①svnserve.conf 是主配置文件
vim /cbroot/svnserver/cbweb/trunk/conf/svnserve.conf
anon-access=none #匿名可读
auth-access=write #验证用户可读写
password-db=passwd #指向验证用户名密码的数据文件 passwd
auth-db=authz #指向验证用户的权限配置文件 authz
注意:每一行前方不能有空格,否则会出现 Option expected错误!
②passwd用户名密码配置文件
vim /cbroot/svnserver/cbweb/trunk/conf/passwd
[users]
=123456
=123456
③authz用户权限配置文件
[groups]
trunk=,
[/]
@trunk=rw #定义群组 managers 有读写权限
manager3=r #定义 manager3 有读权限
*= #以上没有定义的用户都没有任何权限
5、启动SVN服务器上面的版本库cbweb
svnserve -d -r /cbroot/svnserver/cbweb/
###启动多个svn服务
svnserve -d –listen-port 3688 -r /static/
⑻ Linux中svn服务器安装与使用
直接开放svnserve的端口就可以了,默认端口是3690
如果selinux开启了,它会阻止文件的写入,从仓库中拉去正常,但上传的时候会出现 不能打开文件"***/db/txn-current-lock"权限不够
如果出现semanage未定义,可以参考 CentOS7 中安装semanage来设置selinux
仓库目录为 /home/svn/test ,如果要删除版本仓库直接删除目录就可以了 rm -rf /home/svn/test
在仓库目录 /home/svn/test 的 conf 目录中会有三个文件
修改配置
修改配置添加账号密码,以 账号=密码 的格式配置, = 号二边尽量不要存在空格
权限管理分为组管理和目录权限管理
多个创建可以共用一套账号和密码权限管理。也可以用不同的账号密码管理,如果用不同的配置少单仓库类似,修改每个仓库conf下的账号和权限文件就可以了。下面说一下共用账号权限文件的情况。
在仓库目录 /home/svn 目录中创建authz文件和passwd文件。
修改配置各仓库下conf/svnserve.conf。将password-db和authz-db指向/home/svn/目录下的文件
修改/home/svn/passwd配置添加账号密码,以 账号=密码 的格式配置, = 号二边尽量不要存在空格
修改/home/svn/authz权限管理分为组管理和目录权限管理
如果单仓库以/home/svn启动,此时访问的地址会有仓库名。 svn://ip/test
访问地址分别为:
编辑 /etc/sysconfig/svnserve 文件,修改 OPTIONS="-r /var/svn" 参数改为svn仓库目录 OPTIONS="-r /home/svn"
设置开机启动
修改后也可以用systemctl来启动、停止、重启
svnserve启动后,修改authz和passwd文件是时实生效的,并不需要重启服务
有时随着仓库越来越多,权限配置也越来越多时,会出现一些配置错误,导致访问时出现无法加载权限验证之前的错误,这个时候我们可以将svn服务器的日志打印出来,看些配置出错了。
停止svn服务器,重新附加log-file参数输入日志到指定文件
⑼ Linux上的svn配置文件在哪里
你说的svn配置文件是什么配置文件呢?如果只是需要使用svn相关命令的话,因为svn是版本控制工具,所以它应该是在检出的工作目录下使用,其他目录不可以使用的;
⑽ 如何配置自己的Linux svnserver服务器
一、新建并初始化版本库 1.新建代码仓库 # svnadmin create /home/myrepos 这样,我们就在/home目录下新建了版本库myrepos。 2.初始化代码仓库 #mkdir -p code/{branches,tags,trunk} 按照svn手册上的建议,我们版本库的布局采用branches/tags/trunk这样的三个目录。然后可以将代码直接拷贝的trunk目录,也可以随后采用svn add的方式添加。 #svn import code file: ///home/myrepos 将我们构造好的版本库布局(以及代码,如果已经拷贝到trunk下的话)提交到版本库。由于这里我们是在本地操作,因此可以直接使用file协议方式提交。格式为:file:// + 版本库绝对的路径 OK,到这里我们已经构建了一个本地版本库,可以再本地使用svn ci的方法得到版本库的副本了。如果前面只是提交了版本库布局,而没有提交代码的话,则可以通过如下命令,提交版本代码: #svn co file: ///home/myrepos/trunk repos 通常只从主线目录trunk下取出源码,放在了新建的repos目录。然后可以将源码拷贝到repos目录。 执行以下两条命令将代码添加的版本库。 #svn add * #svn ci * -m "Committed codes" 首先需要将拷贝的代码加入到当前的副本中,然后将代码提交到版本库。 二、配置并启动svnserve 1. 配置svnserve 这一步主要完成远程用户访问版本的权限。 在版本库目录下有个conf目录:home/myrepos/conf,该目录包含三个文件:authz,passwd,svnserve.conf。 (1)svnserve.conf 此文件重点的设置内容如下: anon-access = read auth-access = write password-db = passwd authz-db = authz 其中,anon-acces s和auth-access分别代表设置匿名用户和授权用户的访问权限。read代表只读,write代表可读可写,还有一个none,代表禁止访问。如果不想让匿名用户访问的话,可以设置anon-access = none。 password-db为保存版本库的用户名和密码,通常为conf目录下的passwd文件。 authz-db指向的文件,主要用于将用户进行分组,并赋予不同的组不同的权限。譬如有多个目录时,设置某个组的用户只可以访问其中的那些目录。 (2)passwd 如前面介绍,这个文件的主要内容如下 [users] harry = harrysecret sally = sallyssecret 以上两行就是可以访问版本库的用户名和密码。格式为:user = passwd。 (3)authz [groups] # harry_and_sally = harry,sally # [/foo/bar] # harry = rw # * = # [repository:/baz/fuz] # @harry_and_sally = rw # * = r 以上就是authz文件的格式。先给用户分组,然后分别设置每个组的工作目录以及权限等。 本文的讲解并未用到authz的配置。