您的位置:軟件測(cè)試 > 開(kāi)源軟件測(cè)試 > 開(kāi)源配置管理工具 > cvs
CVS、Automake與Autoconf簡(jiǎn)介
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時(shí)間:[ 2012/12/28 14:18:46 ] 推薦標(biāo)簽:

cvs import 的語(yǔ)法為:

cvs import -m "log msg" projname vendortag releasetag

vendortag 和releasetag 一般不需要關(guān)心,我們這里使用一個(gè)用戶(hù)名和一個(gè)start 標(biāo)志。
我們把其它相關(guān)的project也放到cvs倉(cāng)庫(kù)中:

cd miniguiapps03 ; cvs import –m “the apps” miniguiapps03 joe start
cd miniguiexec03 ; cvs import –m “the demos” miniguiexec03 joe start

這樣,我們把minigui的一個(gè)cvs服務(wù)器建立好了。
注意, 一個(gè) user 要遠(yuǎn)程訪問(wèn)某些project, 他必須擁有適當(dāng)?shù)臋?quán)限。比如,minigui03這個(gè)目錄應(yīng)該屬于組minigui,且組可寫(xiě)。才能使minigui組里的用戶(hù)可以遠(yuǎn)程參與minigui庫(kù)的開(kāi)發(fā)。

現(xiàn)在試試看從遠(yuǎn)程訪問(wèn) cvs 服務(wù)器。
首先, 在你的機(jī)器上建立一個(gè)工作目錄, 譬如是 /home/joe/work
cd /home/joe/work
cvs -d :pserver:joe@www.minigui.org:/home/minigui login
cvs -d :pserver:joe@www.minigui.org:/home/minigui co minigui03
cvs -d :pserver:joe@www.minigui.org:/home/minigui co miniguiapps03
cvs -d :pserver:joe@www.minigui.org:/home/minigui co miniguiexec03
cvs -d :pserver:joe@www.minigui.org:/home/minigui logout

當(dāng)你敲入login行時(shí),系統(tǒng)會(huì)提示你輸入password, 打進(jìn)去。 www.minigui.org是cvs服務(wù)器所在的機(jī)器。 該指定被執(zhí)行后,該 cvsroot
(:pserver:joe@www.minigui.org:/home/minigui) 和加密后的密碼會(huì)被存在 ~/.cvspass 里。
底下幾行取出各個(gè)project。后logout。

cd minigui03

做了一些修改后,可以commit出去:

cvs commit -m "little change"
上面是一般開(kāi)發(fā)者的登陸方法,對(duì)于匿名cvs, 可以讓其不需要輸入口令即可登陸,但是不能讓其commint。這需要:
1. 將要開(kāi)放的project設(shè)為全局可讀寫(xiě),因?yàn)閏vs服務(wù)器在操作時(shí)要在相應(yīng)目錄下設(shè)置讀寫(xiě)瑣(即需要?jiǎng)?chuàng)建一些臨時(shí)文件),所以即使是check out 操作,也需要目錄可寫(xiě)。
2. 為了讓匿名用戶(hù)只有check out權(quán)限,可以在CVSROOT目錄下建立一個(gè)readers文件,其中每一行是一個(gè)用戶(hù),這些用戶(hù)只具有只讀權(quán)限。比如:
anonymous
anoncvs
guest
jbrowse
3. 利用passwd文件,使匿名用戶(hù)不能用其它方式登陸。典型為:
在文件CVSROOT/passwd 中:
anoncvs:XR4EZcEs0szik
在文件/etc/passwd 中為:
anoncvs:!:1729:105:Anonymous CVS User:/home/minigui:/bin/false
CVSROOT/passwd文件是cvs提供的一個(gè)專(zhuān)用于存放cvs密碼的文件。它的典型格式為:
joe:XR4EZcEs0szik:jane
表示cvs用戶(hù)joe其實(shí)是內(nèi)部用戶(hù)jane,其cvs密碼加密后被存放在第二個(gè)字段,這樣將cvs服務(wù)與系統(tǒng)的其它部分分離開(kāi)來(lái),大大地提高了系統(tǒng)的安全性。
上面介紹的是使用需要嚴(yán)格的安全認(rèn)證的pserver服務(wù)器,如果您在局域網(wǎng)內(nèi)開(kāi)發(fā)程序,則可以使用rsh或者ssh,設(shè)置非常簡(jiǎn)單,服務(wù)器端只要開(kāi)放著rsh或ssh服務(wù)器,客戶(hù)端設(shè)置兩個(gè)環(huán)境變量:CVS_RSH與CVSROOT,可以將它們的設(shè)置寫(xiě)入預(yù)處理腳本,比如使用ssh連接:

$export CVS_RSH="ssh"
$export CVSROOT=":ext:joe@www.minigui.org:/home/minigui"

$ cvs co miniguiexec03
joe@192.9.200.75's password:

輸入密碼,可以得到一份miniguiexec03的拷貝了。


總結(jié)
以上只是一個(gè)簡(jiǎn)介,cvs還有很多高級(jí)功能,如果您需要更詳細(xì)的信息,請(qǐng)看cvs 的info或者到gnu上下載html版本的manual。

第二部分 使用Automake,Autoconf生成Makefile
在Unix上寫(xiě)過(guò)程序的人尤其是用 C 來(lái)開(kāi)發(fā)程序的人一般都遇到過(guò) Makefile,用 make 來(lái)開(kāi)發(fā)和編譯程序的確很方便,可是要寫(xiě)出一個(gè)Makefile不那么簡(jiǎn)單了。GNU Make 那份幾百頁(yè)的文件,讓許多人害怕。當(dāng)然,現(xiàn)在關(guān)于make的文檔比較多,不過(guò)寫(xiě)一個(gè)Makefile總是一件很煩人的事情,GNU Autoconf 及 Automake 這兩個(gè)軟件是幫助程序開(kāi)發(fā)者輕松產(chǎn)生Makefile 文件的,F(xiàn)在的GNU軟件如Apache, MySQL Minigui等都是利用Autoconf,Automake實(shí)現(xiàn)自動(dòng)編譯的。用戶(hù)只要使用 “./configure”, “make”, “make install” 可以把程序安?到系統(tǒng)中。

簡(jiǎn)介
Makefile 基本上是『目標(biāo)』(target), 『關(guān)聯(lián)』(dependencies) 和『動(dòng)作』三者所組成的一系列規(guī)則。而 make 是根據(jù) Makefile 的規(guī)則決定如何編譯 (compile) 和連接 (link) 程序或者其它動(dòng)作。當(dāng)然,make 可做的不只是編譯和連接程序,例如 FreeBSD 的 port collection 中,Makefile還可以做到自動(dòng)下載遠(yuǎn)程程序,解壓縮 (extract) , 打補(bǔ)丁 (patch),設(shè)定,然后編譯,安裝到系統(tǒng)中。

Makefile 基本結(jié)構(gòu)雖然很簡(jiǎn)單,但是妥善運(yùn)用這些規(guī)則可以變換出許多不同的花樣。卻也因?yàn)檫@樣,許多人剛開(kāi)始學(xué)寫(xiě)Makefile 時(shí)會(huì)覺(jué)得沒(méi)有規(guī)范可以遵循,每個(gè)人寫(xiě)出來(lái)的Makefile都不大一樣,不知道從哪里下手,而且常常會(huì)受到開(kāi)發(fā)環(huán)境的限制,只要環(huán)境參數(shù)不同或者路徑更改,可能 Makefile 得跟著修改。雖然有GNU Makefile Conventions (GNU Makefile慣例)制訂出一些在進(jìn)行 GNU 程序設(shè)計(jì)時(shí)寫(xiě) Makefile 的一些標(biāo)準(zhǔn)和規(guī)范,但是其內(nèi)容很長(zhǎng)而且很復(fù)雜,并且經(jīng)常作一些調(diào)整,為了減輕程序開(kāi)發(fā)人員維護(hù)Makefile 的負(fù)擔(dān),出現(xiàn)了Automake。

利用Automake,編程者只需要寫(xiě)一些預(yù)先定義好的宏 (macro),提交給Automake處理,會(huì)產(chǎn)生一個(gè)可以供 Autoconf 使用的 Makefile.in文件。再配合使用 Autoconf產(chǎn)生的自動(dòng)配置文件 configure 即可產(chǎn)生一份符合 GNU Makefile 慣例的 Makeifle 了。

需要的軟件
在開(kāi)始使用 Automake 之前,首先確認(rèn)你的系統(tǒng)安裝有如下軟件:

1. GNU Automake
2. GNU Autoconf
3. GNU m4
4. perl
5. GNU Libtool (如果你需要產(chǎn)生 shared library)

好也使用 GNU C/C++ 編譯器 、GNU Make 以及其它 GNU 的工具程序來(lái)作為開(kāi)發(fā)的環(huán)境,這些工具都是屬于 Open Source Software 不但免費(fèi)而且功能強(qiáng)大。如果你是使用 Red Hat Linux 可以找到所有上述軟件的 rpm 文件!

一個(gè)簡(jiǎn)單的例子
Automake 所產(chǎn)生的 Makefile 除了可以做到程序的編譯和連接,也可以用來(lái)生成文檔(如 manual page, info 文件等),還可以有把源碼文件包裝起來(lái)以供發(fā)布,所以程序源代碼所存放的目錄結(jié)構(gòu)好符合GNU 的標(biāo)準(zhǔn)慣例,接下來(lái)用一個(gè)hello.c ?做為例子。

在工作目錄下建立一個(gè)新的子目錄devel,再在 devel 下建立一個(gè)"hello"' 的子目錄,這個(gè)目錄將
作為存放 hello這個(gè)程序及其相關(guān)文件的地方:

% mkdir devel;cd devel;mkdir hello;cd hello

用編輯器寫(xiě)一個(gè)hello.c文件,

#include <stdio.h>
int main(int argc, char** argv)
{
printf(“Hello, GNU!n”);
return 0;
}

接下來(lái)要用 Autoconf 及 Automake ?產(chǎn)生 Makefile 文件了

上一頁(yè)1234下一頁(yè)
軟件測(cè)試工具 | 聯(lián)系我們 | 投訴建議 | 誠(chéng)聘英才 | 申請(qǐng)使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd