第一章 安裝
1. 采用源文件編譯安裝。源文件共兩個,為:
subversion-1.6.21.tar.gz (subversion 源文件)
subversion-deps-1.6.21.tar.gz (subversion依賴文件)
注意文件版本必須一致,否則很容易產生各種奇怪的問題.
2. 上傳以上兩個文件到服務器上,解壓。解壓命令為:
|
tar xfvz subversion-1.6.21. tar .gz |
tar xfvz subversion-deps-1.6.21. tar .gz |
指令簡介:tar 為解壓命令,xfvz為tar命令的參數,用於解壓tar.gz格式壓縮的文件。
3. 解壓后生成 subversion-1.6.21 子目錄,兩個壓縮包解壓后都會自動放到此目錄下,不用手動更改。
4. 進入解壓子目錄:
cd subversion-1.6.21 |
5. 執行 ./configure –prefix=/opt/subversion 進行配置設定並指明安裝目錄. 注意prefix前是兩個減號. 默認不帶BDB包, 所以默認使用的是FSFS模式. 若想使用BDB模式需另外下載BDB包.建議使用FSFS模式.兩種模式比較參考以下鏈接:
http://doc.iusesvn.com/show-21-1.html
指令簡介:configure命令用於檢查安裝平台和目標特征,prefix用於指定路徑。
6. 執行 make 編譯.
7. 執行 make install 安裝.
8. 添加環境變量:
|
vi /etc/profile |
在文件最后加入:
export PATH=$PATH:/usr/local/svn/bin
9. 測試SVN是否安裝成功,執行:
svnserve --version |
如果顯示版本信息, 則安裝成功.
第二章 配置
本系統采用為每個項目單獨建一版本庫的策略。配置文件,密碼文件,訪問控制文件等都放在版本庫的conf目錄下。所以每次開始一個新項目都必須新建一個版本庫,並重新配置各配置文件。還有很重要的一條,要求各組員重新配置客戶端,包括服務器版本庫路徑,本地路徑等信息。
1. 建立版本庫目錄(可建立多個,新建庫后以下各項都需重新配置。注意區別安裝目錄與版本庫目錄,以下講的都是版本庫目錄)
mkdir –p /opt/svndata/repos |
2. 建立svn版本庫(與上面目錄對應)
|
svnadmin create /opt/svndata/repos |
執行此命令后svn自動在repos目錄下添加必須的配置文件.
注意:版本庫不同於一般的文件夾, 直接在操作系統上新建文件無法被SVN識別, 必須使用import等命令將文件導入版本庫.
此為svn內部指令,create用於新建版本庫。請使用svn help查看詳細說明。
3. 修改版本庫配置文件
|
vi /opt/svndata/repos/conf/svnserve.conf |
各參數功能在配置文件的注釋中有說明, 此處配置如下:
[general]
anon-access = none # 使非授權用戶無法訪問
auth-access = write # 使授權用戶有寫權限
password-db = /opt/svndata/conf/pwd.conf # 指明密碼文件路徑
authz-db = /opt/svndata/conf/authz.conf # 訪問控制文件
realm = /repos # 認證命名空間,subversion會在認證提示里顯示,並且作為憑證緩存的關鍵字。
其它采用默認配置. 各語句都必須頂格寫, 左側不能留空格, 否則會出錯.(這個參數跟之后訪問的地址有關)
其中pwd.conf 與 authz.conf 在新建版本庫時系統不會自動創建,需要自己創建。
指令簡介:這是svn配置文件的格式,請按照以上格式書寫。
4. 配置用戶
1 |
vi /opt/svndata/repos/conf/ pwd .conf |
輸入以下內容:
[users]
username1 = password1
username2 = password2
可以添加多個,此為用戶名密碼對。
5. 配置權限
vi /opt/svndata/repos/conf/authz.conf
指令簡介:此配置文件采用“基於路徑的授權”策略,中括號里指定路徑,以下列出對各用戶的授權。包括只讀r,讀寫rw。沒有列出的用戶,則不允許訪問。還可以對用戶分組,具體請參考svn手冊,以下是簡單例子:
[/]
user1 = rw
user2 = r
注意:
* 權限配置文件中出現的用戶名必須已在用戶配置文件中定義。
* 對權限配置文件的修改立即生效,不必重啟svn。
權限:注意配置文件格式,前面不能有空格
用戶組格式:
[groups]
<用戶組名> = <用戶1>,<用戶2>
————————
[groups]
Svnadmin = shengchao,yingzi
g_chengxu= test1,test2,test2
————————
其中,1個用戶組可以包含1個或多個用戶,用戶間以逗號分隔。
版本庫目錄格式:
[<版本庫>:/項目/目錄]
@<用戶組名> = <權限>
<用戶名> = <權限>
其中,方框號內部分可以有多種寫法:
/,表示根目錄及以下。根目錄是svnserve啟動時指定的,我們指定為/www/svndata。這樣,/就是表示對全部版本庫設置權限。
repos1:/,表示對版本庫1設置權限
repos2:/abc, ,表示對版本庫2中的abc項目設置權限
repos2:/abc/aaa, ,表示對版本庫2中的abc項目的aaa目錄設置權限
權限主體可以是用戶組、用戶或*,用戶組在前面加@,*表示全部用戶。權限可以是w、r、wr和空,空表示沒有任何權限。
示例:
[groups]
admin = shengchao
[/]
@admin = rw
[repos1:/abc/aaa]
yingzi = rw
[repos2:/pass]
yingzi =
6. 使用import導入文件
新建好的版本庫是空的,需要導入工作目錄。
$ svnadmin create /usr/ local /svn/newrepos |
|
$ svnimport mytree file :///usr/ local /svn/newrepos/some/project |
但是在導入后,用來的目錄樹並沒有轉換成工作拷貝,為了開始工作,還是需要運行svn checkout導出一個工作拷貝。因為導入后,文件在版本庫中是以特殊的形式存在db文件夾中的,不能以明文的方式查看。必須使用svn checkout導出工作副本(workcopy)才能以正常方式查看。
svn checkout file :///usr/ local /svn/newrepos/some/project workcopy |
7. 啟動服務
執行svnserve –d –r /opt/svndata/ 啟動服務, 以deamon方式運行。
本系統采用svnserve方式, 這是小團隊項目的推薦方法. 這種方法維護最少, 配置最簡單.
指令簡介:此指令用於啟動svn服務,-d指明以守護模式運行,svn自動在3690端口監聽。3690是默認端口,可以使用“–listen-port=”或者“–listen-host=”來指定其它端口。-r選項用來指定svn服務的根目錄,這樣用戶就可以使用相對路徑訪問,而不用提供完整路徑。
使用以下命令檢出:(svnserver方式)
|
svn checkout svn://127.0.0.1/ dir |
以上為示例。IP需要根據具體情況調整,dir為版本庫路徑,若在啟動時已指定則可省略。
版本庫信息在版本庫文件夾里,所以要刪除版本庫只需要刪除版本庫所在的文件夾即可。
另外工作副本只是自己維護的文件夾,可以用Windows直接刪掉,對別人沒有影響。千萬不要使用版本庫的刪除命令,否則版本庫里的內容也會被刪除。
------------------------------------------------------------------------------------------
配置兩個資源庫:svn默認端口是3690
1.啟動命令: svnserve -d -r 版本庫路徑 --listen-host 192.168.1.178
如:svnserve -d -r /opt/svndata --listen-host 192.168.1.178
啟動時遇到的問題:
啟動svnserve時出現cannot bind server socket:address already in use
解決方法:
方法一:找出svnserve id 殺死掉進程
netstat -ntlp
kill -9 id
方法二:重新指定一個端口號(默認端口3690)
svnserve -d --listen-port 3691 -r /opt/svndata/repos
2.檢查是否啟動成功:(查看是否存在svnserve 進程)
ps -ef|grep svnserve
貌似更簡單的安裝方法:好尷尬
一:安裝
1、下載安裝包,這里下載1.7.13版本
1
|
wget
http://archive.apache.org/dist/subversion/subversion-1.7.13.tar.gz
|
2、編譯 --without-berkeley-db取消使用berkeley-db,采
1
|
.
/configure
--prefix=
/usr/local/subversion
--without-berkeley-db
|
出現了錯誤
1
|
configure: error: no suitable apr found
|
在網上找了一下,是因為缺少必要的依賴文件,
運行./get-deps.sh下載一下文件
1
|
.
/get-deps
.sh
|
之后再./configure --pre...一下
make && make install