一、yum安裝
rpm -qa subversion //檢查是否安裝了低版本的SVN yum remove subversion //如果儲存舊版本,解除安裝舊版本SVN
開始安裝
yum -y install subversion svnserve --version //檢視版本
建立版本倉庫
mkdir -p /data/svn/project svnadmin create /data/svn/project/
檢視/data/svn/project 資料夾發現包含了conf, db,format,hooks, locks, README.txt等檔案,說明一個SVN庫已經建立。
配置許可權
cd /data/svn/project/conf/ //進入配置目錄 vim svnserve.conf //編輯配置檔案
vim passwd //編輯密碼檔案
vim authz
舉例:
[groups] project_p = pm project_s = server1,server2,server3 project_c = client1,client2,client3 project_t = test1,test1,test1 [project:/] @project_p = rw * = [project:/server] @project_p = rw @project_s = rw * = [project:/client] @project_p = rw @project_c = rw * = [project:/doc] @project_p = rw @project_s = r @project_c = r @project_t = r * = 說明:以上資訊表示,只有project_p使用者組有根目錄的讀寫權。r表示對該目錄有讀許可權,w表示對該目錄有寫許可權, rw表示對該目錄有讀寫許可權。最後一行的* =表示,除了上面設定了許可權的使用者組之外,其他任何人都被禁止訪問本目錄。 這個很重要,一定要加上!
配置防火牆
vi /etc/sysconfig/iptables //配置防火牆 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp -dport 3690 -j ACCEPT //加入此行程式碼
service iptables restart //重啟防火牆
另,有開啟3690埠的命令,在終端輸入以下命令: 1>iptables -I INPUT -i eth0 -p tcp --dport 3690 -j ACCEPT 2>iptables -I OUTPUT -o eth0 -p tcp --sport 3690 -j ACCEPT 然後儲存:/etc/rc.d/init.d/iptables save 在看看是否已經有了3690埠的開放許可權:/etc/init.d/iptables status
svnserve -d -r /data/svn/ //啟動SVN netstat -ln | grep 3690 //檢視埠狀態
開啟本地Windows客戶端檢出
客戶端提交檔案測試
然後新建立一個WEB目錄,實現修改WEB程式檔案。 在這裡把/data/www/作為指定WEB目錄
svn co svn://127.0.0.1/project /data/www/
客戶端提交了版本修改之後,在之前的公司每次都是需要執行svn update命令,而且不小心會出現開發衝突。
下面來配置SVN鉤子,來實現自動更新伺服器WEB目錄檔案
cd /data/svn/project/hooks/
vim post-commit
#!/bin/sh export LANG=zh_CN.UTF-8 SVN=/usr/bin/svn #這裡填寫你的svn程式目錄 WEB=/data/www/ #這裡填寫你的web程式目錄 $SVN update $WEB --username user1 --password password123456 #客戶端的使用者名稱和密碼,在svn配置檔案裡配置的資訊
chmod 777 post-commit
最後重啟svn!客戶端提交測試,檢視WEB目錄檔案自動更新成功!
二、非yum安裝
wget http://subversion.tigris.org/downloads/subversion-1.6.9.tar.gz wget http://subversion.tigris.org/downloads/subversion-deps-1.6.9.tar.gz #解壓 tar zxvf subversion-1.6.9.tar.gz tar zxvf subversion-deps-1.6.9.tar.gz #編譯 cd subversion-1.6.9 ./configure --prefix=/usr/local/svn --without-berkeley-db make make install
安裝過程中可能遇到的問題:
1、提示OpenSSL缺失
configure: error: We require OpenSSL; try --with-openssl
解決方法:編譯前先安裝了一個openssl即可
cd /usr/local/src wget http://www.openssl.org/source/openssl-1.0.0a.tar.gz tar -zxvf openssl-1.0.0a.tar.gz cd openssl-1.0.0a ./config ./config -t make depend make make test make install
make test 的時候本人出現過以下錯誤,本人沒有去理會,繼續make install。
yum -y install openssl #為了放心,抱著試一試的態度,執行了yum安裝命令
安裝之後會在/usr/local下生成一個ssl目錄,編譯SVN時加上openssl路徑即可
./configure --prefix=/usr/local/svn --without-berkely-db --with-openssl=/usr/local/ssl/
2、 zlib依賴缺失
configure配置SVN時可能提示如下錯誤資訊:
configure: error: subversion requires zlib
解決辦法:安裝zlib
百度雲下載地址:http://pan.baidu.com/s/1qYfM7Ha
cd /usr/local/src 這裡我上傳百度網盤了 。也可以直接百度 zlib-1.2.8.tar.gz ,下載上傳至指定目錄即可 tar -xvzf zlib-1.2.8.tar.gz cd zlib-1.2.8 ./configure make make install
3、expat依賴缺失
configure: error: no XML parser was found: expat or libxml 2.x required
解決辦法:安裝expat
cd /usr/local/src wget http://nchc.dl.sourceforge.net/project/expat/expat/2.1.0/expat-2.1.0.tar.gz tar -zxvf expat-2.1.0.tar.gz cd expat-2.1.0 ./configure make make install
再次執行
./configure --prefix=/usr/local/svn --without-berkely-db --with-openssl=/usr/local/ssl/
4、在make && make install 時出現報錯
make[1]: Leaving directory `/usr/local/src/subversion-1.6.9/serf'
解決辦法:新增 --without-serf 引數重新編譯subversion即可:
./configure --prefix=/usr/local/svn --without-berkely-db --with-openssl=/usr/local/ssl/ --without-serf
make && make install
安裝完畢之後檢視一下SVN版本
/usr/local/svn/bin/svnserve --version
OK!我們的SVN都可以看到版本了,證明沒問題,可以建立倉庫之類的操作了。和yum配置的方式差不多,只不過有時候命令列要有所改動了,
比如yum安裝之後是這樣建立倉庫:svnadmin create /data/svn/project/
但是在編譯安裝的需要指定目錄了:/usr/local/svn/bin/svnadmin create /data/svn/project/
mkdir -p /data/svn/project /usr/local/svn/bin/svnadmin create /data/svn/project/ cd /data/svn/project/
接下來的配置步驟就略了,可以參考上面yum安裝的配置方式,最後啟動SVN服務還是需要注意的
/usr/local/svn/bin/svnserve -d -r /data/svn/
完畢~!