为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

centos 下安装svn服务器

2011-05-18 7页 doc 56KB 22阅读

用户头像

is_690517

暂无简介

举报
centos 下安装svn服务器安装所需软件 apr,apr-util,sqlite,neon,subversion 1.下载软件 wget http://labs.xiaonei.com/apache-mirror/apr/apr-1.3.7.tar.gz wget http://labs.xiaonei.com/apache-mirror/apr/apr-util-1.3.8.tar.gz wget http://www.sqlite.org/sqlite-amalgamation-3.6.16.tar.gz wget http://www.webdav...
centos 下安装svn服务器
安装所需软件 apr,apr-util,sqlite,neon,subversion 1.下载软件 wget http://labs.xiaonei.com/apache-mirror/apr/apr-1.3.7.tar.gz wget http://labs.xiaonei.com/apache-mirror/apr/apr-util-1.3.8.tar.gz wget http://www.sqlite.org/sqlite-amalgamation-3.6.16.tar.gz wget http://www.webdav.org/neon/neon-0.28.4.tar.gz wget http://subversion.tigris.org/downloads/subversion-1.6.3.tar.bz2 2.安装apr tar zxvf apr-1.3.7.tar.gz cd apr-1.3.7 ./configure -prefix=/usr/local/apr make make install cat /etc/ld.so.conf echo /usr/local/apr/lib >> /etc/ld.so.conf 3.安装apr-util tar zxvf apr-util-1.3.8.tar.gz cd apr-util-.1.3.8 ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ make make install echo /usr/local/apr-util/lib >> /etc/ld.so.conf ldconfig -v 4.安装sqlite tar zxvf sqlite-amalgamation-3.6.16.tar.gz cd sqlite-3.6.16/ configure --prefix=/usr/local/sqlite make make install 或 tar -zxvf sqlite-amalgamation-3.6.22.tar.gz cd subversion-1.6.12 mkdir sqlite-amalgamation cp ../sqlite-3.6.22/sqlite3.c ./sqlite-amalgamation/ 5.安装neon 不需要支持http可以略掉安装 tar zxvf neon-0.28.4.tar.gz cd neon-0.28.4 ./configure --prefix=/usr/local/neon --enable-shared make make install 方式二:解压后重命名为neon,移动至subversion编译目录 但subversion编译时好像找不到neon 报错如下 configure: checking neon library An appropriate version of neon could not be found, so libsvn_ra_neon will not be built. If you want to build libsvn_ra_neon, please either install neon 0.28.4 on this system or get neon 0.28.4 from: http://www.webdav.org/neon/neon-0.28.4.tar.gz unpack the archive using tar/gunzip and rename the resulting directory from ./neon-0.28.4/ to ./neon/ no suitable neon found 6、安装apache tar zxvf httpd-2.2.9.tar.gz cd httpd-2.2.9 ./configure --prefix=/usr/local/apache2.2.9 --enable-dav --enable-so --enable-maintainer-mode --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr/bin/apu-1-config #--prefix示把apache安装在指定目录 make make install 7.安装subversion tar -jxvf subversion-1.6.3.tar.bz2 cd subversion-1.6.3 ./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 make make install 7.检查测试 安装后应该有三个模块 /usr/local/svn/bin/svn --version svn,版本 1.6.3 (r38063) 编译于 Jul 30 2009,14:31:41 版权所有 (C) 2000-2009 CollabNet。 Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。 此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。 可使用以下的版本库访问模块: * ra_neon : 通过 WebDAV 协议使用 neon 访问版本库的模块。 - 处理“http” * ra_svn : 使用 svn 网络协议访问版本库的模块。 - 使用 Cyrus SASL 认证 - 处理“svn”方案 * ra_local : 访问本地磁盘的版本库模块。 - 处理“file”方案 二、在apache中配置SVN vi /usr/local/apache2.2.9/conf/httpd.conf ① 如果你看到如下两句,说明安装是成功的 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so { 如果有下面一句就用#注释掉 #LoadModule foo_module modules/mod_foo.so } ② 定义apache访问svn配置: DAV svn # SVNPath /usr/local/svndata SVNParentPath /usr/local/svndata #库所在的目录 AuthzSVNAccessFile /usr/local/svn /conf/authz.conf AuthType Basic AuthName "Subversion repository" AuthUserFile /usr/local/svn /conf/passwd.conf Require valid-user 四、配置svn ①建立svn版本库目录 mkdir -p /usr/local/svndata/repos #可以多建版本库目录 ②建立svn版本库 svnadmin create /usr/local/svndata/repos mkdir -p /usr/local/svndata/repos #可以多建版本库 ③建立本地访问控制文件 /usr/local/apache2.2.9/bin/htpasswd -c /usr/local/svn/conf/passwd.conf username 然后输入密码即可,默认是MD5加密的 /usr/local/apache2.2.9/bin/htpasswd /usr/local/svn/conf/passwd.conf username1 #追加用户 ④建立本地项目控制文件 touch /usr/local/svn/conf/authz.conf 本例authz.conf内容为: [groups] #=, admin=username #[:projectName/directory] #@= #= [/] @admin = rw #指定用户组成员可以读写根目录所有应用 [repos:/abc/aaa] username1= rw #指定用户username1可以读写:/abc/aaa目录的文件 至此,整个安装过程完成了! 五、测试连接 ① 启动apache /usr/local/apache2.2.9/bin/apachectl start ② 打开浏览器,输入http://192.168.1.107/svn/repos #本例服务器ip是192.168.1.107 使用刚才创建的权限用户名与密码登录即可访问 注意:在你上传文件的时候可能会有如下权限不足的提示 Permission denied svn: Commit failed (details follow): svn: Can't create directory '/usr/local/svndata/repos/db/transactions/0-1.txn': Permission denied 这是因为apache在线程用户没有权限访问svn的仓库,两者分别属于不同的用户者 本例apache属于daemon拥有者,而svn仓库属于svn拥有者 解决: chown -R daemon /usr/local/svndata/repos chmod -R 755 /usr/local/svndata/repos 重启下apache: /usr/local/apache2.2.9/bin/apachectl stop /usr/local/apache2.2.9/bin/apachectl start 启动 [root@localhost bin]# ./apachectl start /usr/bin/svnserve -d -r /myproject/project 查看svn进程是否已经启动,ps -ef|grep svn 然后输入 kill 进程号 杀死该进程,之后到/usr/local/svn/bin目录下输入命令:./svnserve -d -r /usr/local/svndata/repos 就可以启动了 4.使用eclipse的svn插件时输入的地址为:svn:IP即可访问该资源库 四 客户机访问 客户机的访问方法舆服务器的运行方式有直接关系 window客户机: 1) 服务器以http方式运行 安装完TortoiseSVN-1.1.1-UNICODE_svn-1.1.1.msi后,在你想工作的目录下点击右键,执行checkout,按上图输入即可。 2) 服务器以svnserve方式运行 同上的区别只是URL of repository变为 svn://svn服务器ip/home/mysvn 或者 svn+ssh://svn服务器ip/home/mysvn (注意不是//svn服务器ip//svn/repository) linux客户机: 1) 服务器以http方式运行 执行 #svn checkout http: //svn服务器ip/svn/repository 2) 服务器以svnserve方式运行 执行 #svn checkout svn://svn服务器ip/home/mysvn 或者 #svn checkout svn+ssh://svn服务器ip/home/mysvn 五 客户认证机制 这舆服务器的运行方式有关 服务器以svnserve方式运行 默认下客户可以以匿名方式通过svn://方式任意访问档案库,为了限制其权限,比如只允许读操作,可以通过修改档案库conf子目录中的svnseve.conf文件来实现。 #vi /home/mysvn/conf/svnseve.conf 修改[general]字段下内容为: anon-access = read 如果设为anon-access = none,则匿名用户不可以通过svn://方式访问档案库 为了实现用户认证,我们一般采用svn+ssh://访问机制。 首先在svnseve.conf文件设置anon-access = none禁止匿名用户通过svn://方式访问档案库 在其后加入auth-access = write一行 auth-access 是限制有援权的使用者(使用svn+ssh:// 来登入) 的存取权限,我们设为是可以读写。 当用户通过svn+ssh://访问时,服务器会自动启动ssh认证机制,要求用户输入密码,对于window用户来说还需要安装第三方软件openssh,才可以采用这种机制 服务器以http方式运行 比如我们想给 Sally 与 Harry 送交存取档案库的权限. 首先, 我们必须把它们加入到密码档案. # ### 第一次: 以 -c 建立档案 # htpasswd -c /etc/svn-auth-file harry New password: ***** Re-type new password: ***** Adding password for user harry # htpasswd /etc/svn-auth-file sally New password: ******* Re-type new password: ******* Adding password for user sally # 接着,在/usr/local/apache2/conf/httpd.conf的加入: DAV svn SVNPath /home/mycvs AuthType Basic AuthName "Subversion repository" AuthUserFile /etc/svn-auth-file Require valid-user 重新启动 Apache后,如果有人要访问SVN服务器,系统会要求他输入用户名和密码。 只有输入Sally 或Harry的用户名和相应的密码,才可以对档案库进行修改和访问 添加用户 打开/conf/目录,打开svnserve.conf找到一下两句: # [general] # password-db = passwd 去之每行开头的#,其中第二行是指定身份验证的文件名,即passwd文件 同样打开passwd文件,将 # [users] # harry = harryssecret # sally = sallyssecret 这几行的开头#字符去掉,这是设置用户,一行一个,存储格式为“用户名 = 密码”,如可插入一行:admin = admin888,即为系统添加一个用户名为admin,密码为admin888的用户 4. 在svn使用过程中牵扯到几种权限:文件系统的权限,linux系统权限,svn用户的权限,apache进程的权限。 文件系统的权限,linux系统权限:这里相同的意思,就是平时大家使用linux时文件夹和文件的访问权限。在 svn建立仓库,文件夹,配置文件的时候用svnroot用户,并将仓库权限设置为700,不允许其他用户直接通过 文件系统查看,只能由svnroot进行管理。 apache进程的权限:因为所有跟仓库传输的操作都是通过apache进程进行的,所以即使你给svn用户设置了 很大的权限,但是apache进程没有访问仓库或者相关文件的权限也没有用,apache进程的权限设置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行: User daemon # 将daemon改为svnroot,让apache进程以svnroot的身份运行 Group daemon svn用户的权限:就是在repository/authz.conf文件中设置的权限信息,是svn用来管理仓库访问权限的。 5. svn服务器设置有两种方式:http 和 svnserve。这里介绍的是http方法 6. 在/etc/profile的结尾设置一些svn启动时要做的工作 # start apache server for svn /usr/sbin/apachectl start export SVN_EDITOR=vi 7. APR libraries 安装 SVN 的时候最好指定 --with-apr= 和 --with-apr-util= 参数到 Apache 安装的根目录 (ServerRoot)下,而不是使用缺省的 SVN 安装包中自带的 apr 。否则如果你安装的 Apache 版本不同有可能导致 APR 库不匹配,出现类似: Can't set position pointer in file '/svn/test/db/revs/1': Invalid argument 的错误。 Updated 2006-04-20 16:30 -- 比如说如果你安装的是apache 2.2.0版本,就需要在编译安装svn的时候指定 --with-apxs和--with-apr参数到你的apache2.2.0安装目录下: ./configure --divfix=${subversionInstallFolder} / --with-apxs=${apacheInstallFolder}/bin/apxs / --with-apr=${apacheInstallFolder} / --with-apr-util=${apacheInstallFolder} / --with-ssl / --with-zlib / --enable-maintainer-mode
/
本文档为【centos 下安装svn服务器】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索