﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-kevins20110505-随笔分类-Work Experience</title><link>http://www.blogjava.net/kevins20110505/category/48789.html</link><description /><language>zh-cn</language><lastBuildDate>Mon, 08 Aug 2011 21:43:10 GMT</lastBuildDate><pubDate>Mon, 08 Aug 2011 21:43:10 GMT</pubDate><ttl>60</ttl><item><title>====编译工作流程（FOR WASU R&amp;D）=====</title><link>http://www.blogjava.net/kevins20110505/archive/2011/07/25/compiler.html</link><dc:creator>XuFeng</dc:creator><author>XuFeng</author><pubDate>Mon, 25 Jul 2011 08:59:00 GMT</pubDate><guid>http://www.blogjava.net/kevins20110505/archive/2011/07/25/compiler.html</guid><wfw:comment>http://www.blogjava.net/kevins20110505/comments/355002.html</wfw:comment><comments>http://www.blogjava.net/kevins20110505/archive/2011/07/25/compiler.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kevins20110505/comments/commentRss/355002.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kevins20110505/services/trackbacks/355002.html</trackback:ping><description><![CDATA[<strong><br />====编译工作流程（FOR WASU R&amp;D）=====<br /></strong><br /><strong><strong>&nbsp;========<br />||&nbsp;前提条件 ||<br />&nbsp;========<br /><br /></strong></strong>&nbsp;收到开发人员提交的编译申请邮件<br /><br /><strong>&nbsp;==========<br />|| 主要工作流程<strong> </strong>||<br /><strong>&nbsp;==========<br /><br /></strong></strong>1、查看版本说明书（明确编译的程序工程、数据库和配置文件变更与否）<br />2、编译<br />3、修改配置（包括数据库和配置文件的变更）<br />4、启动服务（跟踪日志查看能否正常启动）<br />5、版本管理（在版本管理列表中填写版本记录，包括版本号、提交时间、需求编号、需求说明等）<br /><br />&nbsp;===========<br /><strong>|| 详细操作步骤 ||</strong><br /><strong>&nbsp;==========<br /><br />1、 查看版本说明书<br /></strong><br />&nbsp;&nbsp;&nbsp; Checkout编译申请邮件中说明的产品版本说明书到本地，打开查看&#8220;更改程序列表（要编译的程序工程）、数据库结构变化（如有变化要在数据库中执行相应的脚本）、配置说明（按照说明更改部署服务器中的配置）&#8221;等。<br /><br /><strong>2、编译<br /></strong><br />编译服务器、账号、路径和对应产品：<br />218.*.*.120&nbsp;&nbsp; compiler/q1w2e3&nbsp;&nbsp; <br />/compiler/wasuprd&nbsp; 研究院各个产品<br /><br />218.*.*.68&nbsp;&nbsp; compiler/com{:&gt;&nbsp;&nbsp; <br />/compiler/wasu&nbsp; 28.直播广告管理系统、bootAd等。<br />/compiler/product&nbsp;&nbsp; 51.华数直播广告系统<br /><br /><strong>找到要编译产品的程序工程，执行编译脚本。<br /></strong>举例如下：<br />产品：<strong style="color: red">贺卡</strong><strong><br /></strong>编译版本：<strong style="color: red">1_6_11_1</strong><strong><br /></strong>编译的工程：<strong style="color: red">ccp-tv</strong><strong><br /></strong>编译相关脚本：<br />build-ccp-tv.xml (执行编译的脚本)<br />ccp-tv.sh（启动编译的脚本）<br /><br /><strong>编译操作步骤<br /></strong>1、[compi<span>ler@yuan_RAC02</span><span> wasuprd]$ vi build-ccp-tv.xml </span><br /><font color="#ff0000"><strong>如果是按Tag号进行取代码编译，则要先在下面的这段中更改tag.version的value值，然后再执行编译，默认为空表示取最新的代码。<br /></strong></font>&nbsp;&lt;!--================================--&gt;<br />&nbsp; &lt;!--代码tag号设置&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; --&gt;<br />&nbsp; &lt;!--================================--&gt;<br />&nbsp; &lt;property name="tag.version" value="ccp-tv1_6_11_1_1"/&gt;<br /><br />2、[compi<span>ler@yuan_RAC02</span><span> wasuprd]$ </span>sh ccp-tv.sh&nbsp;&nbsp; //执行编译，执行该命令后平面会打印日志<br />3、[compiler@yuan_RAC02 wasuprd]$ cd dist/<br />&nbsp;&nbsp;&nbsp; [compiler@yuan_RAC02 dist]$ cd 20110725<br />&nbsp;&nbsp;&nbsp;&nbsp;[compiler@yuan_RAC02 20110725]$&nbsp;mv ccp-tv.war ccp-tv1_6_11_1.war //标记备份war包的版本号：<br />编译执行完后，在/compiler/wasuprd/dist下会自动生成一个以当前日期命名的文件夹，文件夹中会有ccp-tv.war的程序包。<br /><br /><strong>3、修改配置<br /></strong>&nbsp; 产品部署服务器IP、登录账号和配置文件路径<br /><br />&nbsp; 218.*.*.120&nbsp; pdtest/zxcasdqwe<br />&nbsp; 218.*.*.68 &nbsp;<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#116;&#101;&#115;&#116;&#47;&#116;&#101;&#115;&#116;&#64;&#101;&#100;&#99;">test/test@edc</a><br /><br />配置文件路径都为：/pdtest/config&nbsp; //<strong style="color: #ff0000">个别项目的配置文件可能在tomcat中，请参照启动脚本中的配置</strong><strong><br /></strong><br />120服务器的截图如下：&nbsp;&nbsp;<br />[pdtest@yuan_RAC02 ~]$ ls<br />adrPreview&nbsp; config&nbsp; iploader&nbsp; nohup.out&nbsp; product&nbsp; rmlog.sh&nbsp; ssuds.1.0.1&nbsp; ssuds.1.0.1.build079.tar&nbsp; ssuds.conf&nbsp; start-sp.sh&nbsp; unzip&nbsp;<br />[pdtest@yuan_RAC02 ~]$ cd config/<br />[pdtest@yuan_RAC02 config]$ pwd<br />/pdtest/config<br />[pdtest@yuan_RAC02 config]$ ls<br />admin&nbsp; album-server&nbsp; als&nbsp; bh&nbsp; bill-tv&nbsp; bootad&nbsp; ccp-tv&nbsp; cps-tv&nbsp; ers&nbsp; file&nbsp; ipc&nbsp; pws&nbsp; rec&nbsp; saui&nbsp; smc-tv&nbsp; sp-tv&nbsp; tds&nbsp; uaoc&nbsp; ubc&nbsp; vod-epg&nbsp; wsmail<br />&nbsp; <br /><strong>4、启动服务<br /><br /></strong>登录服务部署的tomcat下，关闭该tomcat进程，清除work目录下的内容，执行启动tomcat的脚本，具体操作命令如下<br />[pdtest@yuan_RAC02 tv]$ ls<br />apache-tomcat-5.5.26&nbsp; bill-picture&nbsp; prp_ccp_logs&nbsp; prp_cps_logs&nbsp; start-tomcat.sh<br />[pdtest@yuan_RAC02 tv]$ ps -ef | grep&nbsp; 'Djava.endorsed.dirs=/pdtest/product/tv/apache-tomcat-5.5.26'<br /><br />pdtest&nbsp;&nbsp; 24430&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; 1 16:00 pts/17&nbsp;&nbsp; 00:00:52 /usr/java/jdk1.5.0_07/bin/java -Xms768M -Xmx1024M -XX:PermSize=64M -XX:MaxPermSize=256M -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Djava.util.logging.config.file=/pdtest/product/tv/apache-tomcat-5.5.26/conf/logging.properties -Xdebug -Xrunjdwp:transport=dt_socket,address=3997,server=y,suspend=n -Djava.endorsed.dirs=/pdtest/product/tv/apache-tomcat-5.5.26/common/endorsed -classpath :/pdtest/product/tv/apache-tomcat-5.5.26/bin/bootstrap.jar:/pdtest/product/tv/apache-tomcat-5.5.26/bin/commons-logging-api.jar -Dcatalina.base=/pdtest/product/tv/apache-tomcat-5.5.26 -Dcatalina.home=/pdtest/product/tv/apache-tomcat-5.5.26 -Djava.io.tmpdir=/pdtest/product/tv/apache-tomcat-5.5.26/temp org.apache.catalina.startup.Bootstrap bin start<br />pdtest&nbsp;&nbsp; 30286 21779&nbsp; 0 16:47 pts/15&nbsp;&nbsp; 00:00:00 grep Djava.endorsed.dirs=/pdtest/product/tv/apache-tomcat-5.5.26<br /><br />[pdtest@yuan_RAC02 tv]$ kill -9 24430<br /><font face="Verdana">[pdtest@yuan_RAC02 tv]$ cd apache-tomcat-5.5.26/<br />[pdtest@yuan_RAC02 apache-tomcat-5.5.26]$ cd work<br />[pdtest@yuan_RAC02 work]$ rm -rf *<br /></font>[pdtest@yuan_RAC02 work]$ cd ../../<br />[pdtest@yuan_RAC02 tv]$ ls<br />apache-tomcat-5.5.26&nbsp; bill-picture&nbsp; prp_ccp_logs&nbsp; prp_cps_logs&nbsp; start-tomcat.sh<br />[pdtest@yuan_RAC02 tv]$ sh start-tomcat.sh <br /><br /><strong>5、版本管理<br /></strong>&nbsp;&nbsp; 版本管理列表在CVS中的路径：<br />DOCUMENT\03.产品类\00.产品研发管理\02.SCM\02.版本管理\华数研究院-产品版本列表(New).xlsx<br />&nbsp;&nbsp; 填写内容包括：<br />发布日期、Release版本号（红色标记）、子系统版本号（即提取代码的Tag号）或标记符号&#8220;&#9632;&#8221;、需求编号、需求描述<br /><br /><br /><strong style="color: red">######C语言产品编译补充############</strong><strong><br /></strong><br />1：编译服务器、账号、密码、产品与路径<br />218.*.*.89&nbsp; wasucpp/wsxasd<br />/home/wasucpp/XP&nbsp;&nbsp; 交换网关系统<br />/home/wasucpp/UTCO&nbsp;&nbsp; 统一头端产品<br /><br />2：编译步骤（以utoc为例）<br /><strong style="color: red">##全量编译##</strong><strong><br /></strong>-bash-3.00$ pwd<br />/home/wasucpp/UTCO/utoc<br />-bash-3.00$ ls<br />CVS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apps&nbsp;&nbsp;&nbsp;&nbsp; bin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; build&nbsp;&nbsp;&nbsp; common&nbsp;&nbsp; conf&nbsp;&nbsp;&nbsp;&nbsp; include&nbsp; lib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; samples&nbsp; src<br />-bash-3.00$ cvs update&nbsp;&nbsp; <strong>//更新源代码<br /></strong><font face="Verdana">-bash-3.00$ cd build/<br />-bash-3.00$ ls<br />CVS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Makefile&nbsp;&nbsp;&nbsp; readme.txt<br />-bash-3.00$ gmake clean&nbsp; <br />-bash-3.00$ gmake<br /><br /><strong><font color="#ff0000">##增量编译(本次改动的为apps下的文件)##</font><br /></strong>-bash-3.00$ pwd<br />/home/wasucpp/UTCO/utoc<br />-bash-3.00$ ls<br />CVS&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ace&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; apps&nbsp;&nbsp;&nbsp;&nbsp; bin&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; build&nbsp;&nbsp;&nbsp; common&nbsp;&nbsp; conf&nbsp;&nbsp;&nbsp;&nbsp; include&nbsp; lib&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; samples&nbsp; src<br />-bash-3.00$ cd apps<br />-bash-3.00$ cvs update&nbsp;&nbsp; <strong>//更新源代码</strong><font face="Verdana"><br />-bash-3.00$ gmake clean&nbsp; <br />-bash-3.00$ gmake<br /></font><br /><br /><br /><br /></font><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><br /><img src ="http://www.blogjava.net/kevins20110505/aggbug/355002.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kevins20110505/" target="_blank">XuFeng</a> 2011-07-25 16:59 <a href="http://www.blogjava.net/kevins20110505/archive/2011/07/25/compiler.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>==使用CVSACL进行CVS权限访问控制（for Linux）==</title><link>http://www.blogjava.net/kevins20110505/archive/2011/07/25/cvsacl.html</link><dc:creator>XuFeng</dc:creator><author>XuFeng</author><pubDate>Mon, 25 Jul 2011 07:12:00 GMT</pubDate><guid>http://www.blogjava.net/kevins20110505/archive/2011/07/25/cvsacl.html</guid><wfw:comment>http://www.blogjava.net/kevins20110505/comments/351988.html</wfw:comment><comments>http://www.blogjava.net/kevins20110505/archive/2011/07/25/cvsacl.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kevins20110505/comments/commentRss/351988.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kevins20110505/services/trackbacks/351988.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp; CVS是一个很成熟的版本控制系统，CVSACL就是实现访问控制的CVS补丁。它本身也是一个开源的项目，项目主页是<a href="http://cvsacl.sourceforge.net/index.html">http://cvsacl.sourceforge.net/index.html</a> 。它提供了对CVS的模块、目录和文件以及分支和tag的高级访问控制。CVSACL定义了8级不同的访问权限,分别是: 
<table cellspacing="0" cellpadding="0" border="1">
<tbody>
<tr>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="center">权限</p></td>
<td style="font-size: 10pt; color: #000000"  noWrap>
<p style="font-size: 10pt; color: #000000" align="center">关键字</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="center">说明</p></td></tr>
<tr>
<td style="font-size: 10pt; color: #000000"  noWrap>
<p style="font-size: 10pt; color: #000000" align="left">没有权限</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="center">n</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">用户不能做任何cvs操作</p></td></tr>
<tr>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">读权限</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="center">r</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">可以执行annotate, checkout, diff, export, log, rannotate, rdiff, rlog, status命令</p></td></tr>
<tr>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">写权限</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="center">w</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">可以执行commit/checkin命令</p></td></tr>
<tr>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">tag</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="center">t</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">可以执行tag/rtag命令,依赖读权限 </p></td></tr>
<tr>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">创建</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="center">c</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">可以执行add import 命令</p></td></tr>
<tr>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">删除</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="center">d</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">可以执行rm命令</p></td></tr>
<tr>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">全部权限</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="center">a</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">可以执行所有cvs命令处理cvsacl管理命令</p></td></tr>
<tr>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">管理权限</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="center">p</p></td>
<td style="font-size: 10pt; color: #000000">
<p style="font-size: 10pt; color: #000000" align="left">可以执行所有命令</p></td></tr></tbody></table>
<p style="font-size: 10pt; color: #000000"><strong>1．&nbsp; 下载CVSACL：</strong></p>
<p style="font-size: 10pt; color: #000000">通过如下网址可以下载到CVSACL相关程序，目前最新版本是cvsacl-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.2.5</st1:chsdate>：</p>
<p style="font-size: 10pt; color: #000000"><a href="https://sourceforge.net/project/showfiles.php?group_id=75057&amp;package_id=77484&amp;release_id=423655">https://sourceforge.net/project/showfiles.php?group_id=75057&amp;package_id=77484&amp;release_id=423655</a> </p>
<p style="font-size: 10pt; color: #000000">cvsacl-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.2.5</st1:chsdate>-for-cvs-1.11.22.tar.gz</p>
<p style="font-size: 10pt; color: #000000">cvs-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.11.22</st1:chsdate>-cvsacl-1.2.5-patched.tar.gz</p>
<p style="font-size: 10pt; color: #000000"><strong>2．&nbsp; 安装CVSACL：</strong></p>
<p style="font-size: 10pt; color: #000000">安装方法：cvs-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.11.22</st1:chsdate>-cvsacl-1.2.5-patched.tar.gz</p>
<p style="font-size: 10pt; color: #000000">[root@localhost setup_cvs]# tar -zxvf cvs-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.11.22</st1:chsdate>-cvsacl-1.2.5-patched.tar.gz&nbsp;&nbsp; // 解压缩cvs-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.11.22</st1:chsdate>-cvsacl-1.2.5-patched.tar.gz</p>
<p style="font-size: 10pt; color: #000000">[root@localhost setup_cvs]# mv cvs-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.11.22</st1:chsdate>-cvsacl-1.2.5-patched cvs-1.11.22&nbsp;&nbsp; // 修改cvs-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.11.22</st1:chsdate>-cvsacl-1.2.5-patched目录名称为 cvs-1.11.22</p>
<p style="font-size: 10pt; color: #000000">[root@localhost setup_cvs]# cd cvs-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.11.22</st1:chsdate>&nbsp;&nbsp;&nbsp; // 进入cvs-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.11.22</st1:chsdate></p>
<p style="font-size: 10pt; color: #000000">[root@localhost cvs-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.11.22</st1:chsdate>]# ./configure&nbsp;&nbsp;&nbsp; // 编译安装</p>
<p style="font-size: 10pt; color: #000000">[root@localhost cvs-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.11.22</st1:chsdate>]# make</p>
<p style="font-size: 10pt; color: #000000">[root@localhost cvs-<st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.11.22</st1:chsdate>]# make install</p>
<p style="font-size: 10pt; color: #000000">[root@localhost setup_cvs]# cvs &#8211;version&nbsp;&nbsp;&nbsp; // 查看cvs版本</p>
<p style="font-size: 10pt; color: #000000">Concurrent Versions System (CVS) <st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.11.22</st1:chsdate> (client/server)</p>
<p style="font-size: 10pt; color: #000000">with CVSACL Patch <st1:chsdate isrocdate="False" islunardate="False" day="30" month="12" year="1899" w:st="on">1.2.5</st1:chsdate> (cvsacl.sourceforge.net)</p>
<p style="font-size: 10pt; color: #000000">注：不需要特意删除旧版本的CVS。<br /><br /><strong>3．&nbsp; 修改aclconfig配置文件<br /></strong><font face="Verdana">[newcvsroot@localhost CVSROOT]$ vi aclconfig</font>&nbsp; // 该配置文件在cvs根目录的CVSROOT下，如/data/cvs/CVSROOT/<br /><font face="Verdana">UseCVSACL=yes</font>&nbsp;&nbsp;&nbsp; // 行首去除&#8220;#&#8221;，启用该配置项。</p>
<p style="font-size: 10pt; color: #000000">UseSystemGroups=yes&nbsp;&nbsp; // 行首添加&#8220;#&#8221;，注释该配置项。</p>
<p style="font-size: 10pt; color: #000000">UseCVSGroup=yes&nbsp;&nbsp;&nbsp; // 行首去除&#8220;#&#8221;，启用该配置项。<br /></p>
<p style="font-size: 10pt; color: #000000"><strong>3．&nbsp; 创建用户和组进行赋权<br /></strong><font face="Verdana">[newcvsroot@localhost CVSROOT]$ pwd<br />/datanew/cvs/CVSROOT&nbsp;&nbsp;&nbsp;&nbsp; // 创建用户和组要在CVSROOT下进行，并且执行用户必须是CVSROOT对应的属主用户，即newcvsroot，该用户在搭建cvs服务器时配置。<br />[newcvsroot@localhost CVSROOT]$ htpasswd -b passwd username passwd&nbsp;&nbsp; // 新增用户并设定密码，已有用户的密码更新也可用该命令。<br /></font>[newcvsroot@localhost CVSROOT]$ vi passwd </p>
<p style="font-size: 10pt; color: #000000">kevins:*******:newcvsroot&nbsp;&nbsp;&nbsp;&nbsp; //&nbsp;将passwd文件中的所有cvs用户映射到同一个系统用户newcvsroot上。<br /><br />[newcvsroot@localhost CVSROOT]$ vi group </p>
<p style="font-size: 10pt; color: #000000">文件格式：</p>
<p style="font-size: 10pt; color: #000000">group1:x:10:ii,kevins,ava&nbsp;&nbsp; // 用户之间用&nbsp;&#8220;,&#8221;分隔，&#8220;ii&#8221;为无效的首个用户。</p>
<p style="font-size: 10pt; color: #000000">注：cvsacl有个bug，必须在组用户最前边添加一个不存在的cvs用户，group文件才会生效，原因不明，但此方法确实管用。<br /></p>
<p style="font-size: 10pt; color: #000000"><strong><strong>4．&nbsp; </strong>使用cvsacl细化权限：</strong></p>
<p style="font-size: 10pt; color: #000000">[cvsroot@localhost CVSROOT]$ cvs -d <span style="background-color: #ccffff">/data/cvs </span>racl <span style="background-color: #ccffff">ccp</span>:<span style="background-color: #99ccff">wtcd </span>-R <span style="background-color: #ccffcc">CODE/03.PRODUCT/12.CCP</span><br />说明：<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="background-color: #ccffcc">/data/cvs</span>：cvs服务器的根目录<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="background-color: #ccffcc">ccp</span>：用户或用户组 <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="background-color: #99ccff">wtcd</span>：一般赋&#8220;读写&#8221;权限时用这个组合，详细说明见本文&#8220;CVSACL定义了8级不同的访问权限&#8221;表格<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <span style="background-color: #ccffcc">CODE/03.PRODUCT/12.CCP</span>：配置库中的Module(模块)路径</p>
<p style="font-size: 10pt; color: #000000"><br />格式：cvs &#8211;d 配置库位置 racl [用户||组:权限] [-Rl] [-r tag] [模块&#8230;] [文件&#8230;]</p>
<p style="font-size: 10pt; color: #000000">- R 进行目录递归</p>
<p style="font-size: 10pt; color: #000000">- r rev 设定版本/标签</p>
<p style="font-size: 10pt; color: #000000">- l 列出已定义的ACLs权限</p>
<p style="font-size: 10pt; color: #000000"><strong><span style="color: red">备注：该赋权命令要在CVSROOT目录中执行，执行完后vi access进行查看是否已写入权限文件中。</span><br /></strong></p>
<p style="font-size: 10pt; color: #000000"><br /><br />&nbsp;</p>
<p style="font-size: 10pt; color: #000000"><br /><br /><br /><br /><br /><br /><br /><br />&nbsp;</p><img src ="http://www.blogjava.net/kevins20110505/aggbug/351988.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kevins20110505/" target="_blank">XuFeng</a> 2011-07-25 15:12 <a href="http://www.blogjava.net/kevins20110505/archive/2011/07/25/cvsacl.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>===Linux下apache2的安装和配置===</title><link>http://www.blogjava.net/kevins20110505/archive/2011/06/16/352432.html</link><dc:creator>XuFeng</dc:creator><author>XuFeng</author><pubDate>Thu, 16 Jun 2011 08:25:00 GMT</pubDate><guid>http://www.blogjava.net/kevins20110505/archive/2011/06/16/352432.html</guid><wfw:comment>http://www.blogjava.net/kevins20110505/comments/352432.html</wfw:comment><comments>http://www.blogjava.net/kevins20110505/archive/2011/06/16/352432.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kevins20110505/comments/commentRss/352432.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kevins20110505/services/trackbacks/352432.html</trackback:ping><description><![CDATA[<strong style="font-size: 14pt">Linux下apache2的安装和配置</strong><strong><br /></strong><br />1、下载安装包（如httpd-2.2.0.tar.gz）<font face="Verdana">并拷贝到服务器上<br /><br />2、[test@wasu apache2]$ tar -xzvf httpd-2.2.0.tar.gz&nbsp; //解压安装包<br /><br />3、[test@wasu apache2]$ cd httpd-2.2.0&nbsp;&nbsp;&nbsp; //进入解压出的文件目录中<br /><br />4、[test@wasu httpd-2.2.0]$ ./configure --prefix<span>=</span><span style="color: #0000ff">/home/test/apache2</span><span style="color: #0000ff"> </span>--enable-so --enable-rewrite --enable-expire //指定安装目录和配置项<br /><br />5、[test@wasu httpd-2.2.0]$ make&nbsp; //编译<br /><br />6、[test@wasu httpd-2.2.0]$ make install&nbsp;&nbsp; //安装<br /><br />7、[test@wasu conf]$ pwd<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; /home/test/apache2/conf<br />&nbsp;&nbsp;&nbsp; [test@wasu conf]$ vi httpd.conf&nbsp; <br />//进入安装目录的conf下编辑httpd.conf文件进行apache服务器的IP和Prot的设置，相关内容如下：<br />
<p>&nbsp;</p>
<p>#<br />ServerRoot "/home/test/apache2"&nbsp;&nbsp; //apache服务器根目录</p>
<p>#<br />#<br />#Listen 12.34.56.78:80<br />Listen 1080&nbsp;&nbsp;&nbsp; //监听端口</p>
<p>#<br /># Dynamic Shared Object (DSO) Support<br /></p>
<p>#<br />ServerName 218.108.0.82:1080&nbsp;&nbsp; //服务器IP和Port</p>
<p>#<br /># DocumentRoot: The directory out of which you will serve your<br /># documents. By default, all requests are taken from this directory, but<br /># symbolic links and aliases may be used to point to other locations.<br />#<br />DocumentRoot "/home/test/apache2/htdocs"&nbsp;&nbsp;&nbsp; //服务器文件根目录</p>
<p>#<br /></p>8、[test@wasu apache2]$ cd bin&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp; [test@wasu bin]$ ./apachectl start&nbsp;&nbsp; //启动服务<br /><br />9、[test@wasu bin]$ ps -ef|grep httpd<br />test&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5199&nbsp;&nbsp;&nbsp;&nbsp; 1&nbsp; 0 15:48 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /home/test/apache2/bin/httpd -k start<br />test&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5200&nbsp; 5199&nbsp; 0 15:48 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /home/test/apache2/bin/httpd -k start<br />test&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5201&nbsp; 5199&nbsp; 0 15:48 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /home/test/apache2/bin/httpd -k start<br />test&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5202&nbsp; 5199&nbsp; 0 15:48 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /home/test/apache2/bin/httpd -k start<br />test&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5203&nbsp; 5199&nbsp; 0 15:48 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /home/test/apache2/bin/httpd -k start<br />test&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5204&nbsp; 5199&nbsp; 0 15:48 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /home/test/apache2/bin/httpd -k start<br />test&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5207&nbsp; 5199&nbsp; 0 15:49 ?&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 00:00:00 /home/test/apache2/bin/httpd -k start<br />test&nbsp;&nbsp;&nbsp;&nbsp; 15258&nbsp; 5154&nbsp; 0 16:15 pts/1&nbsp;&nbsp;&nbsp; 00:00:00 grep httpd<br /><br />[test@wasu bin]$ netstat -lnp|grep 1080<br /><br />(Not all processes could be identified, non-owned process info<br />&nbsp;will not be shown, you would have to be root to see it all.)<br />tcp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 0 :::1080&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; :::*&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LISTEN&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5199/httpd <br /><br /><br /><br /><br /><br /><br /><br /></font><img src ="http://www.blogjava.net/kevins20110505/aggbug/352432.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kevins20110505/" target="_blank">XuFeng</a> 2011-06-16 16:25 <a href="http://www.blogjava.net/kevins20110505/archive/2011/06/16/352432.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>==Linux下CVS服务器的安装和配置==</title><link>http://www.blogjava.net/kevins20110505/archive/2011/06/09/CVS.html</link><dc:creator>XuFeng</dc:creator><author>XuFeng</author><pubDate>Thu, 09 Jun 2011 03:26:00 GMT</pubDate><guid>http://www.blogjava.net/kevins20110505/archive/2011/06/09/CVS.html</guid><wfw:comment>http://www.blogjava.net/kevins20110505/comments/351966.html</wfw:comment><comments>http://www.blogjava.net/kevins20110505/archive/2011/06/09/CVS.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/kevins20110505/comments/commentRss/351966.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/kevins20110505/services/trackbacks/351966.html</trackback:ping><description><![CDATA[<div class="postcontent">
<div class="bText">
<p><span style="font-size: 18pt">CVS服务器的安装与配置</span><br /></p>
<p>（转载，经过验证，并作更改和添加）<br /><strong style="font-size: 14pt">一、安装</strong></p>
<p><strong>1、验证是否已安装CVS<br /></strong>[root@localhost /]# rpm -q cvs<br />如果能显示出类似这样的版本信息，证明已安装CVS：<br />[root@localhost /]# cvs-1.11.2-10</p>
<p>一般安装在/usr/bin/cvs,如果未安装,<a href="http://www.cvshome.org/" target="_blank"><font color="#618b2c">http://www.cvshome.org/</font></a>下载一个最新的rpm安装即可;<br /><strong><br />2、创建CVS用户组与用户<br /></strong><span style="color: red">root用户下执行以下命令：</span><br />[root@localhost /]# groupadd cvs<br />[root@localhost /]# adduser cvsroot<br />[root@localhost /]# passwd cvsroot<br />[root@localhost /]# 输入cvsroot用户密码<br /></p>
<p><strong>3、创建CVSROOT目录<br /></strong><span style="color: red">root用户下执行：</span><br />[root@localhost /]# mkdir /data/cvs&nbsp;&nbsp;&nbsp;&nbsp; 此处可改为你想要的cvsroot路径<br />[root@localhost /]# chown cvsroot.cvs /data/cvs&nbsp;&nbsp;&nbsp; 更改cvsroot属主，cvsroot为用户名，cvs为该用户的组名<br /><br /><strong>4、初始化CVS<br /></strong><span style="color: red">需要在cvsroot用户下执行</span><br />[root@localhost /]# su - cvsroot<br />[cvsroot@localhost /]# cvs -d /data/cvs init&nbsp;&nbsp;&nbsp; 此处对应上面创建的cvsroot路径<br /><strong><br />5、修改环境变量<br /></strong>编辑/etc/profile或者/home下相应用户的.profile文件<br />此处以修改/etc/profile为例：<br />[cvsroot@localhost /]# exit<br /><span style="color: red">退回到root用户，只有root用户才有权限修改/etc/profile</span></p>
<p>[root@localhost /]# vi /etc/profile&nbsp;&nbsp; 编辑/etc/profile文件<br /><span style="color: #0000ff">在末尾加上以下两句：</span></p>
<p><span style="color: #0000ff">CVSROOT=/data/cvs</span><br /><span style="color: #0000ff">export CVSROOT</span></p>
<p><span style="color: #0000ff">更新环境变量：</span><br /><span style="color: #0000ff">#. /etc/profile</span><br />此时系统已经认识$CVSROOT这样的环境变量</p>
<p>注意：若提示无权限，则需要改变profile的权限后，再执行上一步骤；</p>
<p>[root@localhost /]# chmod 777 /etc/profile</p>
<p><br /><strong>6、启动cvs服务器：<br /><br /></strong><u>1）&nbsp;修改配置文件：<strong> </strong></u></p>
<p style="font-size: 10pt; color: #000000">[root@localhost /]# vi /etc/services</p>
<p style="font-size: 10pt; color: #000000">查看是否有：</p>
<p style="font-size: 10pt; color: #000000"><span style="color: #0000ff">cvspserver</span> <span style="color: #0000ff">2401</span>/tcp #CVS client/server operations<br /><span style="color: #0000ff">cvspserver</span> <span style="color: #0000ff">2401</span>/udp #CVS client/server operations</p>
<p style="font-size: 10pt; color: #000000">注：<br />1：系统自带了CVS时默认存在2行，只需要确认一下。如果没有，请自己加上去。<br />2：&#8220;<span style="color: #0000ff">cvspserver</span> <span style="color: #0000ff">2401</span>&#8221;要和启动脚本中设置的一致，即分别为启动脚本中的<span style="color: #0000ff">service名和Port</span>。<br /><br /></p>
<p style="font-size: 10pt; color: #000000"><u>2)&nbsp; 创建CVS启动脚本：<br /></u>[root@localhost /]# vi /etc/xinetd.d/cvspserver</p>
<p style="font-size: 10pt; color: #000000">内容如下：<br /># default: off<br /># description: The cvs server sessions;</p>
<p><font face="Verdana">service <span style="color: #0000ff">cvspserver</span><br />{<br />disable&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = no<br />port&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = <span style="color: #0000ff">2402</span><br />socket_type&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = stream<br />protocol&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = tcp<br />wait&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = no<br />user&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = root<br />passenv&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = PATH<br />server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = /usr/local/bin/cvs<br />#env&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = HOME=/data/cvs<br />server_args&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = -f --allow-root=<span style="color: #0000ff">/</span><span style="color: #0000ff">data/cvs </span>pserver&nbsp;&nbsp;&nbsp;&nbsp; //该处的路径为要设置的cvsroot路径<br />#bind&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; = 127.0.0.1<br />}</font><font face="宋体, MS Song">&nbsp;&nbsp;<br /></font></p>
<p style="font-size: 10pt; color: #000000"><br /><u>3）&nbsp; 重新启动xinetd服务</u></p>
<p style="font-size: 10pt; color: #000000">[root@localhost /]# service xinetd restart</p>
<p style="font-size: 10pt; color: #000000">查看是否启动：<br />[root@localhost /]# netstat -l | grep cvspserver</p>
<p style="font-size: 10pt; color: #000000">屏幕显示：tcp 0 0 *:cvspserver *:* LISTEN<br />[root@localhost /]# netstat -lnp|grep 2401<br />屏幕显示：tcp 0 0 0.0.0.0:2401 0.0.0.0:* LISTEN xxxxxx/xinetd&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /></p>
<p style="font-size: 10pt; color: #000000">说明已经正常启动，如果没有请做如下检查：</p>
<p style="font-size: 10pt; color: #000000">&lt;1&gt;请检查vi /etc/xinetd.d/cvspserver文件中的server = /usr/bin/cvs路径和实际执行文件所在位置是否一致；(一般这步骤即可解决该问题)</p>
<p style="font-size: 10pt; color: #000000">&lt;2&gt;请重新检查配置过程是否有错误或者遗漏；</p>
<p style="font-size: 10pt; color: #000000">&lt;3&gt;最后还必须检查防火墙的设置，把2401端口打开。</p></div></div><img src ="http://www.blogjava.net/kevins20110505/aggbug/351966.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/kevins20110505/" target="_blank">XuFeng</a> 2011-06-09 11:26 <a href="http://www.blogjava.net/kevins20110505/archive/2011/06/09/CVS.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>