====編譯工作流程(FOR WASU R&D)=====
========
|| 前提條件 ||
========
收到開發(fā)人員提交的編譯申請(qǐng)郵件
==========
|| 主要工作流程 ||
==========
1、查看版本說明書(明確編譯的程序工程、數(shù)據(jù)庫和配置文件變更與否)
2、編譯
3、修改配置(包括數(shù)據(jù)庫和配置文件的變更)
4、啟動(dòng)服務(wù)(跟蹤日志查看能否正常啟動(dòng))
5、版本管理(在版本管理列表中填寫版本記錄,包括版本號(hào)、提交時(shí)間、需求編號(hào)、需求說明等)
===========
|| 詳細(xì)操作步驟 || ==========
1、 查看版本說明書
Checkout編譯申請(qǐng)郵件中說明的產(chǎn)品版本說明書到本地,打開查看“更改程序列表(要編譯的程序工程)、數(shù)據(jù)庫結(jié)構(gòu)變化(如有變化要在數(shù)據(jù)庫中執(zhí)行相應(yīng)的腳本)、配置說明(按照說明更改部署服務(wù)器中的配置)”等。
2、編譯
編譯服務(wù)器、賬號(hào)、路徑和對(duì)應(yīng)產(chǎn)品:
218.*.*.120 compiler/q1w2e3
/compiler/wasuprd 研究院各個(gè)產(chǎn)品
218.*.*.68 compiler/com{:>
/compiler/wasu 28.直播廣告管理系統(tǒng)、bootAd等。
/compiler/product 51.華數(shù)直播廣告系統(tǒng)
找到要編譯產(chǎn)品的程序工程,執(zhí)行編譯腳本。
舉例如下:
產(chǎn)品:
賀卡
編譯版本:
1_6_11_1
編譯的工程:
ccp-tv
編譯相關(guān)腳本:
build-ccp-tv.xml (執(zhí)行編譯的腳本)
ccp-tv.sh(啟動(dòng)編譯的腳本)
編譯操作步驟
1、[compi
ler@yuan_RAC02 wasuprd]$ vi build-ccp-tv.xml 如果是按Tag號(hào)進(jìn)行取代碼編譯,則要先在下面的這段中更改tag.version的value值,然后再執(zhí)行編譯,默認(rèn)為空表示取最新的代碼。
<!--================================-->
<!--代碼tag號(hào)設(shè)置 -->
<!--================================-->
<property name="tag.version" value="ccp-tv1_6_11_1_1"/>
2、[compi
ler@yuan_RAC02 wasuprd]$ sh ccp-tv.sh //執(zhí)行編譯,執(zhí)行該命令后平面會(huì)打印日志
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 //標(biāo)記備份war包的版本號(hào):
編譯執(zhí)行完后,在/compiler/wasuprd/dist下會(huì)自動(dòng)生成一個(gè)以當(dāng)前日期命名的文件夾,文件夾中會(huì)有ccp-tv.war的程序包。
3、修改配置
產(chǎn)品部署服務(wù)器IP、登錄賬號(hào)和配置文件路徑
218.*.*.120 pdtest/zxcasdqwe
218.*.*.68
test/test@edc配置文件路徑都為:/pdtest/config //
個(gè)別項(xiàng)目的配置文件可能在tomcat中,請(qǐng)參照啟動(dòng)腳本中的配置
120服務(wù)器的截圖如下:
[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、啟動(dòng)服務(wù)
登錄服務(wù)部署的tomcat下,關(guān)閉該tomcat進(jìn)程,清除work目錄下的內(nèi)容,執(zhí)行啟動(dòng)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.產(chǎn)品類\00.產(chǎn)品研發(fā)管理\02.SCM\02.版本管理\華數(shù)研究院-產(chǎn)品版本列表(New).xlsx
填寫內(nèi)容包括:
發(fā)布日期、Release版本號(hào)(紅色標(biāo)記)、子系統(tǒng)版本號(hào)(即提取代碼的Tag號(hào))或標(biāo)記符號(hào)“■”、需求編號(hào)、需求描述
######C語言產(chǎn)品編譯補(bǔ)充############
1:編譯服務(wù)器、賬號(hào)、密碼、產(chǎn)品與路徑
218.*.*.89 wasucpp/wsxasd
/home/wasucpp/XP 交換網(wǎng)關(guān)系統(tǒng)
/home/wasucpp/UTCO 統(tǒng)一頭端產(chǎn)品
2:編譯步驟(以u(píng)toc為例)
##全量編譯##
-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
##增量編譯(本次改動(dòng)的為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是一個(gè)很成熟的版本控制系統(tǒng),CVSACL就是實(shí)現(xiàn)訪問控制的CVS補(bǔ)丁。它本身也是一個(gè)開源的項(xiàng)目,項(xiàng)目主頁是
http://cvsacl.sourceforge.net/index.html 。它提供了對(duì)CVS的模塊、目錄和文件以及分支和tag的高級(jí)訪問控制。CVSACL定義了8級(jí)不同的訪問權(quán)限,分別是:
權(quán)限 |
關(guān)鍵字 |
說明 |
沒有權(quán)限 |
n |
用戶不能做任何cvs操作 |
讀權(quán)限 |
r |
可以執(zhí)行annotate, checkout, diff, export, log, rannotate, rdiff, rlog, status命令 |
寫權(quán)限 |
w |
可以執(zhí)行commit/checkin命令 |
tag |
t |
可以執(zhí)行tag/rtag命令,依賴讀權(quán)限 |
創(chuàng)建 |
c |
可以執(zhí)行add import 命令 |
刪除 |
d |
可以執(zhí)行rm命令 |
全部權(quán)限 |
a |
可以執(zhí)行所有cvs命令處理cvsacl管理命令 |
管理權(quán)限 |
p |
可以執(zhí)行所有命令 |
1. 下載CVSACL:
通過如下網(wǎng)址可以下載到CVSACL相關(guān)程序,目前最新版本是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 // 進(jìn)入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 // 行首去除“#”,啟用該配置項(xiàng)。
UseSystemGroups=yes // 行首添加“#”,注釋該配置項(xiàng)。
UseCVSGroup=yes // 行首去除“#”,啟用該配置項(xiàng)。
3. 創(chuàng)建用戶和組進(jìn)行賦權(quán)
[newcvsroot@localhost CVSROOT]$ pwd
/datanew/cvs/CVSROOT // 創(chuàng)建用戶和組要在CVSROOT下進(jìn)行,并且執(zhí)行用戶必須是CVSROOT對(duì)應(yīng)的屬主用戶,即newcvsroot,該用戶在搭建cvs服務(wù)器時(shí)配置。
[newcvsroot@localhost CVSROOT]$ htpasswd -b passwd username passwd // 新增用戶并設(shè)定密碼,已有用戶的密碼更新也可用該命令。
[newcvsroot@localhost CVSROOT]$ vi passwd
kevins:*******:newcvsroot // 將passwd文件中的所有cvs用戶映射到同一個(gè)系統(tǒng)用戶newcvsroot上。
[newcvsroot@localhost CVSROOT]$ vi group
文件格式:
group1:x:10:ii,kevins,ava // 用戶之間用 “,”分隔,“ii”為無效的首個(gè)用戶。
注:cvsacl有個(gè)bug,必須在組用戶最前邊添加一個(gè)不存在的cvs用戶,group文件才會(huì)生效,原因不明,但此方法確實(shí)管用。
4. 使用cvsacl細(xì)化權(quán)限:
[cvsroot@localhost CVSROOT]$ cvs -d /data/cvs racl ccp:wtcd -R CODE/03.PRODUCT/12.CCP
說明:
/data/cvs:cvs服務(wù)器的根目錄
ccp:用戶或用戶組
wtcd:一般賦“讀寫”權(quán)限時(shí)用這個(gè)組合,詳細(xì)說明見本文“CVSACL定義了8級(jí)不同的訪問權(quán)限”表格
CODE/03.PRODUCT/12.CCP:配置庫中的Module(模塊)路徑
格式:cvs –d 配置庫位置 racl [用戶||組:權(quán)限] [-Rl] [-r tag] [模塊…] [文件…]
- R 進(jìn)行目錄遞歸
- r rev 設(shè)定版本/標(biāo)簽
- l 列出已定義的ACLs權(quán)限
備注:該賦權(quán)命令要在CVSROOT目錄中執(zhí)行,執(zhí)行完后vi access進(jìn)行查看是否已寫入權(quán)限文件中。
Linux下apache2的安裝和配置
1、下載安裝包(如httpd-2.2.0.tar.gz)
并拷貝到服務(wù)器上
2、[test@wasu apache2]$ tar -xzvf httpd-2.2.0.tar.gz //解壓安裝包
3、[test@wasu apache2]$ cd httpd-2.2.0 //進(jìn)入解壓出的文件目錄中
4、[test@wasu httpd-2.2.0]$ ./configure --prefix=/home/test/apache2 --enable-so --enable-rewrite --enable-expire //指定安裝目錄和配置項(xiàng)
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
//進(jìn)入安裝目錄的conf下編輯httpd.conf文件進(jìn)行apache服務(wù)器的IP和Prot的設(shè)置,相關(guān)內(nèi)容如下:
#
ServerRoot "/home/test/apache2" //apache服務(wù)器根目錄
#
#
#Listen 12.34.56.78:80
Listen 1080 //監(jiān)聽端口
#
# Dynamic Shared Object (DSO) Support
#
ServerName 218.108.0.82:1080 //服務(wù)器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" //服務(wù)器文件根目錄
#
8、[test@wasu apache2]$ cd bin
[test@wasu bin]$ ./apachectl start //啟動(dòng)服務(wù)
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