<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Sealyu

    --- 博客已遷移至: http://www.sealyu.com/blog

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      618 隨筆 :: 87 文章 :: 225 評論 :: 0 Trackbacks

    1. 本文需要兩個文件,httpd和subversion。
    •httpd是web服務(wù)器,用來通過web訪問subversion, 官方網(wǎng)站: http://httpd.apache.org/
    下載網(wǎng)頁:http://archive.apache.org/dist/httpd/,在這里可以下載到httpd-2.2.2.tar.gz。
    •subversion就是本文的主角,官方網(wǎng) 站: http://subversion.tigris.org/
    subversion-1.4.3.tar.gz的 下載頁為:
    http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=260&expandFolder=74
    2. 新建一個用戶:svnroot
    # useradd svnroot
    最好不要讓root用戶參與到svn的權(quán)限管理和日常的運行和維護工作中來,但是下面的一些安裝和配置操作還是 需要root用戶來完成的,因為有些操作只有root才能做。
    3. 編譯安裝httpd (root用戶操作):
    //解壓apache安裝包
    # tar xvzf httpd-2.2.2.tar.gz
    //進入解壓后的目錄
    # cd httpd-2.2.2
    //配置apache安裝,前兩個參數(shù)是必須要加的,你還可以根據(jù)您的需要添加其他的 參數(shù)。
    //后面的參數(shù)制定你要把apache安裝哪里

    # ./configure --enable-dav --enable-so --prefix=/usr/local/apache/
    # make
    //安裝
    # make install
    # cd /usr/local/apache/bin
    //啟動apache服務(wù)
    # ./apachectl start
    //打開瀏覽器http://localhost/如果有測試頁"It works!"出現(xiàn)則證明已經(jīng)安裝成功。

    4. 安裝Subversion
    //解壓SubVersion安裝包 (root用戶進行下面的操作)
    # tar xvzf Subversion-1.4.3.tar.gz
    //進入解壓后的目錄
    # cd Subversion-1.4.3
    //配置subversion安裝
    #./configure --with-apxs=/usr/local/apache/bin/apxs --prefix=/usr/local/subversion
    --with-apr=/usr/local/apache --with-apr-util=/usr/local/apache --with-ssl --with-zlib
    --enable-maintainer-mode
    # make
    //安裝
    # make install
    //創(chuàng)建庫文件所在的目錄 (svnroot用戶進行下面的操作)
    # mkdir /home/svnroot/repository
    //進入subversion的bin目錄
    # cd /usr/local/subversion/bin
    //創(chuàng)建倉庫"test"
    # ./svnadmin create /home/svnroot/repository/test
    # cd /home/svnroot/repository/test
    //看看是不是多了些文件,如果是則說明Subversion安裝成功了
    # ls –l
    # cd /usr/local/subversion/bin
    //這條語句將把路徑/home/user/import下找到的文件導(dǎo)入到你創(chuàng)建的 Subversion 倉庫中去,
    //提交后的修訂版為1。

    # ./svn import /home/user/import file:///home/svnroot/repository/test –m "注釋"
    //不讓其他人有修改目錄的權(quán)限
    # chmod 700 /home/svnroot/repository

    5. 修改Apache配置文件
    # vi /usr/local/apache/conf/httpd.conf
    //找到以下行
    User daemon # 將daemon改為svnroot,讓apache進程以svnroot的身份運行
    Group daemon

    //如果先安裝apache,以下兩行將自動添加,如未找到請手動添加
    LoadModule dav_svn_module modules/mod_dav_svn.so
    LoadModule authz_svn_module modules/mod_authz_svn.so
    //添加以下內(nèi)容到httpd.conf
        <Location /svn>
        DAV svn
        SVNParentPath /home/svnroot/repository/ //svn父目錄
        AuthzSVNAccessFile /home/svnroot/repository/authz.conf //權(quán)限配置文件
        AuthType Basic //連接類型設(shè)置
        AuthName "Subversion.zoneyump" //連接框提示
        AuthUserFile /home/svnroot/repository/authfile // 用戶配置文件
        Require valid-user //采用何種認證
        </Location>
        //其中authfile是通過
       //htpasswd –b[c] /home/svnroot/repository/authfile username password來創(chuàng)建的
        //"Require valid-user"告訴apache在authfile中所有的用戶都可以訪問。如果沒有它,
        //則只能第一個用戶可以訪問新建庫

    6. 重啟apache
    # ./usr/local/apache/bin/apachectl restart
    //打開瀏覽器訪問http://localhost/svn/test/,如果有東 西顯示就說明成功

    7. 權(quán)限管理
    1)增加用戶
    # htpasswd -[c] /home/svnroot/repository/authfile wooin
    //第一次設(shè)置用戶時使用-c表示新建一個用戶文件。回車后輸入用戶密碼,
    //要特別注意/home/svnroot/repository/authfile文件的所有者為svnroot而非root用戶
    //如果為root請修改所有者

    # chown svnroot:svnroot   /home/svnroot/repository/authfile
    //完成對用戶 的增加
    # htpasswd authfile 用戶名(加入新的用戶)
    2)權(quán)限分配
    //要特別注意/home/svnroot/repository/authz.conf文件的所有者為svnroot而非root用戶
    //如果為root請修改所有者為svnroot
    # chown svnroot:svnroot   /home/svnroot/repository/authz.conf
    # vi /home/svnroot/repository/authz.conf
        [test:/] //這表示,倉庫test的根目錄下的訪問權(quán)限
        wooin = rw //test倉庫wooin用戶具有讀和寫權(quán)限
        bao = r //test倉庫bao用戶具有讀權(quán)限
        [test2:/] //test2倉庫根目錄下的訪問權(quán)限
        wooin = r //wooin用戶在test2倉庫根目錄下只有讀權(quán)限
        bao = //bao用戶在 test2倉庫根目錄下無任何權(quán)限
        [/] //這個表示在所有倉庫的根目錄下
        * = r //這個表示對所有的用戶都具有讀權(quán)限
        #[groups] //這個表示群組設(shè)置
        #svn1-developers = wooin, bao //這個表示某群 組里的成員
        #svn2-developers = wooin
        #[svn1:/]
       #@svn1-developers = rw //如果在前面加上@符號,則表 示這是個群組權(quán)限設(shè)置
    將這個設(shè)置完成后。重啟Apache,就可以通過
    http://localhost/svn/test
    這個URL來訪問倉庫了,當(dāng)然,受權(quán)限的限制,必須是合法用戶才能訪問且具有相應(yīng)的權(quán)限
    8. 一些備忘:
    1. svn checkout http://localhost/svn/hello.world

    2. svn commit 時的默認編輯器的環(huán)境變量$SVN_EDITOR=vi需要手動設(shè)定,用kate好像有問題

    3. 如果linux的登錄用戶名密碼都和svn的其中一個用戶名密碼相同時,在checkout的時候不會要求輸 入用戶名密碼直接就可以checkout出來。比如:linux有個用戶wooin,svn也有一個用戶wooin,并且密碼 都是一樣的,當(dāng)用wooin登錄linux后,執(zhí)行checkout,可以直接提取出源碼文件,不用輸入認證信息。

    4. 在svn使用過程中牽扯到幾種權(quán)限:文件系統(tǒng)的權(quán)限,linux系統(tǒng)權(quán)限,svn用戶的權(quán)限,apache進程的權(quán)限。

    文件系統(tǒng)的權(quán)限,linux系統(tǒng)權(quán)限:這里相同的意思,就是平時大家使 用linux時文件夾和文件的訪問權(quán)限。在 svn建立倉庫,文件夾,配置文件的時候用svnroot用戶,并將倉庫權(quán)限設(shè)置為700,不允許其他用戶直接通過 文件系統(tǒng)查看,只能由svnroot進行管理。

    apache進程的權(quán)限:因為所有跟倉庫傳輸?shù)牟僮鞫际峭ㄟ^ apache進程進行的,所以即使你給svn用戶設(shè)置了 很大的權(quán)限,但是apache進程沒有訪問倉庫或者相關(guān)文件的權(quán)限也沒有用,apache進程的權(quán)限設(shè)置在 /usr/local/apache/conf/httpd.conf 文件中配置,找到文件中的這兩行:
    User daemon # 將daemon改為svnroot,讓apache進程以svnroot的身份運行
    Group daemon

    svn用戶的權(quán)限:就是在authz.conf文件中設(shè)置的權(quán)限信息,是svn用來管理倉庫訪問權(quán)限的。

    5. svn服務(wù)器設(shè)置有兩種方式:http 和 svnserve。這里介紹的是http方法

    6. 在/etc/profile的結(jié)尾設(shè)置一些svn啟動時要做的工作
    # start apache server for svn
    /usr/sbin/apachectl start
    export SVN_EDITOR=vi

    7. APR libraries 安裝 SVN 的時候最好指定 --with-apr= 和 --with-apr-util= 參數(shù)到 Apache 安裝的根目錄(ServerRoot)下,而不是使用缺省的 SVN 安裝包中自帶的 apr 。否則如果你安裝的 Apache版本不同有可能導(dǎo)致 APR 庫不匹配,出現(xiàn)類似:
    Can't set position pointer in file '/svn/test/db/revs/1': Invalid argument 的錯誤。
    Updated 2006-04-20 16:30 -- 比如說如果你安裝的是apache 2.2.0版本,就需要在編譯安裝svn的時候指定
    --with-apxs和--with-apr參數(shù)到你的apache.2.0安裝目錄下:
    ./configure --prefix=${subversionInstallFolder} /
    --with-apxs=${apacheInstallFolder}/bin/apxs /
    --with-apr=${apacheInstallFolder} /
    --with-apr-util=${apacheInstallFolder} /
    --with-ssl /
    --with-zlib /
    --enable-maintainer-mode
    9. 重新部署SVN倉庫
    需要將目前的某個倉庫導(dǎo)出,并導(dǎo)入到另一個倉庫(可以導(dǎo)入到該倉庫的指定目錄下),
    要用到以下的命令:
    // 導(dǎo)出所有版本到stn.dump文件中
    # svnadmin dump /home/svnroot/sonatina/ > stn.dump
    // 或者也可以只導(dǎo)出其中一個版本
    # svnadmin dump /home/svnroot/sonatina/ --revision 10 > stn.r10.dump
    // 或者也可以導(dǎo)出多個版本,比如0-10版本
    # svnadmin dump /home/svnroot/sonatina/ --revision 0:10 > stn.r0-10.dump

    // 導(dǎo)入到sonatinab/trunk目錄下,如果不指定--parent-dir,則會導(dǎo)入到根目錄sonatinab/下
    # svnadmin load /home/svnroot/sonatinab/ --parent-dir trunk < stn.r0-10.dump

    posted on 2008-07-13 20:16 seal 閱讀(210) 評論(0)  編輯  收藏 所屬分類: Linux
    主站蜘蛛池模板: 99久久精品国产亚洲| 亚洲人成网站在线播放vr| 亚洲午夜精品在线| 久久99精品国产免费观看| 亚洲国产精品无码久久一线| a级毛片在线免费观看| 亚洲精品V欧洲精品V日韩精品| 99久久免费国产精品热| 亚洲精品无码久久千人斩| 国产午夜不卡AV免费| 久久精品国产亚洲av麻豆小说| 亚洲高清视频免费| 久久久久se色偷偷亚洲精品av | a毛片全部播放免费视频完整18| 久久久久亚洲AV成人网| 三根一起会坏掉的好痛免费三级全黄的视频在线观看 | 亚洲AV成人片色在线观看| 99国产精品免费视频观看| 亚洲黄色网址大全| 女人18毛片水真多免费播放| 黄色毛片免费网站| 国产A在亚洲线播放| 1000部国产成人免费视频| 亚洲AV无码资源在线观看| 亚洲一区二区高清| 午夜免费福利视频| 亚洲日韩一区二区一无码| jlzzjlzz亚洲乱熟在线播放| 久久青青草原国产精品免费| 亚洲欧洲日产韩国在线| 日本免费一区二区三区最新vr| 无码精品人妻一区二区三区免费| 日本红怡院亚洲红怡院最新| 免费视频爱爱太爽了| 小说区亚洲自拍另类| 亚洲AV日韩AV永久无码下载| 成人免费无码大片a毛片软件 | 黄色一级毛片免费| 亚洲欧洲日产国产综合网| 在线中文高清资源免费观看| 精品多毛少妇人妻AV免费久久 |