請仔細閱讀安裝包自帶的readme文件!
=================================================
1. 先去官網,找安裝包;
http://www.collab.net/downloads/subversion
我下載的是 CollabNetSubversionEdge-4.0.8_linux-x86.tar.gz
2. 創建svn賬戶 比如取名 svnuser,后續使用該用戶來安裝、啟動svn服務
useradd svnuser // 加用戶
passwd svnuser //設置密碼
3. 將svnuser加入sudeor
a. 先執行 chmod u+w /etc/sudoer 打開修改權限
b. 然后用root用戶進行修改,修改完成后保存退出
找到root ALL=(ALL) ALL,在下一行加入svnuser ALL=(ALL) ALL,保存退出
c. 再執行 chmod u-w /etc/sudoer 關閉修改權限
4. 安裝需要java和python環境
java -version
python -V
判斷是否已經有java和python環境 沒有的話請自行安裝
5. 設置java環境變量
export JAVA_HOME=/usr/java/default
后面這個路徑使用whereis java / which java來判斷
我的是java執行路徑在 /usr/bin/java,因此 export JAVA_HOME=/usr
執行下面命令測試環境變量是否有效:
#$JAVA_HOME/bin/java -version
java version "1.6.0_20"
Java(TM) SE Runtime Environment (build 1.6.0_20-b02)
Java HotSpot(TM) Client VM (build 16.3-b01, mixed mode, sharing)
接下來請切換用戶到svnuser ,絕對不要使用root賬戶來做操作,否則會無法啟動服務。
6.切換到您要安裝CollabNet Subversion的目錄,本次安裝我將SVN安裝到/opt/下。
$ cd /opt
7. 解壓縮文件后,會在當前目錄下生成名為“csvn”的目錄。使用svnuser,不要用root賬戶,如果你發現svnuser沒有opt文件夾的權限,無法解壓,
那么你要么換個文件夾,要么給svnuser賦權,讓他可以操作opt文件夾。
$ tar zxf CollabNetSubversionEdge-x.y.z_linux-x86.tar.gz
8.為了安裝subversion,你需要擁有root權限,或使用sudo 獲取root權限(第3步svnuser已經獲得權限了)
$ su - svnuser
$ cd csvn
$ sudo -E bin/csvn install
In addition to configuring your system so that the server is started
with the system, it will also write the current JAVA_HOME and the
current username in to the file data/conf/csvn.conf. You can edit this
file if needed as it controls the startup settings for the application.
By setting the JAVA_HOME and RUN_AS_USER variables in this file, it
ensures they are set correctly when the application is run.
9.啟動subversion服務,不能用root運行,使用svnuser。
$ bin/csvn start
10. Optional. Configure the Apache Subversion server to start automatically when the system boots. 也使用svnuser
$ cd csvn
$ sudo bin/csvn-httpd install
11. 第九步啟動后,
[xxx@localhost csvn]$ bin/csvn start
Starting CSVN Console......
CSVN Console started
Waiting for application to initialize (this may take a minute)...................
CSVN Console is ready at http://localhost:3343/csvn
我在外網訪問,使用 http://IP:Port/csvn 發現無法訪問,什么原因呢?
於是我去檢查防火牆iptable配置,發現端口沒有開,當然,我先把防火牆直接關掉,測試了一下外網可以訪問,於是修改配置,啟動防火牆,一切ok。
防火牆啟動關閉命令:
Usage: /etc/init.d/iptables {start|stop|restart|condrestart|status|panic|save}
查看配置:cat /etc/sysconfig/iptables
============================================
參考文檔:
http://blog.sina.com.cn/s/blog_6ffa25ae01015vz9.html
http://blog.csdn.net/hazy/article/details/8771806
http://blog.163.com/weibingtie@126/blog/static/17090237920130241326141/
http://hi.baidu.com/ttyard/item/8fe1960ac32e5574bfe97eef
http://bbs.csdn.net/topics/360115598
====================================
后記,一切搞定后,進入管理頁面,點擊啟動svn服務,結果無法啟動,從log看報錯如下:
2014-07-28 05:12:17,645 [qtp279633047-1399] WARN console.LifecycleService - Server start attempt failed with code=1
2014-07-28 05:12:17,645 [qtp279633047-1399] WARN console.LifecycleService - Output:
2014-07-28 05:25:53,215 [qtp279633047-1493] ERROR console.CommandLineService - Exit status=1 Process err output: AH00543: httpd: bad user name 7039
// 原因是我最初解壓壓縮包的時候,用的root賬戶,遇到這個情況,有兩個方式解決:
1. 刪除目錄,重新安裝,用正確的用戶; 這樣太麻煩,於是用第二個方法。
2. 修改csvn目錄的 所屬用戶組 和 所屬用戶:
chgrp -R svnuser csvn //修改目錄所屬用戶組, svnuser是用戶名, csvn是安裝目錄, -R 代表遞歸修改子目錄
chown -R svnuser csvn //修改目錄所屬用戶, svnuser是用戶名, csvn是安裝目錄, -R 代表遞歸修改子目錄
修改完畢后,使用svnuser 重新啟動服務。
$ bin/csvn stop
$ bin/csvn start
=================================
后記2: 發現一個奇怪現象,reboot linux服務器后,svn會自動起來,
進入管理頁面,

$ sudo bin/csvn-httpd install
一切就ok了, reboot后, 管理服務開機啟動了, 進入頁面 點擊 “啟動” 就把svn服務起來了,一切ok。