這是第一次在非Windows系統(tǒng)安裝軟件,對于系統(tǒng)中很多基本的東西都不熟悉,基本上都是看著配置文檔來的,很多東西都是需要用的時候才找的,因此也花了不少時間。比較欣慰的時這些軟件的文檔的都很詳細,使一個初次接觸者也能夠按照文檔的說明一步一步完成安裝。
目錄:
1) SVN簡介
2)準備工作
4)開始安裝
5)創(chuàng)建文件庫
6)Apache配置
7)把CVS檔案庫轉換為SVN檔案庫
1. SVN簡介
Subversion開始由CollabNet(http://www.collab.net) 所有,但是它確實是一個開源的軟件,遵從bsd樣式的許可證。CollabNet只是給幾個全職開發(fā)者發(fā)工資,并享有代碼的版權,但是這個版權是 Apache/BSD-style的許可證,也就是說,你可以自由下載,修改,發(fā)布Subversion,而不需要CollabNet或其他人的許可。
Subversion意為更好的CVS,所以它除了包括了大多數(shù)CVS的特點,還有一些新鮮的東西:
Repositories 可以用內(nèi)建的BerkeleyDB 或者普通文件實現(xiàn)。
目錄在Subversion中和文件一樣是versionable的對象,還有文件重命名等。Subversion還允許用戶追蹤文件和目錄的任意屬性信息,包括元信息(META-DATA)。甚至包括符號連接。在Subversion中,容易移動,復制和重命名。
高效的網(wǎng)絡利用率。Subversion 可以用apache的基于HTTP的 WebDAV/DeltaV協(xié)議進行通訊。Apache服務器提供repository的服務。
二進制文件處理的增強。
本地化消息Localized messages
Subversion根據(jù)本地設置(locale settings) 用gettext()顯示翻譯過的錯誤,信息,幫助等。
Branching and tagging are cheap (constant time) operations
Subversion支持目前所有的流行的操作系統(tǒng),比如Unix, Win32, BeOS, OS/2, MacOS X等。
下載到:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
文檔:
更多的信息還是到主頁 http://subversion.tigris.org/上去看吧。
相關網(wǎng)站:
Subversion for Windows 安裝指南http://sun.cis.scu.edu.tw/~nms9115/articles/softeng/scm/svn/2-install/svn_install.htm
Version Control with Subversion中文版:http://svn.ntcu.net/svnbook/book.html
http://svnbook.red-bean.com/svnbook-1.1/svn-book.pdf
2. 準備工作
地址:http://subversion.tigris.org/servlets/NewsItemView?newsItemID=1159
下載:libxml2-2.5.3.tar.gz
地址:http://cosoft.org.cn/html/osl/projects.php?group_id=4981
下載:neon-0.24.7.tar.gz
地址:http://www.webdav.org/neon
下載:db-4.3.28.NC.tar.gz
地址: http://www.sleepycat.com/download/index.shtml
下載:Apache Web Server 2.0.49 or newer
地址: http://httpd.apache.org/download.cgi
3. 安裝使用tar打包的應用軟件
整個安裝過程可以分為以下幾步:
? 取得應用軟件:通過下載、購買光盤的方法獲得;
? 解壓縮文件:一般tar包,都會再做一次壓縮,如gzip、bz2 等,所以你需要先解壓。如
果是最常見的gz格式,則可以執(zhí)行:“tar -xvzf 軟件包名”,就可以一步完成解壓與解
包工作。如果不是,則先用解壓軟件,再執(zhí)行“tar -xvf 解壓后的tar包”進行解包;
? 閱讀附帶的INSTALL文件、README 文件;
? 執(zhí)行“./configure”命令為編譯做好準備;
? 執(zhí)行“make”命令進行軟件編譯;
? 執(zhí)行“make install”完成安裝;
? 執(zhí)行“make clean”刪除安裝時產(chǎn)生的臨時文件。
好了,到此大功告成。我們就可以運行應用程序了。但這時,有的讀者就會問,我怎么執(zhí)
行呢?這也是一個Linux特色的問題。其實,一般來說,Linux的應用軟件的可執(zhí)行文件
會存放在/usr/local/bin目錄下!不過這并不是“放四海皆準”的真理,最可靠的還是看這
個軟件的INSTALL和README 文件,一般都會有說明。
2) 卸載:
通常軟件的開發(fā)者很少考慮到如何卸載自己的軟件,而tar又僅是完成打包的工作,所以
并沒有提供良好的卸載方法。一般都提供 make uninstall 來卸載軟件的。
說明:閱讀附帶的INSTALL文件、README 文件是很重要的,大部分軟件的安裝信息都是從這里得到的。
4. 開始安裝
1)安裝libxml2-2.5.3
這是一個提供XML解析的類庫,在安裝subversion之前必須安裝。 tar -zxf libxml2-2.5.3.tar.gz cd libxml2-2.5.3 ./configure make make install make clean 2)安裝 Neon library 0.24.7 Neon庫允許SVN客戶端在Internet上使用基于WebDAV 的協(xié)議和遠程知識庫交互。 tar -zxf neon-0.24.7.tar.gz cd neon-0.24.7 ./configure make make install make clean 3)安裝Berkeley DB 4.3.28 當前版本Subversion支持兩種格式數(shù)據(jù)庫,一種是FSFS,另外一種是BDB( Berkeley Database)。BDB是一個輕量級的關系數(shù)據(jù)庫,可以作為一個輕巧的內(nèi)置數(shù)據(jù)庫,在很多開源項目下有很多應用,比如CVSTrac。FSFS格式主要的特點是可以支持Subversion的數(shù)據(jù)庫和Subversion服務器可以在不同的物理機器上,可以通過網(wǎng)絡共享(不知道是否支持NFS?),能很好的工作在MS Win98上,并且速度更快,但是由于FSFS是一種新的格式,穩(wěn)定性可能沒有BDB好。 比較郁悶的是我把Berkeley DB安裝完成后,安裝SVN的時候竟然檢測不到,只有用FSFS格式的數(shù)據(jù)庫了。 tar -zxf db-4.3.28.NC.tar.gz cd docs ../dist/configure make make install make clean 4)安裝Apache 2.0
tar -zxf httpd-2.0.54.tar.gz
./configure --enable-dav --enable-so --enable-maintainer-mode
make
make install
make clean
注意:configure后面參數(shù)--enable-dav 表示構建mod-dav,--enable-so表示開啟共享模塊的支持也就是mod_dav_svn模塊,--enable-maintainer-mode表示啟用調(diào)試信息
5)安裝Subversion
tar -zxf subversion-1.2.0.tar.gz
./configure --with-apxs=/usr/local/apache2/bin/apxs
make
make install
make clean
注意:如果Apache未按照默認路徑安裝或出現(xiàn)跳過構建mod_dav_svn的警告信息,就需要在./configure 加上參數(shù) --with-apxs=/usr/local/apache2/bin/apxs來構建mod_dav_svn并和Apache關聯(lián)起來. |
5. 創(chuàng)建文件庫
Subversion 所提供的 svnadmin 工具, 有個專門處理這件事的子命令. 要建立一個新的檔案庫, 只要執(zhí)行:
$ svnadmin create /usr/svn/repos/test
這樣就在“/usr/svn/repos”目錄下創(chuàng)建了一個test檔案庫,其中檔案庫的路徑為“/usr/svn/repos/test”
注意:svnadmin工具的默認路徑為“/usr/local/bin/svnadmin”
在你執(zhí)行 svnadmin create 命令之后, 這個目錄中就會有全新的 Subversion 檔案庫. 讓我們看一下在這個目錄里產(chǎn)生了什么東西.
$ ls /usr/svn/repos/test
dav/ db/ format hooks/ locks/ README.txt
除了 README.txt 與 format 檔以外, 檔案庫是由一群子目錄組成. 就像 Subversion 其它部份的設計一樣, 模塊化是很重要的原則, 而且階層式組織要比雜亂無章好. 以下是新的檔案庫目錄中, 各個項目的簡單敘述:
dav
提供給 Apache 與 mod_dav_svn 使用的目錄, 讓它們儲存內(nèi)部數(shù)據(jù).
db
主要的 Berkeley DB 環(huán)境, 里面都是儲存 Subversion 檔案系統(tǒng) (就是你置于版本控制的全部數(shù)據(jù)所在) 的數(shù)據(jù)庫表格.
format
一個內(nèi)容為一個整數(shù)的檔案, 表示檔案庫配置的版本號碼.
hooks
一個放置 hook 腳本文件模板的目錄 (如果你有安裝的話, 還有腳本檔本身的檔案).
locks
用來放置 Subversion 檔案庫鎖定數(shù)據(jù)的目錄, 用來追蹤存取檔案庫的客戶端.
README.txt
這個檔案只是用來告知使用者, 他們在看的是 Subversion 的檔案庫.
6. Apache配置
SVN可以同過兩種方式提供客戶端對檔案庫的訪問。
采用Apache HTTP 服務器 (httpd)。使用WebDAV/deltaV 通訊協(xié)議與客戶端交互, 這個通訊協(xié)議 (它是 HTTP 1.1 的擴充; 請參照 http://www.webdav.org/) 采用廣為使用的 HTTP 通訊協(xié)議。
采用SVN自帶的svnserve服務器。這個程序要比 Apache 更輕便, 而且更容易設定,它會與 Subversion 客戶端透過 TCP/IP 聯(lián)機以自訂的通訊協(xié)議溝通。
我們采用了Apache服務器的方式,配置的具體步驟如下:
1).Apache需要加載模塊
為了使客戶端能夠通過Apache來訪問SVN檔案庫,Apache需要加載一個特殊的模塊mod_dav_svn。如果您的Apache是按照與預設目錄安裝的,mod_dav_svn 模塊應該會安裝在 Apache 安裝位置 (默認路徑是 /usr/local/apache2) 的 modules 子目錄內(nèi)。同時在Apache的配置文件httpd.conf(默認路徑為/usr/local/apache2/conf)中已經(jīng)使用LoadModule指令加載了該模塊(這是安裝過程中自動添加)。LoadModule 指令的語法很簡單, 就是將一個具名模塊對映到共享鏈接庫在磁盤上的位置:
LoadModule dav_svn_module modules/mod_dav_svn.so
注意這個指令必須出現(xiàn)在其它的 Subversion 相關指令之前。
2).配置匿名訪問
使客戶端能夠通過Apache訪問資源庫還需要告訴Apache資源庫的位置,這需要我們在htppd.conf中加入Location指令來配置。
<Location /test>
DAV svn
SVNPath /usr/svn/repos/test
</Location>=
其中DAV表示處理方式,SVNPath是SVN檔案庫的位置。
這樣你就可以使用http://servername/test來訪問檔案庫。
如果你計劃支持多個 Subversion 檔案庫, 而它們都有著共同的本地磁盤路徑, 你可以使用另一種指令 SVNParentPath, 指示它們共同的父路徑。如果我們在路徑 /usr/svn 之下建立多個 Subversion 檔案庫, 并以http://servername/svn/repos1,http://servername/svn/repos2 等等的 URL 供人存取, 你可以使用下面中的 httpd.conf 設定語法:
<Location /svn>
DAV svn
SVNParentPath /usr/svn/repos
</Location>
使用前述的語法, Apache 會將所有路徑以 /svn/ 開始的 URL 都交給 Subversion DAV 供應模塊處理, 它會假設任何以 SVNParentPath 指令指定的目錄都是 Subversion 檔案庫。 不像SVNPath, 這個相當便利的語法可以讓你在建立新的檔案庫時, 仍舊不必重跑 Apache。 這時我們可以同過http://servername/svn/test來訪問我們剛才的檔案庫,同樣如果/usr/snv/repos/目錄中還有檔案庫cvsrepos,我們可以通過http://servername/svn/cvsrepos來訪問,并不需要重新配置。
3).配置用戶驗證
我們使用最簡單的是基本驗證機制,它只會使用使用者名稱與密碼, 用以確認使用者是他所聲稱的身份。Apache 提供了htpasswd 工具程序,來管理接受的使用者名稱與密碼,也就是你想要授與存取 Subversion 檔案庫權限的使用者。 讓我們授與 Sally 與 Harry 送交存取的權限。 首先, 我們必須把它們加入到密碼檔案。
$ ### 第一次: 以 -c 建立檔案
$ htpasswd -c /etc/svn-auth-file harry
New password: *****
Re-type new password: *****
Adding password for user harry
$ htpasswd /etc/svn-auth-file sally
New password: *******
Re-type new password: *******
Adding password for user sally
$
接著, 你需要在 httpd.conf 的 Location 區(qū)塊中新增幾個指令, 告訴 Apache 如何處理你的新密碼文件。
AuthType 指令指定應使用何種認證系統(tǒng)。 在目前的狀況中, 我們想要指定 Basic 認證系統(tǒng)。
AuthName 是一個任意的名稱, 讓你用來指定認證領域 (authentication domain)。 大多數(shù)的瀏覽器在向使用者詢問使用者代號與密碼時, 會將這個名稱顯示在彈出的對話框中。
AuthUserFile 指令指定你以 htpasswd 產(chǎn)生的密碼文件
Require 指令指定只有通過驗證的用戶才能訪問。
在新增這四個指令后, 你的 <Location> 區(qū)塊看起來應該像這樣:
<Location /svn>
DAV svn
SVNParentPath /usr/local/svn
AuthType Basic
AuthName "Subversion repository"
AuthUserFile /etc/svn-auth-file
Require valid-user
</Location>
現(xiàn)在如果你重新啟動 Apache, 任何需要認證的 Subversion 動作都會從 Subversion 客戶端取得使用者代號與密碼, 這可能是使用先前置于快取的值, 或是向使用者詢問。
cvs2svn工具是用來把CVS檔案庫轉換為SVN檔案庫的。
1).安裝 下載:Python 2.0 地址:http://www.python.org/ 說明:執(zhí)行csv2svn中Python 腳本所需要的環(huán)境 安裝: cd /usr/software tar -zxf Python-2.4.1.tgz cd Python-2.4.1 ./configure make make install make clean 下載:RCS
地址:http://www.cs.purdue.edu/homes/trinkle/RCS/ 說明:用來讀CVS檔案庫 安裝: cd /usr/software tar -zxf rcs-5.7.tar cd rcs-5.7 ./configure make make install make clean 注意:make操作只能由非root用戶執(zhí)行 下載:GNU 工具
地址:http://www.gnu.org/software/coreutils/ 說明:可能FreeBSD系統(tǒng)已經(jīng)有了 安裝: cd /usr/software tar -zxf coreutils-5.2.1.tar.gz cd coreutils-5.2.1 ./configure make make install make clean 下載:cvs2svn
地址:http://cvs2svn.tigris.org/ 說明: 安裝: cd /usr/software tar -zxf cvs2svn-1.2.1.tar.gz cd cvs2svn-1.2.1 make install make clean 2).使用cvs2svn把CVS檔案庫轉換為SVN檔案庫 使用cvs2svn工具根據(jù)需要可以幾種轉換方式供選擇的。默認的方式為完全轉換,我們就是采用這樣方式的。 進入csv2svn所在的目錄: cd /usr/software/cvs2svn-1.2.1 ./cvs2svn --svnadmin=/usr/local/bin/svnadmin --encoding=gb2312 --fs-type=fsfs -s /usr/svn/repos/CVSRepos_JSP /usr/software/CVSRepo_JSP 參數(shù)說明: --svnadmin svndadmin的路徑,創(chuàng)建SVN檔案庫時需要 --encoding 所采用的編碼,默認為ascii --fs-type 檔案庫的類型fsfs或bdb -s SVN檔案庫的位置 最后一個是要轉換CVS檔案庫的位置 |
注:本文中一些SVN介紹性文字等是轉自其它網(wǎng)站的。