1. 程式人生 > >linux下的svn搭建

linux下的svn搭建

linux下搭建svn伺服器會存在很多問題,博主在安裝的過程就出現了好多問題,花了很多時間查詢資料,最終才搞定的,特在此分享給大家,希望對各位博友有用。

預備部分:檢查自己的linux系統中是否已經預設安裝了svn

rpm -qa | grepsvnserve

如果有解除安裝

rpm -e --nodeps ****(輸入上個命令獲取的安裝包名稱)

第一步:下載subversion-1.8.15.tar.gz,在我寫這個博文的時候官網上最新的是1.9.3,大家可以根據需要自行下載。

在這個下載頁面可以看著下圖這句話,這句話的說明看圖:


從圖上的說明就知道,這裡就不需要下載依賴了,之前在網上看老版本的安裝都是需要下載依賴的。

第二步:解壓安裝,這裡會出現一系列問題,當時被坑了好長時間

tar -xvf subversion-1.8.15.tar.gz

cd subversion-1.8.15

執行./configure--prefix=/opt/subversion進行配置設定並指明安裝目錄

此時會出現第一個問題,看圖:

apr找不到,此時就要安裝apr了,看我apr和aprutil的安裝部落格。

好了這個問題解決了,再重新執行./configure --prefix=/opt/subversion。

此時會出現第二個問題,看圖:


apr是可以找到了,但是aprutil找不到,但是在上個問題解決的過程中已經安裝了,這個時候我也很鬱悶,找度娘問了很長時間才得到正確的答案,那就是在執行命令的時候要新增指明aprutil的安裝目錄,此時執行的命令變成下面這樣。

./configure --prefix=/opt/subversion--with-aprutil=/opt/aprutil

這次就可以正確的執行了。

第三步:make &make install命令安裝

首先執行make命令,此時會出現第三個問題,看圖:


sqlite沒有,需要下載,到這我就鬱悶了,真心不容易,後面還有讓人崩潰的,先解決這個問題。

複製上圖給的地址,下載對應的檔案,將檔案中的sqlite3.c保留,其他都刪除,上傳到subversion-1.8.15目錄下的sqlite-amalgamation資料夾下(如果該檔案不存在,建立之),這下就解決了第三個問題。

在執行make install,在這裡就沒有出現什麼問題,老天啊終於給點力了。

第四步:測試安裝是否成功

測試命令:

/opt/subversion/bin/svnserve--version

此時如果打印出svn版本資訊,恭喜你安裝成功了。

注:這裡可以採用配置環境變數的方式,就不要寫完整路徑了,直接使用svnserve,我的電腦一直沒有成功,不知道什麼地方配置有誤,想探索的博友可以嘗試。

第五步:建立庫的目錄

建立目錄:

mkdir -p/opt/svn/test

將上面的目錄建立成庫的路徑

/opt/subversion/bin/svnadmin/opt/svn/test

第六步:修改配置檔案

上一步完成後,test目錄下回生成多個檔案和目錄,此時進入conf目錄

修改svnserve.conf中的下面屬性

# anon-access = read  //將read改為none

# auth-access = write
# password-db = passwd
# authz-db = authz

將這幾個引數前的#和空格都去掉,這裡該檔案就配置完了。

修改passwd配置檔案,配置使用者

[users]

test=123456

修改authz許可權配置檔案,rw表示讀寫許可權

[groups]

[/]

test=rw

第七步:上面的配置檔案就都完成了,接下來啟動svn服務

/opt/subversion/bin/svnserve-d -r /opt/svn/

上面的命令啟動後,檢測一下是否啟動成功

ps -ef | grep svn


這樣就啟動成功了。

第八步:遠端連線測試

這裡遠端連線記得svnserve的預設監聽埠是3690,需要將linux系統的該埠開通,如果暴力一點就直接關閉防火牆,下面提供兩種方式,博友們根據自己情況自己選吧。

開埠:

/sbin/iptables -I INPUT -p tcp --dport 3690-j ACCEPT

/etc/rc.d/init.d/iptables save

關閉防火牆:

service iptables stop

遠端連線:使用TortoiseSVN客戶端嘗試連線,這個過程很簡單,如果在連線的時候出現Authorization failed錯誤,表示認證錯誤,注意常看自己的認證檔案(authz)。

到此簡單的搭建過程就完成了,以後的部落格還會提供http和https的方式連線svn伺服器。