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

cvs import 的語法為:

cvs import -m "log msg" projname vendortag releasetag

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

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

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

現(xiàn)在試試看從遠程訪問 cvs 服務器。
首先, 在你的機器上建立一個工作目錄, 譬如是 /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

當你敲入login行時,系統(tǒng)會提示你輸入password, 打進去。 www.minigui.org是cvs服務器所在的機器。 該指定被執(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設為全局可讀寫,因為cvs服務器在操作時要在相應目錄下設置讀寫瑣(即需要創(chuàng)建一些臨時文件),所以即使是check out 操作,也需要目錄可寫。
2. 為了讓匿名用戶只有check out權限,可以在CVSROOT目錄下建立一個readers文件,其中每一行是一個用戶,這些用戶只具有只讀權限。比如:
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其實是內部用戶jane,其cvs密碼加密后被存放在第二個字段,這樣將cvs服務與系統(tǒng)的其它部分分離開來,大大地提高了系統(tǒng)的安全性。
上面介紹的是使用需要嚴格的安全認證的pserver服務器,如果您在局域網內開發(fā)程序,則可以使用rsh或者ssh,設置非常簡單,服務器端只要開放著rsh或ssh服務器,客戶端設置兩個環(huán)境變量:CVS_RSH與CVSROOT,可以將它們的設置寫入預處理腳本,比如使用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的拷貝了。


總結
以上只是一個簡介,cvs還有很多高級功能,如果您需要更詳細的信息,請看cvs 的info或者到gnu上下載html版本的manual。

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

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

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

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

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

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

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

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

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

% 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 ?產生 Makefile 文件了

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