国语自产精品视频在线看:您身边最放心的安全下载站! 最新软件|热门排行|软件分类|软件专题|厂商大全

国语自产精品视频在线看

技术教程
您的位置:首页操作系统linux → Linux系统中SVN安装、权限管理以及实现web同步更新

Linux系统中SVN安装、权限管理以及实现web同步更新

我要评论 2013/04/08 16:33:40 来源:国语自产精品视频在线看 编辑:zbbingyang.com [ ] 评论:0 点击:351次

SVN安装

SVN服务器【fú wù qì】有2种运行方式【fāng shì】👃:独立服【dú lì fú】🌐务器和🌩借助apache运行。

svnserve和🍎apache相比是😪轻量级【qīng liàng jí】的🌵,也比较【yě bǐ jiào】简单🤑,svnserve包含在subversion里面,所以只要安装【yào ān zhuāng】了【le】subversion就相当【jiù xiàng dāng】于安装了【le】一个🐏小型的【xiǎo xíng de】🌵svn服务器。它使用【shǐ yòng】自己的🌵一套协✈议通信😨。例如访问【wèn】👣apache时使用【shǐ yòng】 http:// 前缀【qián zhuì】,而🀄svnserve使用【shǐ yòng】 svn:// 前缀【qián zhuì】.

这里介🤸绍的是【shào de shì】通过独立服务器方式【fāng shì】🏸运行,优点是简单小【jiǎn dān xiǎo】🥈巧🥑。如果是支持较【zhī chí jiào】大规模的开发,还是推荐使用【yòng】🍻apache服务器方式【fāng shì】🏸;这里使【zhè lǐ shǐ】🦁用【yòng】svnserver安装;

1.首先为SVN单独创建一个用户【yòng hù】🎾,这样可【zhè yàng kě】以使用【yǐ shǐ yòng】操作系📲统的安🙇全特性;

2.将🤭svnadmin这个用🍶户加入到【dào】sudu组【zǔ】;

3.安装:

sudo apt-get install subversion

4.创建测试目录:

mkdir /home/svnadmin/test

5.创建版【chuàng jiàn bǎn】🚵本库:
svnadmin create /home/svnadmin/test

4. 导入项目

例如现【lì rú xiàn】在有个【zài yǒu gè】🛩工程,名称为🤐examPro,

位置/alidata/www/examPro , 将这个⛅工程导【gōng chéng dǎo】入到本【rù dào běn】🖱地仓库中。
 

svn import /alidata/www/examPro  file:///home/svnadmin/examPro  -m "import examPro"

在上一【zài shàng yī】🧤个例子里【lǐ】🔼,将会拷💗贝目录examPro到版本库中【kù zhōng】;

这样这【zhè yàng zhè】个工程【gè gōng chéng】🌈就在纳入服务【rù fú wù】🤫器的本地仓库管理😑。

为🛰了使用🔰SVN的同步【de tóng bù】🏖更新【gèng xīn】机制🍮,我们需💘要在【yào zài】svn服务器【fú wù qì】🎖环境【jìng】上签出一【qiān chū yī】份最新工程拷贝(为🛰表述方便【biàn】,这里称【zhè lǐ chēng】为🛰A目录【mù lù】)。
$ svn checkout file:///home/svnadmin/examPro
在这个📮拷贝里🌲,我们一般不做修改🏝,而是用【ér shì yòng】😨来同步【lái tóng bù】更新【gèng xīn】;当开发【dāng kāi fā】机器上【jī qì shàng】有任何🕶修改🏝,更新【gèng xīn】到SVN服务器【fú wù qì】🎖上时,能同步更新【gèng xīn】到A目录【mù lù】;这样,就能保【jiù néng bǎo】证🕸A目录【mù lù】下🥘的代码【mǎ】♍是整个【shì zhěng gè】工程的【gōng chéng de】最新代码【mǎ】🌭,而使用🔰A目录【mù lù】搭建的🥔WEB测试环🥇境【jìng】,就是最新的WEB测试环🥇境【jìng】;

5.启动SVN服务

$ svnserve -d -r /home/svnadmin/examPro 

描述说明:
-d 表示【biǎo shì】svnserver以【yǐ】“守护🍷”进程模式运行
-r 指定文🉑件系统的根位置【zhì】(版本库【bǎn běn kù】🌷的根目【de gēn mù】🌶录),这样客【zhè yàng kè】🕸户端不用输入【yòng shū rù】❤全路径,就可以【yǐ】访问版🕊本库🌷。

6.停止svn服务:

killall svnserve //停止⛪svnserve服务【fú wù】

SVN权限管理

1.SVN版本库目录说明

db:存放具体数据;

hooks:钩子程🈂序存放【xù cún fàng】✉地【dì】,比如我们要实现同步【xiàn tóng bù】🛏更新的操作,在这里实现;

conf:配置文件存放地

下面具体说说conf目录;

conf目录下有三个文件:

svnserve.conf、authz、以及【yǐ jí】⛏passwd;
 

2.SVN服务配【fú wù pèi】置文件🔲:svnserve.conf

查看该文件,首先是匿名用户的权限配置:

anon-access = none

auth-access = write

表示:对于匿名用户,无访问权限;

对于授权用户,有写权限;

接下来的一段用于配【yòng yú pèi】🗺置使用🌟哪种授权登录【quán dēng lù】😌方式【fāng shì】;

可选的有【yǒu】password-db ,就是用🥤户名和💲密码都是明文【shì míng wén】🔛存放在【cún fàng zài】同级目录下的😙passwd文件中;优点是高效配【gāo xiào pèi】置简单【zhì jiǎn dān】,缺点是👫安全性弱🚇,明文总不是那【bú shì nà】么让人感觉可靠【kào】♒;

另一种【lìng yī zhǒng】是【shì】authz-db,这种方式的用户密码【hù mì mǎ】♎使用了🎁sasl加密,安全上有保证🌡;

选择这【xuǎn zé zhè】种方式的设置,将【jiāng】🦆password-db 注释掉🗓:

# password-db = passwd

authz-db = authz

#指定授权所属的域,C++的同志✡可将其【kě jiāng qí】🚺理解为【lǐ jiě wéi】名字空【míng zì kōng】🍞间;

realm = examPro

接下来是🖖[sasl]段【duàn】,用于标【yòng yú biāo】识是🖖否进行【fǒu jìn háng】⛓SASL加密处理📪;

use-sasl = true

min-encryption = 128

max-encryption = 256

变量【biàn liàng】☝ min-encryption 和🦔 max-encryption 控制服【kòng zhì fú】🐻务器所需要的【xū yào de】加密强度。

3. 详细权限配置文件authz:

这个就【zhè gè jiù】是授权数据库,用于配🏠置指定目录对【mù lù duì】用户的🐋访问权限【xiàn】😓;

首先是指定一【zhǐ dìng yī】个用户组,按组来【àn zǔ lái】分配权限【xiàn】🎑总是方【zǒng shì fāng】便的🔂,即使目前你的💱团队一【tuán duì yī】💜个组只【gè zǔ zhī】有一个【yǒu yī gè】人。在新加入成员🍗的时候👇,你就能【nǐ jiù néng】体会到按组分配权限【xiàn】🎑的便利性了;

[groups]

g_fronter=cuicc,gdii

g_vip=coo

g_doc=yhh

[examPro:/]

@g_vip=rw

@g_fronter=r

@g_doc=r

[examPro:/protected/modules]

@g_vip=rw

@g_fronter=

*=

[examPro:/protected]

@g_doc=

对于以🙃上代码的配置🦐的详细【de xiáng xì】说明,可以参【kě yǐ cān】考本文的参考文章【wén zhāng】[1]SVN权限配置,里面介绍的比🏞较详细🕹,这里就【zhè lǐ jiù】不多说【bú duō shuō】⏰,有疑问的请留言或【yán huò】🎸mail;

SVN使用SASL加密

1.配置【pèi zhì】svnserve.conf,注释掉⭕password-db = passwd

并启用【bìng qǐ yòng】🔽sqsl:use-sasl = true

2.新建一【xīn jiàn yī】个【gè】svn.conf文件🎱,一般放在⏪/usr/lib/sasl2或者/etc/sasl2,内容为【nèi róng wéi】🎄:

pwcheck_method: auxprop

auxprop_plugin: sasldb

sasldb_path: /home/svnadmin/config/sasldb

mech_list: DIGEST-MD5

其中sasldb_path 指定你打算将【dǎ suàn jiāng】😹sasl加密的【jiā mì de】数据库【shù jù kù】🙃放置的位置🌇;

注释⛹:pwcheck_method指明检查【jiǎn chá】🥊的方法,这里是❇“auxprop ”,这个pwcheck_method还对应了如启动一个【dòng yī gè】🎧代理作【dài lǐ zuò】为认证服务等【fú wù děng】🍎方式,而【ér】💇现在的意思【yì sī】😄就是使用本文件说的方式去🤖检查【jiǎn chá】🥊。然后我们指明🏍auxprop_plugin为sasldb,也就是❓使用一个文件【gè wén jiàn】存放用户名密【hù míng mì】码,也就是❓/home/svn/svnjiami/sasldb,其它的【qí tā de】认证信息存放plugin还有【hái yǒu】🍙sql和【hé】ldapdb。而【ér】💇mech_list指明了【zhǐ míng le】认证信息传递机制【jī zhì】。

svnserve 已经在运行【yùn háng】,你需要【nǐ xū yào】重启服务🏙,并确保【bìng què bǎo】🔇它读取了更新🉐后的配置参数

killall svnserve //停止📼svnserve服务【fú wù】

svnserve –d –r /home/svn //启动【qǐ dòng】svnserve服务🚒

3.创建用户和密码

使用saslpasswd2 程序

语法:saslpasswd2 –c –f /home/svn/jiami/sasldb –u [svnserve.conf里面配【lǐ miàn pèi】🐌置的realm名字【míng zì】⏺] [username]

eg:saslpasswd2 -c  -f /home/svnadmin/config/sasldb -u examPro colin

会出现交互界面,提示输入两次密码;

附:

saslpasswd2 -d -f home/svnadmin/config/sasldb -u 用户【hù】🃏名【míng】//删除用户【hù】🃏

sasldblistusers2 -f /home/svnadmin/config/sasldb // 查询用户【hù】👍

PS:如果访【rú guǒ fǎng】🤤问库的时候出【shí hòu chū】现以下提示🐉 "Could not obtain the list of SASL mechanisms",原因是☝Linux默认没有安装【yǒu ān zhuāng】DIGEST-MD5,此时,可用以【kě yòng yǐ】下命令安装更新:yum install cyrus-sasl-md5 , cyrus-sasl-md5首页🔑: http://asg.web.cmu.edu/sasl/, 安装包【ān zhuāng bāo】下载地🍚址【zhǐ】🔒:ftp://ftp.andrew.cmu.edu/pub/cyrus/

配置完成;

SVN上传时同步到服务器其它目录

svn/examPro/hooks/目录下【mù lù xià】🔲:

能看到📻一堆模版钩子【bǎn gōu zǐ】文件,我们需📞要的是【yào de shì】post-commit.tmpl,

copy一份,命名为【mìng míng wéi】🕵post-commit。然后修改【gǎi】👸;

1.设置语言环境:

#这行比【zhè háng bǐ】较重要,需要根👶据你的【jù nǐ de】服务器环境选🧜择正确的语言环境🚩,否则【fǒu zé】,这个update不会工【bú huì gōng】作🚊;

#export LANG=zh_CN.UTF-8

export LANG=en_US.UTF-8

2.设置SVN更新时需要同步更新的目录

svn update /alidata/www/examplePro --username yoursname --password yourpwd

以上这【yǐ shàng zhè】行表明,当【dāng】svn服务器【fú wù qì】版本有更新时【gèng xīn shí】🔎,则同步更新到/alidata/www/examPro目录下的对应文件【wén jiàn】👒;yoursname 和yourpwd是你在sasl中设置的用户🏑名和密码;(这里还【zhè lǐ hái】是涉及【shì shè jí】🤢到了明文存放📀,对此【duì cǐ】📒,你可以👎分配一🕴个用户✏对svn版本库只有全局的读【jú de dú】权限)

3.输出日志,便于跟踪查询

echo `whoami`,$REPOS,$REV >> /home/svnadmin/examPro/hooks/svn_hook.log

每当有更新【gèng xīn】🖇时【shí】,更新【gèng xīn】🖇日志里【rì zhì lǐ】就【jiù】🎢会插入🏡一条语句,表明何时【shí】有过更新【gèng xīn】🖇;(这个也可用来【kě yòng lái】配置环📘境时【shí】调试【shì】,用来查【yòng lái chá】🌴询同步🏦是否起效)

我们的配置到这里就全部完成;

现在【xiàn zài】,SVN就实现【jiù shí xiàn】了版本🤾管理的【guǎn lǐ de】🎛功能,同时,同步更新的目录有利📟于测试【yú cè shì】人员集😵成测试;

开发人员需要🦊保证的😁是【shì】,任何时【rèn hé shí】⬛候签入到svn库中的【kù zhōng de】版本是【bǎn běn shì】可运行🎸的代码。

关键词:Linux

阅读本文后您有什么感想? 已有 人给出评价!

  • 0 欢迎喜欢
  • 0 白痴
  • 0 拜托
  • 0 哇
  • 0 加油
  • 0 鄙视