1. 采用源檔案編譯安裝。源檔案共兩個,為:
subversion-1.6.1.tar.gz (subversion 源檔案)
subversion-deps-1.6.1.tar.gz (subversion依賴檔案)
注意檔案版本必須一緻,否則很容易産生各種奇怪的問題.
2. 上傳以上兩個檔案到伺服器上,解壓。解壓指令為:
tar xfvz subversion-1.6.1.tar.gz
tar xfvz subversion-deps-1.6.1.tar.gz
3. 解壓後生成 subversion-1.6.1 子目錄,兩個壓縮包解壓後都會自動放到此目錄下,不用手動更改。
4. 進入解壓子目錄: cd subversion-1.6.1
5. 執行 ./configure --prefix=/usr/local/svn
./configure時會出現以下錯誤:configure: error: We require OpenSSL; try –with-openssl configure failed for serf。
這是因為沒有安裝openssl相關包
openssl官方網址:http://www.openssl.org/
linux下openssl的安裝:
tar xvzf openssl-1.0.0g.tar.gz
cd openssl-1.0.0g
然後:
./config --prefix=/usr/local/ssl shared zlib-dynamic enable-camellia
然後執行:
make depend
Make
Make test
make install
編輯/etc/ld.so.conf, add to paths /usr/local/ssl/lib(可以直接在/etc/ld.so.conf.d檔案
夾下再建立一個.conf檔案,把/usr/local/ssl/lib拷貝到裡面,另外也可以在現有的.conf檔案中
添加/usr/local/ssl/lib這個路徑,反正ld.so.conf中包含了這個檔案夾下的所有.conf檔案)
安裝之後會在/usr/local下生成一個ssl目錄,設定環境變量,在/etc/profile的PATH中增加如下内
容:PATH=/usr/local/ssl/bin:/sbin/:$PATH:/usr/sbin
export PATH
6. 再進到subversion-1.6.1 再執行 ./configure --prefix=/opt/subversion 進行配置設定并指明安裝
目錄. 注意prefix前是兩個減号. 預設不帶BDB包, 是以預設使用的是FSFS模式. 若想使用BDB模式需另外下
載BDB包.建議使用FSFS模式.
configure完成可能會出現:
You don’t seem to have Berkeley DB version 4.0.14 or newer installed and linked to APR-UTIL.
We have created Makefiles which will build without the Berkeley DB back-end; your repositories
will useFSFS as the default back-end. You can find the latest version of Berkeley DB here:
你似乎沒有Berkeley DB版本4.0.14或更新版本安裝并連結至四月- util的。我們已建立Makefile檔案的将建立一個
沒有了Berkeley DB後端,你的版本庫作為預設後端使用FSFS格式。你可以找到最新版本Berkeley DB的位置。
這個提示可以跳過,因為不使用BDB存儲。
7. 執行 make 編譯.
8. 執行 make install 安裝.
9. 添加環境變量:
vi /etc/profile
在檔案最後加入:
SVNPATH=$PATH:/usr/local/svn/bin
export SVNPATH
10. 測試SVN是否安裝成功,執行:
svnserve --version
如果顯示版本資訊, 則安裝成功. (如果沒有安裝svnserve,請先安裝apt-get install subversion)
以上是在linux上安裝svn伺服器的步驟,下面将介紹svn伺服器配置:
1. 建立版本庫目錄,建立好的版本庫目錄與安裝目錄不在同級目錄下(可建立多個,建立庫後以下各項都需
重新配置。注意差別安裝目錄與版本庫目錄,以下講的都是版本庫目錄)
mkdir –p /opt/svndata/repos
2. 建立svn版本庫(與上面目錄對應)
svnadmin create /opt/svndata/repos
執行此指令後svn自動在repos目錄下添加必須的配置檔案.
3. 修改版本庫配置檔案
vi /opt/svndata/repos/conf/svnserve.conf
各參數功能在配置檔案的注釋中有說明, 此處配置如下:
[general]
anon-access = none # 使非授權使用者無法通路
auth-access = write # 使授權使用者有寫權限
password-db = /opt/svndata/repos/conf/passwd # 指明密碼檔案路徑
authz-db = /opt/svndata/repos/conf/authz # 通路控制檔案
realm = /opt/svndata/repos # 認證命名空間,subversion會在認證提示裡顯示,并且
作為憑證緩存的關鍵字。
其它采用預設配置. 各語句都必須頂格寫, 左側不能留白格, 否則會出錯.
指令簡介:這是svn配置檔案的格式,請按照以上格式書寫。
4.配置使用者 :passwd檔案
輸入以下内容:
[users]
<使用者1> = <密碼1> admin = admin
<使用者2> = <密碼2> username2 = password2
可以添加多個,此為使用者名密碼對。
5. 配置權限 :authz檔案
指令簡介:此配置檔案采用“基于路徑的授權”政策,中括号裡指定路徑,以下列出對各使用者的授權。包括隻讀r,讀寫rw。沒有列出的使用者,則不允許通路。還可以對使用者分組,具體請參考svn手冊,以下是簡單例子:
<!--[if !supportLineBreakNewLine]--> 使用者組格式:
[groups]
<使用者組名> = <使用者1>,<使用者2>
其中,1個使用者組可以包含1個或多個使用者,使用者間以逗号分隔。
版本庫目錄格式:
[<版本庫>:/項目/目錄]
@<使用者組名> = <權限>
<使用者名> = <權限>
其中,方框号内部分可以有多種寫法:
/,表示根目錄及以下。根目錄是svnserve啟動時指定的,我們指定/opt/svndata。這樣,/就是表示對全部版本庫設定權限。
repos1:/,表示對版本庫1設定權限
repos2:/abc, ,表示對版本庫2中的abc項目設定權限
repos2:/abc/aaa, ,表示對版本庫2中的abc項目的aaa目錄設定權限
權限主體可以是使用者組、使用者或*,使用者組在前面加@,*表示全部使用者。權限可以是w、r、wr和空,空表示沒有任何權限。
配置完成,接下來該啟動svn喽: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
安裝好後,這樣通路伺服器時就可以直接用svn:// 伺服器ip 來通路了。