====编译工作流程(FOR WASU R&D)=====
========
|| 前提条件 ||
========
收到开发人员提交的编译申请邮件
==========
|| 主要工作流程 ||
==========
1、查看版本说明书(明确编译的程序工程、数据库和配置文件变更与否)
2、编译
3、修改配置(包括数据库和配置文件的变更)
4、启动服务(跟踪日志查看能否正常启动)
5、版本管理(在版本管理列表中填写版本记录,包括版本号、提交时间、需求编号、需求说明等)
===========
|| 详细操作步骤 || ==========
1、 查看版本说明书
Checkout编译申请邮件中说明的产品版本说明书到本地,打开查看“更改程序列表(要编译的程序工程)、数据库结构变化(如有变化要在数据库中执行相应的脚本)、配置说明(按照说明更改部署服务器中的配置)”等。
2、编译
编译服务器、账号、路径和对应产品:
218.*.*.120 compiler/q1w2e3
/compiler/wasuprd 研究院各个产品
218.*.*.68 compiler/com{:>
/compiler/wasu 28.直播广告管理系统、bootAd等。
/compiler/product 51.华数直播广告系统
找到要编译产品的程序工程,执行编译脚本。
举例如下:
产品:
贺卡
编译版本:
1_6_11_1
编译的工程:
ccp-tv
编译相关脚本:
build-ccp-tv.xml (执行编译的脚本)
ccp-tv.sh(启动编译的脚本)
编译操作步骤
1、[compi
ler@yuan_RAC02 wasuprd]$ vi build-ccp-tv.xml 如果是按Tag号进行取代码编译,则要先在下面的这段中更改tag.version的value值,然后再执行编译,默认为空表示取最新的代码。
<!--================================-->
<!--代码tag号设置 -->
<!--================================-->
<property name="tag.version" value="ccp-tv1_6_11_1_1"/>
2、[compi
ler@yuan_RAC02 wasuprd]$ sh ccp-tv.sh //执行编译,执行该命令后平面会打印日志
3、[compiler@yuan_RAC02 wasuprd]$ cd dist/
[compiler@yuan_RAC02 dist]$ cd 20110725
[compiler@yuan_RAC02 20110725]$ mv ccp-tv.war ccp-tv1_6_11_1.war //标记备份war包的版本号:
编译执行完后,在/compiler/wasuprd/dist下会自动生成一个以当前日期命名的文件夹,文件夹中会有ccp-tv.war的程序包。
3、修改配置
产品部署服务器IP、登录账号和配置文件路径
218.*.*.120 pdtest/zxcasdqwe
218.*.*.68
test/test@edc配置文件路径都为:/pdtest/config //
个别项目的配置文件可能在tomcat中,请参照启动脚本中的配置
120服务器的截图如下:
[pdtest@yuan_RAC02 ~]$ ls
adrPreview config iploader nohup.out product rmlog.sh ssuds.1.0.1 ssuds.1.0.1.build079.tar ssuds.conf start-sp.sh unzip
[pdtest@yuan_RAC02 ~]$ cd config/
[pdtest@yuan_RAC02 config]$ pwd
/pdtest/config
[pdtest@yuan_RAC02 config]$ ls
admin album-server als bh bill-tv bootad ccp-tv cps-tv ers file ipc pws rec saui smc-tv sp-tv tds uaoc ubc vod-epg wsmail
4、启动服务
登录服务部署的tomcat下,关闭该tomcat进程,清除work目录下的内容,执行启动tomcat的脚本,具体操作命令如下
[pdtest@yuan_RAC02 tv]$ ls
apache-tomcat-5.5.26 bill-picture prp_ccp_logs prp_cps_logs start-tomcat.sh
[pdtest@yuan_RAC02 tv]$ ps -ef | grep 'Djava.endorsed.dirs=/pdtest/product/tv/apache-tomcat-5.5.26'
pdtest 24430 1 1 16:00 pts/17 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
pdtest 30286 21779 0 16:47 pts/15 00:00:00 grep Djava.endorsed.dirs=/pdtest/product/tv/apache-tomcat-5.5.26
[pdtest@yuan_RAC02 tv]$ kill -9 24430
[pdtest@yuan_RAC02 tv]$ cd apache-tomcat-5.5.26/
[pdtest@yuan_RAC02 apache-tomcat-5.5.26]$ cd work
[pdtest@yuan_RAC02 work]$ rm -rf *
[pdtest@yuan_RAC02 work]$ cd ../../
[pdtest@yuan_RAC02 tv]$ ls
apache-tomcat-5.5.26 bill-picture prp_ccp_logs prp_cps_logs start-tomcat.sh
[pdtest@yuan_RAC02 tv]$ sh start-tomcat.sh
5、版本管理
版本管理列表在CVS中的路径:
DOCUMENT\03.产品类\00.产品研发管理\02.SCM\02.版本管理\华数研究院-产品版本列表(New).xlsx
填写内容包括:
发布日期、Release版本号(红色标记)、子系统版本号(即提取代码的Tag号)或标记符号“■”、需求编号、需求描述
######C语言产品编译补充############
1:编译服务器、账号、密码、产品与路径
218.*.*.89 wasucpp/wsxasd
/home/wasucpp/XP 交换网关系统
/home/wasucpp/UTCO 统一头端产品
2:编译步骤(以utoc为例)
##全量编译##
-bash-3.00$ pwd
/home/wasucpp/UTCO/utoc
-bash-3.00$ ls
CVS ace apps bin build common conf include lib samples src
-bash-3.00$ cvs update
//更新源代码
-bash-3.00$ cd build/
-bash-3.00$ ls
CVS Makefile readme.txt
-bash-3.00$ gmake clean
-bash-3.00$ gmake
##增量编译(本次改动的为apps下的文件)##
-bash-3.00$ pwd
/home/wasucpp/UTCO/utoc
-bash-3.00$ ls
CVS ace apps bin build common conf include lib samples src
-bash-3.00$ cd apps
-bash-3.00$ cvs update //更新源代码
-bash-3.00$ gmake clean
-bash-3.00$ gmake
CVS是一个很成熟的版本控制系统,CVSACL就是实现访问控制的CVS补丁。它本身也是一个开源的项目,项目主页是
http://cvsacl.sourceforge.net/index.html 。它提供了对CVS的模块、目录和文件以及分支和tag的高级访问控制。CVSACL定义了8级不同的访问权限,分别是:
权限 |
关键字 |
说明 |
没有权限 |
n |
用户不能做任何cvs操作 |
读权限 |
r |
可以执行annotate, checkout, diff, export, log, rannotate, rdiff, rlog, status命令 |
写权限 |
w |
可以执行commit/checkin命令 |
tag |
t |
可以执行tag/rtag命令,依赖读权限 |
创建 |
c |
可以执行add import 命令 |
删除 |
d |
可以执行rm命令 |
全部权限 |
a |
可以执行所有cvs命令处理cvsacl管理命令 |
管理权限 |
p |
可以执行所有命令 |
1. 下载CVSACL:
通过如下网址可以下载到CVSACL相关程序,目前最新版本是cvsacl-1.2.5:
https://sourceforge.net/project/showfiles.php?group_id=75057&package_id=77484&release_id=423655
cvsacl-1.2.5-for-cvs-1.11.22.tar.gz
cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz
2. 安装CVSACL:
安装方法:cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz
[root@localhost setup_cvs]# tar -zxvf cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz // 解压缩cvs-1.11.22-cvsacl-1.2.5-patched.tar.gz
[root@localhost setup_cvs]# mv cvs-1.11.22-cvsacl-1.2.5-patched cvs-1.11.22 // 修改cvs-1.11.22-cvsacl-1.2.5-patched目录名称为 cvs-1.11.22
[root@localhost setup_cvs]# cd cvs-1.11.22 // 进入cvs-1.11.22
[root@localhost cvs-1.11.22]# ./configure // 编译安装
[root@localhost cvs-1.11.22]# make
[root@localhost cvs-1.11.22]# make install
[root@localhost setup_cvs]# cvs –version // 查看cvs版本
Concurrent Versions System (CVS) 1.11.22 (client/server)
with CVSACL Patch 1.2.5 (cvsacl.sourceforge.net)
注:不需要特意删除旧版本的CVS。
3. 修改aclconfig配置文件
[newcvsroot@localhost CVSROOT]$ vi aclconfig // 该配置文件在cvs根目录的CVSROOT下,如/data/cvs/CVSROOT/
UseCVSACL=yes // 行首去除“#”,启用该配置项。
UseSystemGroups=yes // 行首添加“#”,注释该配置项。
UseCVSGroup=yes // 行首去除“#”,启用该配置项。
3. 创建用户和组进行赋权
[newcvsroot@localhost CVSROOT]$ pwd
/datanew/cvs/CVSROOT // 创建用户和组要在CVSROOT下进行,并且执行用户必须是CVSROOT对应的属主用户,即newcvsroot,该用户在搭建cvs服务器时配置。
[newcvsroot@localhost CVSROOT]$ htpasswd -b passwd username passwd // 新增用户并设定密码,已有用户的密码更新也可用该命令。
[newcvsroot@localhost CVSROOT]$ vi passwd
kevins:*******:newcvsroot // 将passwd文件中的所有cvs用户映射到同一个系统用户newcvsroot上。
[newcvsroot@localhost CVSROOT]$ vi group
文件格式:
group1:x:10:ii,kevins,ava // 用户之间用 “,”分隔,“ii”为无效的首个用户。
注:cvsacl有个bug,必须在组用户最前边添加一个不存在的cvs用户,group文件才会生效,原因不明,但此方法确实管用。
4. 使用cvsacl细化权限:
[cvsroot@localhost CVSROOT]$ cvs -d /data/cvs racl ccp:wtcd -R CODE/03.PRODUCT/12.CCP
说明:
/data/cvs:cvs服务器的根目录
ccp:用户或用户组
wtcd:一般赋“读写”权限时用这个组合,详细说明见本文“CVSACL定义了8级不同的访问权限”表格
CODE/03.PRODUCT/12.CCP:配置库中的Module(模块)路径
格式:cvs –d 配置库位置 racl [用户||组:权限] [-Rl] [-r tag] [模块…] [文件…]
- R 进行目录递归
- r rev 设定版本/标签
- l 列出已定义的ACLs权限
备注:该赋权命令要在CVSROOT目录中执行,执行完后vi access进行查看是否已写入权限文件中。
Linux下apache2的安装和配置
1、下载安装包(如httpd-2.2.0.tar.gz)
并拷贝到服务器上
2、[test@wasu apache2]$ tar -xzvf httpd-2.2.0.tar.gz //解压安装包
3、[test@wasu apache2]$ cd httpd-2.2.0 //进入解压出的文件目录中
4、[test@wasu httpd-2.2.0]$ ./configure --prefix=/home/test/apache2 --enable-so --enable-rewrite --enable-expire //指定安装目录和配置项
5、[test@wasu httpd-2.2.0]$ make //编译
6、[test@wasu httpd-2.2.0]$ make install //安装
7、[test@wasu conf]$ pwd
/home/test/apache2/conf
[test@wasu conf]$ vi httpd.conf
//进入安装目录的conf下编辑httpd.conf文件进行apache服务器的IP和Prot的设置,相关内容如下:
#
ServerRoot "/home/test/apache2" //apache服务器根目录
#
#
#Listen 12.34.56.78:80
Listen 1080 //监听端口
#
# Dynamic Shared Object (DSO) Support
#
ServerName 218.108.0.82:1080 //服务器IP和Port
#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "/home/test/apache2/htdocs" //服务器文件根目录
#
8、[test@wasu apache2]$ cd bin
[test@wasu bin]$ ./apachectl start //启动服务
9、[test@wasu bin]$ ps -ef|grep httpd
test 5199 1 0 15:48 ? 00:00:00 /home/test/apache2/bin/httpd -k start
test 5200 5199 0 15:48 ? 00:00:00 /home/test/apache2/bin/httpd -k start
test 5201 5199 0 15:48 ? 00:00:00 /home/test/apache2/bin/httpd -k start
test 5202 5199 0 15:48 ? 00:00:00 /home/test/apache2/bin/httpd -k start
test 5203 5199 0 15:48 ? 00:00:00 /home/test/apache2/bin/httpd -k start
test 5204 5199 0 15:48 ? 00:00:00 /home/test/apache2/bin/httpd -k start
test 5207 5199 0 15:49 ? 00:00:00 /home/test/apache2/bin/httpd -k start
test 15258 5154 0 16:15 pts/1 00:00:00 grep httpd
[test@wasu bin]$ netstat -lnp|grep 1080
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
tcp 0 0 :::1080 :::* LISTEN 5199/httpd
######入门######
句子分类:简单句、并列句和复合句简单句:
1:The train arrives.
2:The sea had become calm again.
3:Everybody will say the same thing.
并列句:
1: This is me and these are my friends.
2: They must stay in water, or they will die.
3: It's not cheap, but it is very good.
复合句:
1: The office that deals with passports is upstairs.
2: He told her that he didn't know.
3: When he woke up, the sea become calm again.
简单句的五种基本结构
1: 主语+谓语 Things change.
Did you go by plane?
Nobody will come.
2: 主语+连系动词+表语 Trees are green.
Mr. Smith is a painter.
She seems kind.
3: 主语+谓语+宾语 We don't beat children.
My sister will fix everything.
The bus caught fire.
4: 主语+谓语+直接宾语/间接宾语 He brought his wife a ring.
I'll write you a long letter.
He asked the teacher a question.
5: 主语+谓语+宾语+宾补 I found the book easy.
She'll let me go.
I heard the baby crying.