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

cvs import 的語法為:

cvs import -m "log msg" projname vendortag releasetag

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

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

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

現(xiàn)在試試看從遠(yuǎn)程訪問 cvs 服務(wù)器。
首先, 在你的機(jī)器上建立一個工作目錄, 譬如是 /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行時,系統(tǒng)會提示你輸入password, 打進(jìn)去。 www.minigui.org是cvs服務(wù)器所在的機(jī)器。 該指定被執(zhí)行后,該 cvsroot
(:pserver:joe@www.minigui.org:/home/minigui) 和加密后的密碼會被存在 ~/.cvspass 里。
底下幾行取出各個project。后logout。

cd minigui03

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

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

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

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

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

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

需要的軟件
在開始使用 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 的工具程序來作為開發(fā)的環(huán)境,這些工具都是屬于 Open Source Software 不但免費(fèi)而且功能強(qiáng)大。如果你是使用 Red Hat Linux 可以找到所有上述軟件的 rpm 文件。 

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

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

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

用編輯器寫一個hello.c文件,

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

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

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