首页 > 系统 > Linux > 正文

Linux SVN 搭建(YUM)安装

2024-06-28 13:19:36
字体:
来源:转载
供稿:网友
linux SVN 搭建(YUM)安装

安装说明

系统环境:CentOS安装方式:yuminstall(源码安装容易产生版本兼容的问题)安装软件:系统自动下载SVN软件

Linuxsvn服务端配置

检查已安装版本

#检查是否安装了低版本的SVN[root@localhost/]#rpm-qasubversion

#如果存储旧版本,卸载旧版本SVN[root@localhostmodules]#yumremovesubversion

安装SVN

[root@localhostmodules]#yuminstallsubversion

验证安装

检验已经安装的SVN版本信息[root@localhostmodules]#svnserve--version

svnserve,版本1.6.11(r934486)编译于Jun232012,00:44:03

版权所有(C)2000-2009CollabNet。Subversion是开放源代码软件,请参阅http://subversion.tigris.org/站点。此产品包含由CollabNet(http://www.Collab.Net/)开发的软件。

下列版本库后端(FS)模块可用:

*fs_base:模块只能操作BDB版本库。*fs_fs:模块与文本文件(FSFS)版本库一起工作。

CyrusSASL认证可用。

代码库创建

SVN软件安装完成后还需要建立SVN库[root@localhostmodules]#mkdir-p/opt/svn/#创建SVN根目录[root@localhostmodules]#svnadmincreate/opt/svn/repo#创建repo测试库执行上面的命令后,自动建立repo测试库,查看/opt/svn/repo文件夹发现包含了conf,db,format,hooks,locks,README.txt等文件,说明一个SVN库已经建立。

配置代码库

进入上面生成的文件夹conf下,进行配置[root@localhostmodules]#cd/opt/svn/repo/conf

用户密码passwd配置

[root@localhostpassWord]#cd/opt/svn/repo/conf[root@adminconf]#vimpasswd修改passwd为以下内容:

[users]#harry=harryssecret#sally=sallyssecret

hello=123

aaa=123

www=123

用户名=密码

这样我们就建立了hello用户,123密码

以上语句都必须顶格写,左侧不能留空格,否则会出错.

权限控制authz配置

[root@adminconf]#vimauthz目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

[groups]#组

admin=hello,www#创建一个admin组,将用户加入到组

[/]#根目录权限设置(就是“svn”这个文件夹)

aaa=rw#aaa对svn下的所有版本库有读写权限

[repo:/]#repo:/,表示对repo版本库下的所有资源设置权限

@admin=rw#admin组的用户对repo版本库有读写权限

[repo2:/occi],,表示对版本库repo2中的occi项目设置权限

[repo2:/occi/aaa],,表示对版本库2中的occi项目的aaa目录设置权限  权限主体可以是用户组、用户或*,用户组在前面加@,*表示全部用户。权限可以是w、r、wr和空,空表示没有任何权限。

以上语句都必须顶格写,左侧不能留空格,否则会出错.

服务svnserve.conf配置

[root@adminconf]#vimsvnserve.conf

追加以下内容:

[general]#匿名访问的权限,可以是read,write,none,默认为readanon-access=none#使授权用户有写权限auth-access=write#密码数据库的路径password-db=passwd#访问控制文件authz-db=authz#认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字

realm=/opt/svn/repo

以上语句都必须顶格写,左侧不能留空格,否则会出错.

配置防火墙端口(或直接关闭防护墙)

[root@localhostconf]#vim/etc/sysconfig/iptables添加以下内容:-AINPUT-mstate--stateNEW-mtcp-ptcp--dport3690-jACCEPT保存后重启防火墙[root@localhostconf]#serviceiptablesrestart

启动SVN

svnserve-d-r/opt/svn/#指定SVN根目录

查看SVN进程

ps-ef|grepsvnserve

使用import导入文件

svnimport/mnt/file:///opt/svn/repo/-m"注释"

增加/mnt/hgfs

提交后的版本为1。

检测SVN端口

[root@localhostconf]#netstat-ln|grep3690tcp000.0.0.0:36900.0.0.0:*LISTEN

停止重启SVN

[root@localhostpassword]#killallsvnserve//停止[root@localhostpassword]#svnserve-d-r/opt/svn/repo//启动

如果已经有svn在运行,可以换一个端口运行svnserve-d-r/opt/svn/--listen-port3391

启服务器及测试:

1,启SVN服务,并指定SVN的根目录:

[root@youxia201test]#svnserve-d-r/opt/svn/

使用checkout导出文件

在这里特别的要注意,/opt/svn是仓库的根目录,不要和[svntest:/]目录重叠了。如果重叠是会提示错误

[root@localhostconf]#svncheckoutsvn://127.0.0.1/repo#本机测试,必需写错127.0.0.1

认证领域:<svn://127.0.0.1:3690>/opt/svn/repo

“root”的密码:直接回车

认证领域:<svn://127.0.0.1:3690>/opt/svn/repo

用户名:hello

“hello”的密码:

-----------------------------------------------------------------------

注意!你的密码,对于认证域:

<svn://127.0.0.1:3690>/opt/svn/repo

只能明文保存在磁盘上!如果可能的话,请考虑配置你的系统,让Subversion

可以保存加密后的密码。请参阅文档以获得详细信息。

你可以通过在“/root/.subversion/servers”中设置选项“store-plaintext-passwords”为“yes”或“no”,

来避免再次出现此警告。

-----------------------------------------------------------------------

保存未加密的密码(yes/no)?yes

取出版本1。

不让它每次输入都提示yes/on的办法

编辑vim/root/.subversion/servers找到下行去掉#号将on改为yes,上面绿色部分已提示

store-plaintext-passwords=no

---------------------------------------------------------------------------------------------------------------------

到此,SVN服务端就配置完成了

Linuxsvn客户端配置

检查已安装版本

#检查是否安装了低版本的SVN[root@localhost/]#rpm-qasubversion

#如果存储旧版本,卸载旧版本SVN[root@localhostmodules]#yumremovesubversion

安装SVN

[root@localhostmodules]#yuminstallsubversion

验证安装

检验已经安装的SVN版本信息[root@localhostmodules]#svnserve--version

svnserve,版本1.6.11(r934486)编译于Jun232012,00:44:03

版权所有(C)2000-2009CollabNet。Subversion是开放源代码软件,请参阅http://subversion.tigris.org/站点。此产品包含由CollabNet(http://www.Collab.Net/)开发的软件。

下列版本库后端(FS)模块可用:

*fs_base:模块只能操作BDB版本库。*fs_fs:模块与文本文件(FSFS)版本库一起工作。

CyrusSASL认证可用。

SVN客户端下载文件

[root@localhost~]#mkdir/svn

[root@localhost~]#cd/svn/#将svn服务上提取的文件放在此目录下

[root@localhostsvn]#svncheckoutsvn://192.168.233.203/repo#svn服务器地址

输入用户名密码:hello/123

注:可以使用带用户名和密码的访问:

svnco--usernamehello--password123svn://192.168.233.203/repo

SVN版本库更新

svnup/svn/repo

上传文件到服务器

[root@localhost]#touch/svn/repo/test.php#所有的动作必须在repo版本库中完成

[root@localhost]#svnadd/svn/repo/test.php#上传test.php文件到svn服务器

删除服务器上的文件

[root@localhost]#svnrm/svn/repo/test.php--force

查看版本库内容

[root@localhost~]#svnlist/svn/repo/

------------------------------------------------------------------------------------------------------------------------

到此,SVN客户端就配置完成了

创建版本库:终端输入:svnadmincreate[路径]该路径可以是相对路径,例如,当前在home/user/svn/目录下,输入svnadmincreatemyPRoject,则该版本库会被创建在home/user/svn/目录下,新建一个文件夹名为myproject,其中便是版本库的文件了。将文件导入版本库:终端输入:svnimport[源路径][目标版本库路径]-m[日志信息]源路径可以是相对路径,导入时会递归导入源路径下的所有文件和文件夹,目标版本库路径需要绝对目录(反正我试验是这样的),例如版本库的目录是:home/user/svn/myproject/。则应该这样写:file:///home/user/svn/myproject/例如将当前目录导入版本库myproject:svnimport.file:///home/user/svn/myproject-m"导入文件"从版本库导出:导入后原文件并未被纳入版本管理,若想获得受版本控制的文件,就需要从版本库导出终端输入:svnco[版本库路径]例如将myproject库中的文件导出到当前目录:svncofile:///home/user/svn/myproject.


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表