• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            教父的告白
            一切都是紙老虎
            posts - 82,  comments - 7,  trackbacks - 0

            在ubuntu下安裝subversion服務(wù)器

            在ubuntu下安裝subversion服務(wù)器

            originally by: zengpuzhang <zengpuzhang@gmail.com>

            Use the subversion for apache2 on ubunut 5.10.

            * Install apache2

            sudo apt-get install apache2

            * It will download apache2 apache2-common apache2-mpm-worker apache2-utils

            * Install subversion

            sudo apt-get install subversion

            * Install libapache2-svn

            sudo apt-get install libapache2-svn

            在ubuntu下安裝subversion服務(wù)器

            originally by: zengpuzhang <zengpuzhang@gmail.com>

            Use the subversion for apache2 on ubunut 5.10.

            * Install apache2

            sudo apt-get install apache2

            * It will download apache2 apache2-common apache2-mpm-worker apache2-utils

            * Install subversion

            sudo apt-get install subversion

            * Install libapache2-svn

            sudo apt-get install libapache2-svn

            * Create subversion home foder and project
            (其中兩個最常用的位置之一是:/usr/local/svn)
            cd /home/
            sudo mkdir svn
            cd svn
            sudo svnadmin create project
            cd /home
            sudo chown www-data.www-data svn -R

            * Configure the apache and subversion

            cd /etc/apache2
            sudo mkdir authz
            cd authz
            sudo touch project.authz
            sudo touch dav_svn.passwd
            sudo vi /etc/apache2/mods-enabled/dav_svn.conf

            * Add the content like this:

            <Location /svn/project>
            DAV svn
            SVNPath /home/svn/project
            AuthzSVNAccessFile /etc/apache2/authz/project.authz
            AuthType Basic
            AuthName "Project Subversion Repository"
            AuthUserFile /etc/apache2/authz/dav_svn.passwd
            Require valid-user
            </Location>

            * Save the dav_svn.conf and edit the project.authz

            sudo vi /etc/apache2/authz/project.authz

            * Add the content like this

            [/]
            zengpuzhang=rw

            * Sava the project.authz and create a user name zengpuzhang

            sudo htpasswd2 -c /etc/apache2/authz/dav_svn.passwd zengpuzhang(第一個用戶的時候)
            (sudo htpasswd2 -m /etc/apache2/authz/dav_svn.passwd xxxx , 以后的用戶)


            * Input the user`s password

            * Restart the apache

            sudo /etc/init.d/apache2 restart

            * Done!

            subversion checked svn co

            $svn co http://192.168.10.163/svn/project
            認(rèn)證領(lǐng)域:<http://192.168.10.163:80> Project Subversion Repository
            用戶登錄名:zengpuzhang
            “zengpuzhang”的密碼:
            取出修訂版 0。

            subversion checked svn add

            $cd project
            $touch test
            $svn add test
            A test

            subversion checked svn ci

            $svn ci -m “just a test”
            新增 test
            傳輸文件數(shù)據(jù).
            提交后的修訂版為 1。
            * enjoy it .


            簡介

            如果您對 Subversion 還比較陌生,本節(jié)將給您一個關(guān)于 Subversion 的簡要介紹。

            Subversion 是一款開放源代碼的版本控制系統(tǒng)。使用 Subversion,您可以重新加載源代碼和文檔的歷史版本。Subversion 管理了源代碼在各個時期的版本。一個文件樹被集中放置在文件倉庫中。這個文件倉庫很像是一個傳統(tǒng)的文件服務(wù)器,只不過它能夠記住文件和目錄的每一次變化。

            [編輯]假設(shè)

            首先我們假設(shè)您能夠在 Ubuntu 中操作 Linux 的命令、編輯文件、啟動和停止服務(wù)。當(dāng)然,我們還認(rèn)為您的 Ubuntu 正在運(yùn)行中,您可以使用 sudo 操作并且您打算使用 Subversion。

            我們假設(shè)您可能需要使用所有可能的方法訪問 SVN 文件倉庫。同時我們也認(rèn)為您應(yīng)該已經(jīng)配置好了您的 /etc/apt/sources.list 文件。

            [編輯]本文涉及的范圍

            要通過 HTTP 協(xié)議訪問 SVN 文件倉庫,您需要安裝并配置好 Web 服務(wù)器。Apache 2 被證實可以很好的與 SVN 一起工作。關(guān)于 Apache 2 的安裝超出了本文的范圍,盡管如此,本文還是會涉及如何配置 Apache 2 使用 SVN。

            類似的,要通過 HTTPS 協(xié)議訪問 SVN 文件倉庫,您需要在您的 Apache 2 中安裝并配置好數(shù)字證書,這也不在本文的討論范圍之中。

            [編輯]安裝

            幸運(yùn)的,Subversion 已經(jīng)包含在 main 倉庫中。所以,要安裝 Subversion,您只需要簡單的運(yùn)行:

            $ sudo apt-get install subversion
            $ sudo apt-get install libapache2-svn
            

            如果系統(tǒng)報告了依賴關(guān)系的錯誤,請找出相應(yīng)的軟件包并安裝它們。如果存在其它問題,也請自行解決。如果您是再不能解決這些問題,可以考慮通過 Ubuntu 的網(wǎng)站、Wiki、論壇或郵件列表尋求支持。

            [編輯]服務(wù)器配置

            您應(yīng)該已經(jīng)安裝了上述的軟件包。本節(jié)將闡述如何創(chuàng)建 SVN 文件倉庫以及如何設(shè)置項目的訪問權(quán)限。

            [編輯]創(chuàng)建 SVN 倉庫

            許多位置都可以放置 Subversion 文件倉庫,其中兩個最常用的是:/usr/local/svn 以及 /home/svn。為了在下面的描述中簡單明了,我們假設(shè)您的 Subversion 文件倉庫放在 /home/svn,并且你的項目名稱是簡單的“myproject”。

            同樣的,也有許多常用的方式設(shè)置文件倉庫的訪問權(quán)限。然而,這也是安裝過程中最經(jīng)常出現(xiàn)錯誤的地方,因此我們會對此進(jìn)行一個詳細(xì)說明。典型的情況下,您應(yīng)該創(chuàng)建一個名為“Subversion”的組來擁有文件倉庫所在的目錄。下面是一個快速的操作說明,有關(guān)內(nèi)容請參考相關(guān)文檔的詳細(xì)說明:

            • 在 Ubuntu 菜單上選擇“系統(tǒng)->系統(tǒng)管理->用戶和組”;
            • 切換到“組”標(biāo)簽;
            • 點擊“添加組”按鈕;
            • 組名為“subversion”;
            • 將您自己和“www-data”(Apache 用戶)加入組成員中;
            • 點擊“OK”以確認(rèn)修改,關(guān)閉該程序。

            或者使用命令完成上述功能(增加組,并且把用戶加到組里):

            sudo addgroup subversion
            sudo usermod -G subversion -a www-data
            

            再或者直接使用命令編輯組文件"sudo vi /etc/group",增加組和成員(不推薦):

            $ sudo vi /etc/group
            

            結(jié)果看上去,像這樣。

            $ cat /etc/group|grep subversion
            subversion:x:1001:www-data,exp
            

            您需要注銷然后再登錄以便您能夠成為 subversion 組的一員,然后就可以執(zhí)行簽入文件(Check in,也稱提交文件)的操作了。

            現(xiàn)在執(zhí)行下面的命令

            $ sudo mkdir /home/svn
            $ cd /home/svn
            $ sudo mkdir myproject
            $ sudo chown -R root:subversion myproject
            

            下面的命令用于創(chuàng)建 SVN 文件倉庫:

            $ sudo svnadmin create /home/svn/myproject
            

            賦予組成員對所有新加入文件倉庫的文件擁有相應(yīng)的權(quán)限:

            $ sudo chmod -R g+rws myproject

            如果上面這個命令在創(chuàng)建SVN文件倉庫之前運(yùn)行,你可能在后續(xù)Check in的時候遇到如下錯誤:

            Can't open '/home/svn/myproject/db/txn-current-lock': Permission denied
            

            查看txn-current-lock文件的權(quán)限和用戶以及組信息,應(yīng)該類似于:

            $ ls -l /home/svn/myproject/db/txn-current-lock
            -rw-rwSr-- 1 root subversion  0  2009-06-18  15:33  txn-current-lock
            

            除了權(quán)限以外,用戶及其組如果不對,則仍然會遇到上述問題,可以再次運(yùn)行命令:

            $ sudo chown -R root:subversion myproject
            

            [編輯]訪問方式

            Subversion 文件倉庫可以通過許多不同的方式進(jìn)行訪問(Check Out,簽出)——通過本地硬盤,或者通過各種網(wǎng)絡(luò)協(xié)議。無論如何,文件倉庫的位置總是使用 URL 來表示。下表顯示了不同的 URL 模式對應(yīng)的訪問方法:

            模式訪問方法
            file:///直接訪問本地硬盤上文件倉庫
            http://通過 WebDAV 協(xié)議訪問支持 Subversion 的 Apache 2 Web 服務(wù)器
            https://類似 http://,支持 SSL 加密
            svn://通過自帶協(xié)議訪問 svnserve 服務(wù)器
            svn+ssh://類似 svn://,支持通過 SSH 通道


            本節(jié)中,我們將看到如何配置 SVN 以使之能夠通過所有的方法得以訪問。當(dāng)然這里我們之討論基本的方法。要了解更高級的用途,我們推薦您閱讀《使用 Subversion 進(jìn)行版本控制》在線電子書

            [編輯]直接訪問文件倉庫(file://)

            這是所有訪問方式中最簡單的。它不需要事先運(yùn)行任何 SVN 服務(wù)。這種訪問方式用于訪問本地的 SVN 文件倉庫。語法是:

            $ svn co file:///home/svn/myproject
            或者
            $ svn co file://localhost/home/svn/myproject
            

            注意:如果您并不確定主機(jī)的名稱,您必須使用三個斜杠(///),而如果您指定了主機(jī)的名稱,則您必須使用兩個斜杠(//).

            對文件倉庫的訪問權(quán)限基于文件系統(tǒng)的權(quán)限。如果該用戶具有讀/寫權(quán)限,那么他/她就可以簽出/提交修改。如果您像前面我們說描述的那樣設(shè)置了相應(yīng)的組,您可以簡單的將一個用戶添加到“subversion”組中以使其具有簽出和提交的權(quán)限。

            [編輯]通過 WebDAV 協(xié)議訪問(http://)

            要通過 WebDAV 協(xié)議訪問 SVN 文件倉庫,您必須配置您的 Apache 2 Web 服務(wù)器。您必須加入下面的代碼片段到您的 /etc/apache2/mods-available/dav_svn.conf中:

            <Location /svn/myproject>
            DAV svn
            SVNPath /home/svn/myproject
            AuthType Basic
            AuthName "myproject subversion repository"
            AuthUserFile /etc/subversion/passwd
            <LimitExcept GET PROPFIND OPTIONS REPORT>
            Require valid-user
            </LimitExcept>
            </Location>
            

            如果需要用戶每次登錄時都進(jìn)行用戶密碼驗證,請將<LimitExcept GET PROPFIND OPTIONS REPORT>與</LimitExcept>兩行注釋掉。

            當(dāng)您添加了上面的內(nèi)容,您必須重新起動 Apache 2 Web 服務(wù)器,請輸入下面的命令:

            sudo /etc/init.d/apache2 restart
            

            接下來,您需要創(chuàng)建 /etc/subversion/passwd 文件,該文件包含了用戶授權(quán)的詳細(xì)信息。要添加用戶,您可以執(zhí)行下面的命令:

            sudo htpasswd -c /etc/subversion/passwd user_name
            

            它會提示您輸入密碼,當(dāng)您輸入了密碼,該用戶就建立了。“-c”選項表示創(chuàng)建新的/etc/subversion/passwd文件,所以user_name所指的用戶將是文件中唯一的用戶。如果要添加其他用戶,則去掉“-c”選項即可:

            sudo htpasswd /etc/subversion/passwd other_user_name
            

            您可以通過下面的命令來訪問文件倉庫:

            $ svn co http://hostname/svn/myproject myproject --username user_name
            

            它會提示您輸入密碼。您必須輸入您使用 htpasswd 設(shè)置的密碼。當(dāng)通過驗證,項目的文件就被簽出了。

            警告:密碼是通過純文本傳輸?shù)摹H绻鷵?dān)心密碼泄漏的問題,我們建議您使用 SSL 加密,有關(guān)詳情請看下一節(jié)。

            [編輯]通過具有安全套接字(SSL)的 WebDAV 協(xié)議訪問(https://)

            通過具有 SSL 加密的 WebDAV 協(xié)議訪問 SVN 文件倉庫(https://)非常類似上節(jié)所述的內(nèi)容,除了您必須為您的 Apache 2 Web 服務(wù)器設(shè)置數(shù)字證書之外。

            您可以安裝由諸如 Verisign 發(fā)放的數(shù)字簽名,或者您可以安裝您自己的數(shù)字簽名。

            我們假設(shè)您已經(jīng)為 Apache 2 Web 服務(wù)器安裝和配置好了相應(yīng)的數(shù)字證書。現(xiàn)在按照上一節(jié)所描述的方法訪問 SVN 文件倉庫,別忘了把 http:// 換成https://。如何,幾乎是一模一樣的!

            [編輯]通過自帶協(xié)議訪問(svn://)

            當(dāng)您創(chuàng)建了 SVN 文件倉庫,您可以修改 /home/svn/myproject/conf/svnserve.conf 來配置其訪問控制。


            例如,您可以取消下面的注釋符號來設(shè)置授權(quán)機(jī)制:

            # [general]
            # password-db = passwd
            

            現(xiàn)在,您可以在“passwd”文件中維護(hù)用戶清單。編輯同一目錄下“passwd”文件,添加新用戶。語法如下:

            username = password
            #(注意行開始不要有多余空格)
            

            要了解詳情,請參考該文件。


            現(xiàn)在,您可以在本地或者遠(yuǎn)程通過 svn:// 當(dāng)文 SVN 了,您可以使用“svnserve”來運(yùn)行 svnserver,語法如下:

            $ svnserve -d --foreground -r /home/svn
            # -d -- daemon mode
            # --foreground -- run in foreground (useful for debugging)
            # -r -- root of directory to serve
            要了解更多信息,請輸入:
            $ svnserve --help
            

            當(dāng)您執(zhí)行了該命令,SVN 就開始監(jiān)聽默認(rèn)的端口(3690)。您可以通過下面的命令來訪問文件倉庫:

            $ svn co svn://hostname/myproject myproject --username user_name
            

            基于服務(wù)器的配置,它會要求輸入密碼。一旦通過驗證,就會簽出文件倉庫中的代碼。


            要同步文件倉庫和本地的副本,您可以執(zhí)行 update 子命令,語法如下:

            $ cd project_dir
            $ svn update
            

            要了解更多的 SVN 子命令,您可以參考手冊。例如要了解 co (checkout) 命令,請執(zhí)行:

            $ svn co --help
            或者這樣
            $ svn --help commit
            或者直接
            ? svn help co
            checkout (co): 從版本庫簽出工作副本。
            使用: checkout URL[@REV]... [PATH]
            。。。。。
            

            一個實例:

            ? killall svnserve; svnserve -d -r /home/svn/
            /home/svn/lj12-source/conf ? dog *
            authz:[groups]
            authz:lj12 = veexp
            authz:[lj12-source:/] <-注意寫法。
            authz:veexp = rw
            authz:@lj12 = rw
            authz:* = passwd:[users] <-2個用戶和密碼。
            passwd:veexp = icep
            passwd:test = test 
            svnserve.conf:[general]
            svnserve.conf:anon-access = none
            svnserve.conf:auth-access = write
            svnserve.conf:password-db = passwd
            svnserve.conf:authz-db = authz <-如果不啟用authz,則test也可以取出。
            ? svn co svn://localhost/lj12-source --username veexp
            認(rèn)證領(lǐng)域: <svn://localhost:3690> a712643f-661e-0410-8ad4-f0554cd88977
            用戶名: veexp “veexp”的密碼:
            A lj12-source/tim.h A lj12-source/en.c
            ......

            認(rèn)證失敗的密碼緩沖記錄位置,明文密碼。到1.6版本,可能使用keyring管理。如果調(diào)試密碼,直接刪除如下文件就可。

            ~/.subversion/auth/svn.simple/:

            eea34a6f7baa67a3639cacd6a428dba4
            

            [編輯]通過具被SSH隧道保護(hù)的自帶協(xié)議訪問(svn+ssh://)

            配置和服務(wù)器進(jìn)程于上節(jié)所述相同。我們假設(shè)您已經(jīng)運(yùn)行了“svnserve”命令。

            我們還假設(shè)您運(yùn)行了 ssh 服務(wù)并允許接入。要驗證這一點,請嘗試使用 ssh 登錄計算機(jī)。如果您可以登錄,那么大功告成,如果不能,請在執(zhí)行下面的步驟前解決它。

            svn+ssh:// 協(xié)議使用 SSH 加密來訪問 SVN 文件倉庫。如您所知,數(shù)據(jù)傳輸是加密的。要訪問這樣的文件倉庫,請輸入:

            $ svn co svn+ssh://hostname/home/svn/myproject myproject --username user_name
            

            注意:在這種方式下,您必須使用完整的路徑(/home/svn/myproject)來訪問 SVN 文件倉庫

            基于服務(wù)器的配置,它會要求輸入密碼。您必須輸入您用于登錄 ssh 的密碼,一旦通過驗證,就會簽出文件倉庫中的代碼。

            您還應(yīng)該參考 SVN book 以了解關(guān)于 svn+ssh:// 協(xié)議的詳細(xì)信息。

            posted on 2009-11-26 15:01 暗夜教父 閱讀(878) 評論(0)  編輯 收藏 引用 所屬分類: Linux & Unix

            <2009年9月>
            303112345
            6789101112
            13141516171819
            20212223242526
            27282930123
            45678910

            常用鏈接

            留言簿(2)

            隨筆分類

            隨筆檔案

            文章分類

            文章檔案

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            无码国内精品久久综合88| 久久综合给合久久狠狠狠97色69| 久久精品国产一区二区| 久久午夜免费视频| 久久国产精品成人免费| 欧美成a人片免费看久久| 一本色道久久88—综合亚洲精品| 三上悠亚久久精品| 亚洲欧美精品伊人久久| 久久强奷乱码老熟女网站| 精品久久久久久国产三级| 午夜精品久久久久久中宇| 大蕉久久伊人中文字幕| 久久无码人妻一区二区三区午夜| 94久久国产乱子伦精品免费| 久久亚洲欧美国产精品| 亚洲国产精品无码久久久久久曰| 久久91精品国产91久久麻豆| 久久久久久亚洲精品影院| 国产精品免费久久久久电影网| 18岁日韩内射颜射午夜久久成人 | 国产高潮国产高潮久久久91 | 久久经典免费视频| 国内精品久久久久久麻豆| www性久久久com| 色综合久久中文字幕无码| 2020国产成人久久精品| 久久久久久A亚洲欧洲AV冫 | 日本久久中文字幕| 精品久久久久久无码国产| 久久免费视频观看| 久久99精品国产麻豆宅宅| 99久久超碰中文字幕伊人| 丰满少妇人妻久久久久久| 婷婷伊人久久大香线蕉AV| 亚洲国产精品无码久久一区二区 | 久久夜色精品国产| 久久人人超碰精品CAOPOREN | 日韩久久久久中文字幕人妻| 99久久人人爽亚洲精品美女| 一级做a爰片久久毛片16|