jojo's blog--快樂憂傷都與你同在
          為夢想而來,為自由而生。 性情若水,風(fēng)起水興,風(fēng)息水止,故時而激蕩,時又清平……
          posts - 11,  comments - 30,  trackbacks - 0
          Ubuntu 己是近來 Linux 最熱門的 Distribution,它的3D效果真不是蓋的,要不是ATI不爭器,家裡的伺服器(ATI Radeon 9000)早就把它替換掉了,正好最近要將 CVS 轉(zhuǎn)換為 SVN 系統(tǒng),就拿它來練功吧!

          雖然一開始安裝的是 Ubuntu Desktop 版本(目前最新是 9.10 版),但是在 Ubuntu 下安裝伺服器套件是非常簡單的一件事,只要確定你的電腦可以連上網(wǎng)路,確認(rèn)你的 source.list 是否正確?(建議您安裝 Lazybuntu 懶人包),按下面步驟即可完成安裝:
          (參考文件:在 Ubuntu 中使用 Apache2 管理 Subversion 版本控制系統(tǒng))

          底下以文字介面的安裝為主,若您使用 GUI 介面的 Synaptic 套件管理程式也可以。
          1. 安裝 Apache2 和 Subversion 模組:
          $sudo apt-get install apache2 apache2-common apache2-utils apache2-doc libapache-svn subversion
          你也可以選擇安裝 subcommander(Ubuntu 底下的 SVN GUI Client)。

          2. 建立 Subversion 儲存庫(Repository)
          a. 建立 SVN Root 目錄:
          $sudo mkdir -p /var/local/svnroot
          b. 初始化儲存庫:
          $sudo svnadmin create /var/local/svnroot
          c. 授予 Apache(www-data) 使用者存取的權(quán)限:
          $sudo chown -R www-data:www-data /var/local/svnroot

          3. 修改 Apache2 的設(shè)定:
          $sudo gedit /etc/apache2/mods-available/dav_svn.conf
          修改 "Location" 區(qū)段,內(nèi)容對應(yīng)如下:
          <Location>
          DAV svn
          SVNPath /var/local/svnroot
          AuthType Basic
          AuthName "Subversion repository"
          AuthUserFile /etc/subversion/passwd
          <LimitExcept GET PROPFIND OPTIONS REPORT>
          Require valid-user
          </LimitExcept>
          </Location>

          Location 後面所接的是在 URL 所要打的網(wǎng)址,以本例而言,透過瀏覽器要輸入:http://localhost/svnroot
          SVNPath 為 Subversion 的檔案庫路徑,如果將 SVNPath 改為 SVNParentPath,則泛指在 SVNParentPath 下的所有目錄都會被視為是 Subversion 檔案庫。
          AuthUserFile 則是指存放使用者名稱及密碼的檔案路徑。

          4. 創(chuàng)建使用者驗証資訊:
          $sudo htpasswd2 [-c] /etc/subversion/passwd username
          依照指示輸入使用者密碼即可完成驗証。
          -c:表示是否要新建檔案,舊有檔案內(nèi)容會完全刪除,適用於第一次建立 passwd 檔時。

          5. 重新啟動 Apache2:
          $sudo /etc/init.d/apache2 restart

          6. 打開瀏覽器,訪問http://localhost/svnroot, 就可以看到Subversion庫的網(wǎng)頁。(當(dāng)然,現(xiàn)在還沒有任何東東,下面我們要導(dǎo)入一些文件)

          7. 匯入(inmport) /home/username/workspace中的文件到http://localhost/svnroot 下的workspace目錄(原始專案目錄);"操作注釋"的內(nèi)容可隨需求添加,username 為專案使用者名稱。
          $ svn import -m "操作注釋" /home/username/workspace http://localhost/svnroot/workspace

          8. 取出(checkout)剛才匯入的專案:
          checkout http://localhost/svnroot/workspace 中的文件到/home/username/test
          $svn checkout http://localhost/svnroot/workspace /home/username/test
          注意:匯出的目錄名稱不可與匯入的目錄名稱相同(最好是將原始的專案目錄(workspace)與匯出的工作目錄(sandbox)區(qū)分開來)。

          8. 若您需要 Windows 下的 GUI 介面工具,可以下載安裝 TortoiseSVN 工具。(請一併下載並安裝語言套件Language Pack)
          安裝完成後請依下步驟設(shè)定語言介面:

          a. 開啟 TortoiseSVN 設(shè)定頁面(在入一資料夾上按滑鼠右鍵)
          b. 選擇語言版本
          c. 中文化後的選單介面



          在安裝好了 Subversion Server後,最重要的莫過於對於使用者權(quán)限的控管,底下將介紹如何針對不同的使用者設(shè)置不同的存取權(quán)限:
          9. 修改 dav 配置檔 /etc/apache2/mods-available/dav_svn.conf:
          <Location /svntest>
              DAV svn
              SVNPath /var/local/svntest
              AuthType Basic
              AuthName "Subversion test repository"
              AuthUserFile "/var/local/svntest/conf/passwd"
              AuthzSVNAccessFile "/var/local/svntest/conf/authz"
              Require valid-user
              SVNAutoversioning on
          </Location>

          10. 創(chuàng)建 SVN 儲存庫 svntest:
              sudo svnadmin create /var/local/svntest
              sudo find /var/local/svntest -type f -exec chmod 660 {} ";
              sudo find /var/local/svntest -type d -exec chmod 2770 {} ";
              sudo chown -R root.www-data /var/local/svntest

          11. 修改儲存庫設(shè)定檔 /var/local/svntest/conf/svnserver.conf:
          [general]
          anon-access = none
          auth-access = write
          password-db = passwd
          authz-db = authz

          12. 創(chuàng)建使用者資料庫:
              cd /var/local/svntest/conf
              sudo htpasswd [-c] passwd user1_id
              然後依照指示輸入 user1_id 的密碼
              若有多個使用者,請重覆上述指令(請移除 [-c] 選項)

          13. 編輯儲存庫存取權(quán)限 /var/local/svntest/conf/authz:
              [groups]
              #group_name = user1,user2,user3...
              software = aaa,bbb,ccc
              hardware = ddd,eee

              #[repository:PATH]
              [/]
              # '@' 符號用來表示群組名稱
              @software = rw
              ddd = rw
              * = r

              [svntest:/sch]
              @hardware = rw
              @software = r
              * = r

          14. 重新啟動 apache2:
              sudo /etc/init.d/apache2 restart

          posted on 2009-05-08 15:31 Blog of JoJo 閱讀(703) 評論(2)  編輯  收藏 所屬分類: 每日一記

          FeedBack:
          # re: 每日一學(xué) 2009/05/08 怎樣安裝配置 subversion server + apache
          2009-05-08 15:49 | Blog of JoJo
          =======Window 下安裝Subversion Server============
          http://blog.roodo.com/rocksaying/archives/2385729.html

          Subversion (簡稱 SVN) 是繼 CVS 之後新興的版本控制工具 (version control system) 。對於版本控制工具的諸多概念與名詞,我並不打算說明,因為《Version Control with Subversion》已經(jīng)說得很仔細(xì)。以我個人的經(jīng)驗,任何接觸過版本控制工具的 programmer ,都會上癮,深陷其中、不可自拔。誇張地形容, Programmer 可以沒有 IDE 工具,但不能沒有版本控制工具。

          如我這類常常接觸 open source software 的 Programmer ,多數(shù)皆熟悉 CVS/SVN 這類版本控制工具。我原本預(yù)期國內(nèi)資訊軟體公司會更普遍地使用版本控制工具,但匪夷所思的是國內(nèi)資訊軟體公司中的資訊工程師似乎對其非常陌生。例如在我過去任職的一間通過 CMMI level-2 認(rèn)證的資訊軟體公司之中,工程師竟然沒有使用版本控制工具的習(xí)慣。我這自學(xué)起家的人,完全無法理解國內(nèi)的程設(shè)人才正規(guī)養(yǎng)成教育出了什麼問題?為什麼他們不用呢?所以本文預(yù)期作為 Subversion 的快速入手指南,使 programmer 可以在自己的桌面環(huán)境中安裝 Subversion ,並用它來維護(hù)為自己寫的小工具程式。透過這一過程,養(yǎng)成 programmer 使用版本控制工具的習(xí)慣。沒錯, Subversion 不是只用在專案軟體開發(fā)的大傢伙,就算是為了個人用途撰寫的小工具程式,它都能幫上不少忙。

          多年前,我在 GNU/Linux 和 FreeBSD 環(huán)境下把玩 BBS 程式碼時 (Firebird BBS, TIP) ,我就開始接觸 CVS 這個版本控制工具。當(dāng)我面對組成 BBS 的上百份 C 語言原始檔、上萬行程式碼時, CVS 是不可或缺的工具。沒有 CVS/SVN 這類版本控制工具,任何修改程式碼的動作都會增加 programmer 大腦記憶體的負(fù)擔(dān), programmer 將會浪費許多時間在搜尋與比對程式碼的工作之上。就算是撰寫個人使用的小程式,版本控制工具仍然帶給 programmer 許多便利之處。我為自己寫過的小工具不知凡幾,有些程式寫完後又過了好幾個月才會想到再修改。此時版本控制工具的提交 (commit) 記錄功能就能幫我喚起以往撰寫過程中的記憶。分支功能可以讓我無後顧之憂地為我的小工具添加新功能,確認(rèn)無誤後再合併回主幹。
          取得安裝套件

          安裝 Subversion server 其實是件很簡單的事,許多 GNU/Linux distribution 都已經(jīng)提供 Subversion package ,只要一個安裝指令就能完成安裝動作。雖然大多數(shù)使用者並不使用 GNU/Linux 作為桌面環(huán)境,而是使用 Microsoft Windows 2k/xp 作為家中的桌面環(huán)境。但在這桌面環(huán)境下安裝 Subversion 服務(wù)仍然是件非常簡單的事。例如本文內(nèi)容就是在 Microsoft Windows XP 平臺上進(jìn)行 Subversion server 的實際安裝工作。

          首先,請先到「Subversion」網(wǎng)站中取得 Subversion server 的安裝套件。在「下載頁面」中列出了多種平臺的可執(zhí)行安裝套件。 Windows 平臺使用者,請開啟 Subversion Win32 binaries 之頁面下載。撰寫本文時,下載的是 svn-win32-1.4.0.zip 。這個安裝套件就只是一個 Zip 壓縮包,裡面是一組包含 Subversion server 以及 client 的命令列工具,所以以下的操作過程, GNU/Linux 和 MS Windows 平臺皆適用。
          安裝與啟動 Subversion server

          取得 Subversion 安裝套件的壓縮包後,解開其中的檔案放置到你想放的目錄中。此例中放在 "C:\Program Files\svn-win32" 。工具皆在其 bin 目錄中,主要使用到三個工具。

          * svnserve
          Subversion Server 主程式。本文提到「啟動 Subversion server」,意思就是執(zhí)行 svnserve 此一程式。
          * svnadmin
          Subversion 專案管理工具。負(fù)責(zé)新增空白專案、刪除專案等動作。
          * svn
          Subversion 專案內(nèi)容存取工具。舉凡 checkout (提出專案內(nèi)容), commit (提交修改內(nèi)容), update, revert 等存取動作,皆使用此工具。

          設(shè)置 Subversion server 的方法很多,本文只說明最簡單的一種方式,就是單獨運(yùn)行 svnserve ,只要執(zhí)行 svnserve 時加上 "--daemon" 參數(shù)即可,這種方式適合做為個人用途。若要進(jìn)行 team work ,請參閱《Version Control with Subversion - Chapter 6. Server Configuration》進(jìn)行配置。另有一個常用的選擇性參數(shù) "--root" 可以指示 Subversion server 搜尋專案貯藏庫 (Repository) 的起點。 MS Windows 平臺使用者,可以建立 svnserve.exe 的捷徑,將 "--daemon" 和 "--root" 附加在「目標(biāo)欄位」,如圖「svnserve 捷徑設(shè)定」所示。日後需要使用 Subversion 時,便可直接點擊捷徑啟動 Subversion server 。作為個人用途,這種需要時再啟動的方式也就足夠了。如果你想在不登入桌面的情況下使用 Subversion 服務(wù),請參閱《Version Control with Subversion - Chapter 6. Server Configuration》,將 Subversion server 設(shè)定為系統(tǒng)服務(wù)。 GNU/Linux 可以選擇 inet daemon 和 apache server 兩種設(shè)置方式。而 Windows 平臺使用者,在 svn-win32 1.40 版之後,可以將 svnserve 設(shè)定為 Windows Service (系統(tǒng)服務(wù)) ,請參閱《TortoiseSVN Manual - Svnserve Based Server》。
          svnserve 捷徑設(shè)定
          圖1: svnserve 捷徑設(shè)定
          Subversion server 如何尋找專案貯藏庫 (Repository)

          Subversion 預(yù)設(shè)使用專屬的 URL 格式存取專案,其格式為 "svn://主機(jī)名稱/專案貯藏庫路徑/" 。本文只在個人桌面環(huán)境下使用,所以主機(jī)名稱為 localhost 。基本上,你可以將專案貯藏庫 (Repository) 放在任何目錄中。若啟動 Subversion server 時未指定 root 路徑 (未加 "--root") ,則 Subversion server 會將 URL 所指示的專案貯藏庫路徑視為完整的本地檔案路徑。例如 URL 若為 "svn://localhost/repository/project1/" ,則 Subversion server 會認(rèn)為專案貯藏庫放置在 "/repository/project1" (Windows 則為 "c:\repository\project1") 。 Windows 平臺的使用者在此需要注意一點,你只能選擇其中一個磁碟放置 Repository ,預(yù)設(shè)是 "C:" 。這是因為 Subversion 存取專案內(nèi)容的 URL 不能包括磁碟代號,因此若你將專案貯藏庫放在其他磁碟中,就必須在啟動 Subversion server 時加上 "--root" 參數(shù)指示磁碟代號,例如 "svnserve --daemon --root d:"。將各個專案的貯藏庫集中放置在一個目錄下,其實是個好主意,配合 "--root" 參數(shù)指定 root 路徑,可以少記很多字。例如將專案的貯藏庫都放置在 "d:\repository" 的目錄中,那麼啟動 Subversion server 的參數(shù)應(yīng)為 "--daemon --root d:\repository" ,專案貯藏庫的 URL 則簡化為 "svn://localhost/專案貯藏庫目錄/" 。
          實例測試

          所有專案的貯藏庫都存放在 "d:\repository" 目錄之中,故啟動 Subversion server 的命令列內(nèi)容為 "svnserve --daemon --root d:\repository" 。見圖「svnserve 捷徑設(shè)定」。

          現(xiàn)在要建立一個名為「hello world」的專案,故在 "d:\repository" 目錄中,建立一個名為 "hello_world" 的目錄以貯藏專案內(nèi)容。建立目錄後,再使用命令列工具 "svnadmin" ,配合參數(shù) "create" 於此目錄中建立空白專案貯藏庫 (Repository),見圖「Create a repository by svnadmin」。已安裝 TortoiseSVN 的使用者,可以用圖形化介面操作,見圖「Create a repository by TortoiseSVN」。 TortoiseSVN 建立專案時,會詢問使用者要以何種方式儲存專案,建議使用預(yù)設(shè)的「Berkeley database (BDB)」方式。
          Create a repository by svnadmin
          圖2: Create a repository by svnadmin
          Create a repository by TortoiseSVN - 1
          圖3: Create a repository by TortoiseSVN - 1
          Create a repository by TortoiseSVN - 2
          圖4: Create a repository by TortoiseSVN - 2

          Subversion 工具會自動在 "hello_world" 目錄中產(chǎn)生專案所需的初始檔案。其中最重要的是專案組態(tài)檔 "conf/svnserve.conf" 以及密碼檔 "conf/passwd" 。Subversion 提供多種靈活的使用者認(rèn)證方式,在此只用 Subversion 內(nèi)建的認(rèn)證方式。首先應(yīng)指定未認(rèn)證者 (annonymous) 及已認(rèn)證者 (authorized) 的專案存取權(quán)限。在此例中因為是個人用途,所以應(yīng)禁止未認(rèn)證者存取,設(shè)定 "anon-access = none" ;允許已認(rèn)證者讀取及寫入,設(shè)定 "auth-access = write" 。接著用最簡單的密碼檔方式設(shè)定認(rèn)證資訊,只需將使用者識別帳號和密碼寫入密碼檔 "conf/passwd" ,設(shè)定 "password-db = passwd" 。見圖「Set configuration of repository」與「Set password of repository」。注意, Subversion server 一經(jīng)啟動便成為一個網(wǎng)路服務(wù),任何人都可以透過網(wǎng)路連線取得電腦中的專案內(nèi)容,所以一定要用密碼管制。在個人用途或非公開的開發(fā)團(tuán)隊中,更應(yīng)為 Subversion server 設(shè)置網(wǎng)路防火牆,以阻絕外來使用者的存取企圖。
          Set configuration of repository
          圖5: Set configuration of repository
          Set password of repository
          圖6: Set password of repository

          設(shè)定組態(tài)及密碼後,專案貯藏庫的建立工作便算完成。接下來測試是否可以存取專案貯藏庫。請先啟動 Subversion server 。接下來,此例中將專案貯藏庫放置在 "d:\repository\hello_world" ,且啟動 Subversion server 時已經(jīng)指定 "d:\repository" 為 root 目錄,所以專案的 URL 應(yīng)該是 "svn://localhost/hello_world/" ,就以此 URL 向 Subversion server 提出 (checkout) hello_world 專案,提出的內(nèi)容,稱之為工作複本 (working copy) 。此例將工作複本放在 "d:\src\hello" 。見圖「Checkout a repository」。如果一切無誤,那麼 Subversion 就會在 "d:\src\hello" 之中產(chǎn)生工作複本了。
          Checkout a repository by svn
          圖7: Checkout a repository by svn
          Checkout a repository by TortoiseSVN
          圖8: Checkout a repository by TortoiseSVN
          軟體專案管理的起點

          軟體專案管理之中,充斥了太多理論,有心提高軟體生產(chǎn)品質(zhì)的使用者,不論是軟體開發(fā)團(tuán)隊的 PM ,亦或是習(xí)慣為自己使用而動手寫程式的 programmer ,也許都被那些軟體專案管理的理論弄得昏頭轉(zhuǎn)向。然而它們的起點,都是從版本控制著手的。透過這篇快速入門,從無到有的設(shè)置服務(wù)並建立空白專案,只要三個步驟就完成了,相信可以讓各位了解建立一個版本控制服務(wù)其實並不難。接下來,我預(yù)計還會再完成一篇使用文章,以編寫程式碼的過程為實例,說明 svn 和 TortoiseSVN 的實用功能。
          [+]Roodo Cliip  回復(fù)  更多評論
            
          # re: 每日一學(xué) 2009/05/08 怎樣安裝配置 subversion server + apache
          2009-05-08 17:32 | Blog of JoJo
          首先下載Subversion Windows版本的服務(wù)器軟件,下載地址如下:
          http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=91
          文件為svn-1.2.0-setup.exe,然后執(zhí)行安裝,安裝目錄如:d:\develop\subversion,然后設(shè)置一下系統(tǒng)的環(huán)境變量Path,將Subversion的bin路徑加入到系統(tǒng)的path中。

          創(chuàng)建Subersion庫:首先建立一個目錄存放Subversion的庫,在該庫中存放所以的Subversion項目,如D:\repository\subversion

          創(chuàng)建一個新的Subversion項目。
          只需執(zhí)行: svnadmin create D:\repository\subversion\projectnamePHPChina
          下面需要設(shè)置項目的用戶信息,只需打開Subversion項目conf目錄下passwd文件添加新的用戶即可,
          [users]
          admin = mypassword
          接下來是設(shè)置項目的一些其他信息,打開conf目錄下的svnserve.conf文件,然后進(jìn)行如下設(shè)置即可:
          [general]
          anon-access = read
          auth-access = write
          password-db = passwd
          realm = projectname

          啟動Subversion,這里可以通過命令行啟動,最好使用SVN Service Wrapper,你可以通過以下地址下載:http://dark.clansoft.dk/~mbn/svnservice,將SVNService.exe拷貝到Subversion安裝主目錄的bin目錄下即可,然后執(zhí)行以下命令,就可以將Subversion以windows服務(wù)方式啟動啦。
          SVNService -install -d -r D:\repository\subversion

          向Subversion中導(dǎo)入項目:現(xiàn)在我們需要將項目導(dǎo)入到Subversion的庫中,只需執(zhí)行一下命令: svn import d:\projectname svn://localhost/projectname -m “initial import” –username admin –password mypassword
          這樣項目就導(dǎo)入到subversion庫中啦。

          將項目導(dǎo)出:從Subversion項目中導(dǎo)出項目也很簡單,只需執(zhí)行以下操作:
          svn co svn://localhost/projectname –username admin –password mypassword  回復(fù)  更多評論
            

          <2009年5月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          常用鏈接

          留言簿(6)

          隨筆檔案

          文章分類

          文章檔案

          新聞分類

          新聞檔案

          相冊

          收藏夾

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 精河县| 滕州市| 虹口区| 大竹县| 琼海市| 临海市| 玉门市| 华安县| 桂林市| 佳木斯市| 隆昌县| 长春市| 宝应县| 东阿县| 荣昌县| 河池市| 临邑县| 通许县| 林甸县| 准格尔旗| 固安县| 秦安县| 寻甸| 双桥区| 宣恩县| 白城市| 海淀区| 高唐县| 山西省| 英德市| 繁峙县| 南岸区| 游戏| 丽水市| 万州区| 洛浦县| 柳林县| 崇仁县| 通山县| 荆门市| 宜州市|