java learnging

          一塊探討JAVA的奧妙吧
          posts - 34, comments - 27, trackbacks - 0, articles - 22

          在FreeBSD上安裝SVN(Subversion)

          Posted on 2005-06-11 15:37 bigseal 閱讀(4857) 評(píng)論(0)  編輯  收藏
          操作系統(tǒng):FreeBSD 5.3
          這是第一次在非Windows系統(tǒng)安裝軟件,對(duì)于系統(tǒng)中很多基本的東西都不熟悉,基本上都是看著配置文檔來的,很多東西都是需要用的時(shí)候才找的,因此也花了不少時(shí)間。比較欣慰的時(shí)這些軟件的文檔的都很詳細(xì),使一個(gè)初次接觸者也能夠按照文檔的說明一步一步完成安裝。
          目錄:
          1)  SVN簡(jiǎn)介
          2)準(zhǔn)備工作
          3)安裝使用tar打包的應(yīng)用軟件
          4)開始安裝
          5)創(chuàng)建文件庫(kù)
          6)Apache配置
          7)把CVS檔案庫(kù)轉(zhuǎn)換為SVN檔案庫(kù)

          1.   SVN簡(jiǎn)介
                
          現(xiàn)在開發(fā)的源碼,版本等管理一般都是CVS 。Subversion(SVN, http://subversion.tigris.org/)項(xiàng)目開始于2000年2月,作者之一是著名的 Open Source Development with CVS 作者Karl Fogel,也是CVS的開發(fā)者。
          Subversion開始由CollabNet(
          http://www.collab.net) 所有,但是它確實(shí)是一個(gè)開源的軟件,遵從bsd樣式的許可證。CollabNet只是給幾個(gè)全職開發(fā)者發(fā)工資,并享有代碼的版權(quán),但是這個(gè)版權(quán)是 Apache/BSD-style的許可證,也就是說,你可以自由下載,修改,發(fā)布Subversion,而不需要CollabNet或其他人的許可。
          Subversion意為更好的CVS,所以它除了包括了大多數(shù)CVS的特點(diǎn),還有一些新鮮的東西:
          Repositories 可以用內(nèi)建的BerkeleyDB 或者普通文件實(shí)現(xiàn)。
          目錄在Subversion中和文件一樣是versionable的對(duì)象,還有文件重命名等。Subversion還允許用戶追蹤文件和目錄的任意屬性信息,包括元信息(META-DATA)。甚至包括符號(hào)連接。在Subversion中,容易移動(dòng),復(fù)制和重命名。
          高效的網(wǎng)絡(luò)利用率。Subversion 可以用apache的基于HTTP的 WebDAV/DeltaV協(xié)議進(jìn)行通訊。Apache服務(wù)器提供repository的服務(wù)。
          二進(jìn)制文件處理的增強(qiáng)。
          本地化消息Localized messages
          Subversion根據(jù)本地設(shè)置(locale settings) 用gettext()顯示翻譯過的錯(cuò)誤,信息,幫助等。
          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
          文檔:

          更多的信息還是到主頁(yè)
          http://subversion.tigris.org/上去看吧。
          相關(guān)網(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.  
          準(zhǔn)備工作 
               
          下載:subversion-1.2.0.tar.gz
          地址:
          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打包的應(yīng)用軟件
          1) 安裝:
          整個(gè)安裝過程可以分為以下幾步:
          ? 取得應(yīng)用軟件:通過下載、購(gòu)買光盤的方法獲得;
          ? 解壓縮文件:一般tar包,都會(huì)再做一次壓縮,如gzip、bz2 等,所以你需要先解壓。如
          果是最常見的gz格式,則可以執(zhí)行:“tar -xvzf 軟件包名”,就可以一步完成解壓與解
          包工作。如果不是,則先用解壓軟件,再執(zhí)行“tar -xvf 解壓后的tar包”進(jìn)行解包;
          ? 閱讀附帶的INSTALL文件、README 文件;
          ? 執(zhí)行“./configure”命令為編譯做好準(zhǔn)備;
          ? 執(zhí)行“make”命令進(jìn)行軟件編譯;
          ? 執(zhí)行“make install”完成安裝;
          ? 執(zhí)行“make clean”刪除安裝時(shí)產(chǎn)生的臨時(shí)文件。
          好了,到此大功告成。我們就可以運(yùn)行應(yīng)用程序了。但這時(shí),有的讀者就會(huì)問,我怎么執(zhí)
          行呢?這也是一個(gè)Linux特色的問題。其實(shí),一般來說,Linux的應(yīng)用軟件的可執(zhí)行文件
          會(huì)存放在/usr/local/bin目錄下!不過這并不是“放四海皆準(zhǔn)”的真理,最可靠的還是看這
          個(gè)軟件的INSTALL和README 文件,一般都會(huì)有說明。
          2) 卸載:
          通常軟件的開發(fā)者很少考慮到如何卸載自己的軟件,而tar又僅是完成打包的工作,所以
          并沒有提供良好的卸載方法。一般都提供 make uninstall 來卸載軟件的。

          說明:閱讀附帶的INSTALL文件、README 文件是很重要的,大部分軟件的安裝信息都是從這里得到的。

          4.   開始安裝
          1)安裝libxml2-2.5.3

          這是一個(gè)提供XML解析的類庫(kù),在安裝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庫(kù)允許SVN客戶端在Internet上使用基于WebDAV 的協(xié)議和遠(yuǎn)程知識(shí)庫(kù)交互。
          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

          當(dāng)前版本Subversion支持兩種格式數(shù)據(jù)庫(kù),一種是FSFS,另外一種是BDB( Berkeley Database)。BDB是一個(gè)輕量級(jí)的關(guān)系數(shù)據(jù)庫(kù),可以作為一個(gè)輕巧的內(nèi)置數(shù)據(jù)庫(kù),在很多開源項(xiàng)目下有很多應(yīng)用,比如CVSTrac。FSFS格式主要的特點(diǎn)是可以支持Subversion的數(shù)據(jù)庫(kù)和Subversion服務(wù)器可以在不同的物理機(jī)器上,可以通過網(wǎng)絡(luò)共享(不知道是否支持NFS?),能很好的工作在MS Win98上,并且速度更快,但是由于FSFS是一種新的格式,穩(wěn)定性可能沒有BDB好。
          比較郁悶的是我把Berkeley DB安裝完成后,安裝SVN的時(shí)候竟然檢測(cè)不到,只有用FSFS格式的數(shù)據(jù)庫(kù)了。
          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 表示構(gòu)建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未按照默認(rèn)路徑安裝或出現(xiàn)跳過構(gòu)建mod_dav_svn的警告信息,就需要在./configure 加上參數(shù) --with-apxs=/usr/local/apache2/bin/apxs來構(gòu)建mod_dav_svn并和Apache關(guān)聯(lián)起來.

          5.    創(chuàng)建文件庫(kù)

          Subversion 所提供的 svnadmin 工具, 有個(gè)專門處理這件事的子命令. 要建立一個(gè)新的檔案庫(kù), 只要執(zhí)行:

          $ svnadmin create /usr/svn/repos/test

          這樣就在“/usr/svn/repos”目錄下創(chuàng)建了一個(gè)test檔案庫(kù),其中檔案庫(kù)的路徑為“/usr/svn/repos/test”

          注意:svnadmin工具的默認(rèn)路徑為“/usr/local/bin/svnadmin”

          在你執(zhí)行 svnadmin create 命令之后, 這個(gè)目錄中就會(huì)有全新的 Subversion 檔案庫(kù). 讓我們看一下在這個(gè)目錄里產(chǎn)生了什么東西.

          $ ls /usr/svn/repos/test
          dav/  db/  format  hooks/  locks/  README.txt
          除了 README.txt 與 format 檔以外, 檔案庫(kù)是由一群子目錄組成. 就像 Subversion 其它部份的設(shè)計(jì)一樣, 模塊化是很重要的原則, 而且階層式組織要比雜亂無章好. 以下是新的檔案庫(kù)目錄中, 各個(gè)項(xiàng)目的簡(jiǎn)單敘述:

          dav

          提供給 Apache 與 mod_dav_svn 使用的目錄, 讓它們儲(chǔ)存內(nèi)部數(shù)據(jù).

          db

          主要的 Berkeley DB 環(huán)境, 里面都是儲(chǔ)存 Subversion 檔案系統(tǒng) (就是你置于版本控制的全部數(shù)據(jù)所在) 的數(shù)據(jù)庫(kù)表格.

          format

          一個(gè)內(nèi)容為一個(gè)整數(shù)的檔案, 表示檔案庫(kù)配置的版本號(hào)碼.

          hooks

          一個(gè)放置 hook 腳本文件模板的目錄 (如果你有安裝的話, 還有腳本檔本身的檔案).

          locks

          用來放置 Subversion 檔案庫(kù)鎖定數(shù)據(jù)的目錄, 用來追蹤存取檔案庫(kù)的客戶端.

          README.txt

          這個(gè)檔案只是用來告知使用者, 他們?cè)诳吹氖?Subversion 的檔案庫(kù).


          6.    Apache配置

          SVN可以同過兩種方式提供客戶端對(duì)檔案庫(kù)的訪問。

              采用Apache HTTP 服務(wù)器 (httpd)。使用WebDAV/deltaV 通訊協(xié)議與客戶端交互, 這個(gè)通訊協(xié)議 (它是 HTTP 1.1 的擴(kuò)充; 請(qǐng)參照 http://www.webdav.org/) 采用廣為使用的 HTTP 通訊協(xié)議。

              采用SVN自帶的svnserve服務(wù)器。這個(gè)程序要比 Apache 更輕便, 而且更容易設(shè)定,它會(huì)與 Subversion 客戶端透過 TCP/IP 聯(lián)機(jī)以自訂的通訊協(xié)議溝通。

              我們采用了Apache服務(wù)器的方式,配置的具體步驟如下:
             
              1).Apache需要加載模塊
              為了使客戶端能夠通過Apache來訪問SVN檔案庫(kù),Apache需要加載一個(gè)特殊的模塊mod_dav_svn。如果您的Apache是按照與預(yù)設(shè)目錄安裝的,mod_dav_svn 模塊應(yīng)該會(huì)安裝在 Apache 安裝位置 (默認(rèn)路徑是 /usr/local/apache2) 的 modules 子目錄內(nèi)。同時(shí)在Apache的配置文件httpd.conf(默認(rèn)路徑為/usr/local/apache2/conf)中已經(jīng)使用LoadModule指令加載了該模塊(這是安裝過程中自動(dòng)添加)。LoadModule 指令的語法很簡(jiǎn)單, 就是將一個(gè)具名模塊對(duì)映到共享鏈接庫(kù)在磁盤上的位置:
          LoadModule dav_svn_module     modules/mod_dav_svn.so
          注意這個(gè)指令必須出現(xiàn)在其它的 Subversion 相關(guān)指令之前。

              2).配置匿名訪問
              使客戶端能夠通過Apache訪問資源庫(kù)還需要告訴Apache資源庫(kù)的位置,這需要我們?cè)趆tppd.conf中加入Location指令來配置。
          <Location /test>
            DAV svn
            SVNPath /usr/svn/repos/test
          </Location>=
          其中DAV表示處理方式,SVNPath是SVN檔案庫(kù)的位置。
          這樣你就可以使用
          http://servername/test來訪問檔案庫(kù)。

              如果你計(jì)劃支持多個(gè) Subversion 檔案庫(kù), 而它們都有著共同的本地磁盤路徑, 你可以使用另一種指令 SVNParentPath, 指示它們共同的父路徑。如果我們?cè)诼窂?/usr/svn 之下建立多個(gè) Subversion 檔案庫(kù), 并以http://servername/svn/repos1http://servername/svn/repos2 等等的 URL 供人存取, 你可以使用下面中的 httpd.conf 設(shè)定語法:

          <Location /svn>
            DAV svn
            SVNParentPath /usr/svn/repos
          </Location>
          使用前述的語法, Apache 會(huì)將所有路徑以 /svn/ 開始的 URL 都交給 Subversion DAV 供應(yīng)模塊處理, 它會(huì)假設(shè)任何以 SVNParentPath 指令指定的目錄都是 Subversion 檔案庫(kù)。 不像SVNPath, 這個(gè)相當(dāng)便利的語法可以讓你在建立新的檔案庫(kù)時(shí), 仍舊不必重跑 Apache。 這時(shí)我們可以同過
          http://servername/svn/test來訪問我們剛才的檔案庫(kù),同樣如果/usr/snv/repos/目錄中還有檔案庫(kù)cvsrepos,我們可以通過http://servername/svn/cvsrepos來訪問,并不需要重新配置。

              3).配置用戶驗(yàn)證
              我們使用最簡(jiǎn)單的是基本驗(yàn)證機(jī)制,它只會(huì)使用使用者名稱與密碼, 用以確認(rèn)使用者是他所聲稱的身份。Apache 提供了htpasswd 工具程序,來管理接受的使用者名稱與密碼,也就是你想要授與存取 Subversion 檔案庫(kù)權(quán)限的使用者。 讓我們授與 Sally 與 Harry 送交存取的權(quán)限。 首先, 我們必須把它們加入到密碼檔案。

          $ ### 第一次: 以 -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ū)塊中新增幾個(gè)指令, 告訴 Apache 如何處理你的新密碼文件。
          AuthType 指令指定應(yīng)使用何種認(rèn)證系統(tǒng)。 在目前的狀況中, 我們想要指定 Basic 認(rèn)證系統(tǒng)。
          AuthName 是一個(gè)任意的名稱, 讓你用來指定認(rèn)證領(lǐng)域 (authentication domain)。 大多數(shù)的瀏覽器在向使用者詢問使用者代號(hào)與密碼時(shí), 會(huì)將這個(gè)名稱顯示在彈出的對(duì)話框中。
          AuthUserFile 指令指定你以 htpasswd 產(chǎn)生的密碼文件
          Require 指令指定只有通過驗(yàn)證的用戶才能訪問。

          在新增這四個(gè)指令后, 你的 <Location> 區(qū)塊看起來應(yīng)該像這樣:

          <Location /svn>
            DAV svn
            SVNParentPath /usr/local/svn
            AuthType Basic
            AuthName "Subversion repository"
            AuthUserFile /etc/svn-auth-file
            Require valid-user
          </Location>
          現(xiàn)在如果你重新啟動(dòng) Apache, 任何需要認(rèn)證的 Subversion 動(dòng)作都會(huì)從 Subversion 客戶端取得使用者代號(hào)與密碼, 這可能是使用先前置于快取的值, 或是向使用者詢問。

          7.    把CVS檔案庫(kù)轉(zhuǎn)換為SVN檔案庫(kù)
          cvs2svn工具是用來把CVS檔案庫(kù)轉(zhuǎn)換為SVN檔案庫(kù)的。

          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檔案庫(kù)
          安裝:
                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檔案庫(kù)轉(zhuǎn)換為SVN檔案庫(kù)
            使用cvs2svn工具根據(jù)需要可以幾種轉(zhuǎn)換方式供選擇的。默認(rèn)的方式為完全轉(zhuǎn)換,我們就是采用這樣方式的。
            進(jìn)入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檔案庫(kù)時(shí)需要
             --encoding 所采用的編碼,默認(rèn)為ascii
             --fs-type  檔案庫(kù)的類型fsfs或bdb
             -s         SVN檔案庫(kù)的位置
             最后一個(gè)是要轉(zhuǎn)換CVS檔案庫(kù)的位置

          注:本文中一些SVN介紹性文字等是轉(zhuǎn)自其它網(wǎng)站的。

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 唐河县| 栾川县| 腾冲县| 怀仁县| 巴中市| 柯坪县| 寿阳县| 益阳市| 融水| 永登县| 台湾省| 留坝县| 永胜县| 定陶县| 四子王旗| 库伦旗| 兴文县| 遂昌县| 法库县| 雷山县| 神池县| 宁陕县| 南和县| 都匀市| 阿图什市| 浦城县| 湖南省| 大化| 鄂尔多斯市| 剑川县| 定西市| 闻喜县| 彩票| 沿河| 赤城县| 都匀市| 京山县| 西丰县| 朝阳区| 奉节县| 句容市|