編輯
1、檢視是否安裝了svn工具
指令:rpm -qa | grep subversion
如果伺服器已經安裝了則不需要進行安裝,如果沒有安裝可以進行全新的安裝
2、首先檢測系統有沒有安裝SSL:
find / -name opensslv.h
如果找不到,就執行如下指令進行安裝:
yum install openssl
yum install openssl-devel
安裝之後用find / -name opensslv.h指令找到opensslv.h所在的目錄,即下列–with-openssl=後面的路徑,
3、解壓svn安裝檔案
subversion-1.6.6.tar.gz
subversion-deps-1.6.6.tar.gz
指令如下:
1 2 | |
tar 為解壓指令,zxvf為tar指令的參數,用于解壓tar.gz格式壓縮的檔案。
解壓後生成 subversion-1.6.6 子目錄,兩個壓縮包解壓後都會自動放到此目錄下,不用手動更改。
進入解壓子目錄 cd subversion-1.6.6 進行編譯。
4、編譯:
1 2 | |
後面以svnserve方式運作,是以不加apache編譯參數。以fsfs格式存儲版本庫,不編譯berkeley-db
如果編譯時報如下錯誤:
no acceptable C compiler found in $PATH
說明沒有gcc庫,使用如下指令安裝gcc後再編譯:
yum -y install gcc
如果最後出現下面WARNING,我們直接忽略即可,因為不使用BDB存儲。
1 2 3 4 5 6 7 8 | |
安裝
make
make install
如果 make install 出現下面錯誤:
/home/upload/subversion-1.6.6/subversion/svnversion/.libs/lt-svnversion: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
make: *** [revision-install] Error 127
解決辦法:
1、編輯/etc/ld.so.conf檔案
vi /etc/ld.so.conf
添加下面一行代碼
/usr/local/lib
2、儲存後運作ldconfig:
/sbin/ldconfig
注:ld.so.conf和ldconfig用于維護系統動态連結庫。
3、然後再安裝
make && make install
測試是否安裝成功
1 | |
如果顯示如下,svn安裝成功:
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
4、為了友善下操作,把svn相關的指令添加到環境變量中:
echo “export PATH=$PATH:/usr/local/svn/bin/” >> /etc/profile
source /etc/profile
配置svn
1、建立SVN的根目錄
mkdir -p /opt/svn/
2、建立一個産品倉庫
mkdir -p /opt/svn/tshop/
svnadmin create /opt/svn/tshop/
如果你們的研發中心有多個産品組,每個産品組可以建立一個SVN倉庫
3、修改版本配置庫檔案
vi /opt/svn/tshop/conf/svnserve.conf
修改後的檔案内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | |
對使用者配置檔案的修改是立即生效的,不必重新開機svn。
4、開始設定passwd使用者賬号資訊
1 2 3 4 5 6 7 8 9 10 11 12 13 | |
5、開始設定authz. 使用者通路權限
vi /data/svn/repos/conf/authz
修改完之後的内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | |
其中,1個使用者組可以包含1個或多個使用者,使用者間以逗号分隔。
說明:
1 2 3 4 5 6 7 8 9 10 11 12 | |
6、注意:
* 權限配置檔案中出現的使用者名必須已在使用者配置檔案中定義。
* 對權限配置檔案的修改立即生效,不必重新開機svn。
使用者組格式:
1 2 3 4 5 6 7 | |
其中,方框号内部分可以有多種寫法:
[/],表示根目錄及以下,根目錄是svnserve啟動時指定的,我們指定為/home/svndata,[/]就是表示對全部版本庫設定權限。
[tshop:/] 表示對版本庫tshop設定權限;
[tshop:/abc] 表示對版本庫tshop中的abc項目設定權限;
[tshop:/abc/aaa] 表示對版本庫tshop中的abc項目的aaa目錄設定權限;
權限主體可以是使用者組、使用者或*,使用者組在前面加@,*表示全部使用者。
權限可以是w、r、wr和空,空表示沒有任何權限。
7、建立啟動svn的使用者
useradd svn
根據提示,為使用者svn設定密碼
允許使用者svn通路版本庫:
chown -R svn:svn /opt/svn
8、啟動svn:
方式一:svnserve -d -r /opt/svn/ #預設的啟動端口号為3690
方式二:su – svn -c “svnserve -d –listen-port 9999 -r /opt/svn/”
其中:
su – svn表示以使用者svn的身份啟動svn;
-d表示以daemon方式(背景運作)運作;
–listen-port 9999表示使用9999端口,可以換成你需要的端口。但注意,使用1024以下的端口需要root權限;
-r /opt/svn 指定根目錄是/opt/svn。
9、檢查是否啟動
netstat -tunlp | grep svn
如果顯示以下資訊說明啟動成功
tcp 0 0 0.0.0.0:9999 0.0.0.0:* LISTEN 10973/svnserve
10、将svn加入到開機啟動
編輯rc.local檔案:vi /etc/rc.d/rc.local
加入如下啟動指令:
/usr/local/svn/bin/svnserve -d –listen-port 9999 -r /opt/svn
11、如果想停止svn,則使用如下指令:
killall svnserve
12、如果想将svn作為服務:
在/etc/rc.d/init.d/目錄下建立名為svn的檔案
并設定權限為755:chmod 755 /etc/rc.d/init.d/svn
編輯svn檔案:vi /etc/rc.d/init.d/svn, 在裡面添加如下代碼:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | |
之後便可以以service svn start(restart/stop)方式啟動SVN。
通過web方式通路svn有很多方法,請參閱配置websvn或配置bsSvnBrowser的方法
用戶端通路
1、下載下傳安裝檔案
window 64位的話下載下傳:TortoiseSVN-1.7.6.22632-x64-svn-1.7.4.msi
window 32位的話下載下傳:TortoiseSVN-1.6.5.16974-win32-svn-1.6.5.msi
具體的下載下傳檔案可以在網上下載下傳下,一找一大堆
2、通過用戶端進行通路
位址如下:
svn://{your-server-ip}:9999/tshop/ 或者 svn://{your-server-ip}:3690/tshop/
注意:
不要在浏覽器中通過http的方式進行通路,如下位址:
http://{your-server-ip}:9999/tshop/ 或者 http://{your-server-ip}:3690/tshop/
那樣肯定是不行的,因為你沒有配置http的服務,上面是安裝獨立的SVN伺服器
--------------------------------------------另轉分割線------------------------------------------------------
Linux(centOS6.5)下SVN的安裝、配置及開機啟動 作為一名“萬能”的碼農,這種活兒你遲早要幹的。----By Jimi沒有bond
準備工作:yum
1.檢查是否已安裝
rpm -qa subversion 如果要解除安裝舊版本:
yum remove subversion
2.安裝
yum install subversion PS:yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql(這是安裝配合Apache的子產品,我暫時還沒做,做了再補上,你可以隻裝subversion,多裝了也無所謂) 3.檢查是否安裝成功
svnserve --version 如果成功會輸出版本号
4.建立倉庫目錄
例如:
mkdir /home/svn/game
5.建立項目
svnadmin create /home/svn/game
6.檢查是否建立成功
cd /home/svn/game
ll 如果成功,game目錄下會多出幾個檔案夾
7.進入conf目錄會看到3個配置檔案,生成的檔案中都有英文注釋說明
示例需求:
策劃組:開策劃、美術讀寫
後端組:開後端讀寫,策劃隻讀
前端組:開前端讀寫,策劃、美術隻讀
美術組:開美術讀寫,策劃隻讀
管理者組:所有的讀寫 authz:使用者權限配置
示例:
[groups]
#管理組
manager = boss
#服務端使用者組
server = server1,server2
#用戶端使用者組
client = client1,client2
#美術組
art = art1,art2
#策劃組
design=design1,design2
[game:/]
manager=rw
[game:/server]
@server=rw
[game:/client]
@client=rw
@design=r
@art=r
[game:/art]
@design=rw
@art=rw
@client=r
[game:/design]
@design=rw
@server=r
@client=r
@art=r passwd:使用者密碼
[users]
boss=123456
server1=123456
server2=123456
client1=123456
client2=123456
art1=123456
art2=123456
design1=123456
design2=123456 svnserve.conf:
#匿名通路者權限
anon-access = none
#驗證使用者權限
auth-access = write
#密碼檔案位址
password-db = /home/svn/game/passwd
#權限檔案位址
authz-db = /home/svn/game/authz
#項目名稱(UUID)
realm =game
8.開放svn端口
預設是3690端口,你也可以用别的。已開啟的跳過這一步
修改
iptables -I INPUT -p tcp --dport 3690 -j ACCEPT
儲存
/etc/rc.d/init.d/iptables save
重新開機
service iptables restart
檢視
/etc/init.d/iptables status
9.啟動SVN服務
svnserve -d -r /home/svn -d:守護程序
-r:svn根目錄
假設服務端IP為192.168.1.100,那麼如下設定後game的通路目錄就為:
svn://192.168.1.100/game
10.安裝用戶端 TortoiseSVN
11.建立子目錄
在用戶端PC上找個目錄,用管理者帳戶從svn://192.168.1.100/game遷出game目錄,分别建立art,design,server,client 4個子目錄,然後送出。
這時候你可以用其他組的帳戶測試下是否正常使用了。
12.安裝好的svn服務端,預設是不會開機自啟動的,每次開機自己啟動會很麻煩,我們可以把它設成開機啟動
首先:編寫一個啟動腳本svn_startup.sh,我放在/root/svn_startup.sh
#!/bin/bash
/usr/bin/svnserve -d -r /home/svn/ 這裡的svnserve路徑保險起見,最好寫絕對路徑,因為啟動的時候,環境變量也許沒加載。
絕對路徑怎麼查?
which svnserve 這裡還有可能碰到一個問題,如果你在windows下建立和編寫的腳步,拿到linux下,用vi或者vim修改後可能會無法執行,這是檔案格式的問題
vi svn_startup.sh
輸入:set ff 回車
如果顯示的結果不是fileformat=unix
再次輸入
set ff=unix
就OK了 然後修改該腳本的執行權限
chmod ug+x svn_startup.sh
或者萬能的
chmod 777 svn_startup.sh 最後:加入自動運作
vi /etc/rc.d/rc.local
在末尾添加腳本的路徑,如:
/root/svn_startup.sh 現在,你可以重新開機一下試試了。 不懂得怎麼确認成功?敗給你了
ps -ef|grep svnserve