⑴ linux怎麼配置svn伺服器
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
⑵ Linux裡面怎麼搭建SVN
SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統,相較於RCS、CVS,它採用了分支管理系統,它的設計目標就是取代CVS。互聯網上很多版本控制服務已從CVS遷移到Subversion。說得簡單一點SVN就是用於多個人共同開發同一個項目,共用資源的目的.
Linux上部署4個項目的svn操作步驟:搭建SVN
[root@localhost ~]# yum -y install subversion
[root@localhost ~]# svnserve --version
svnserve, version 1.6.11 (r934486)
......
[root@localhost ~]# mkdir -p /a/svn/
[root@localhost ~]# mkdir /a/passwd
[root@localhost ~]# svnserve -d -r /a/svn
[root@localhost ~]# svnadmin create /a/svn/repo1
[root@localhost ~]# svnadmin create /a/svn/repo2
[root@localhost ~]# cp /a/svn/repo1/conf/passwd /a/passwd/
[root@localhost ~]# cp /a/svn/repo1/conf/authz /a/passwd/
[root@localhost ~]# vim /a/svn/repo1/conf/svnserve.conf
[general]
anon-access=none
auth-access=write
password-db = /a/passwd/passwd
authz-db = /a/passwd/authz
realm=1111111111111111
[root@localhost ~]# mv /a/svn/repo2/conf/svnserve.conf
/a/svn/repo2/conf/svnserve.conf.bak
[root@localhost ~]# mv /a/svn/repo3/conf/svnserve.conf
/a/svn/repo3/conf/svnserve.conf.bak
[root@localhost ~]# mv /a/svn/repo4/conf/svnserve.conf
/a/svn/repo4/conf/svnserve.conf.bak
[root@localhost ~]# cp /a/svn/repo1/conf/svnserve.conf
/a/svn/repo2/conf/svnserve.conf
[root@localhost ~]# cp /a/svn/repo1/conf/svnserve.conf
/a/svn/repo3/conf/svnserve.conf
[root@localhost ~]# cp /a/svn/repo1/conf/svnserve.conf
/a/svn/repo4/conf/svnserve.conf
[root@localhost ~]# vim /a/passwd/passwd
[users]
chen=chen123
lu=lu123
zhang=zhang123
wang=wang123
hua=hua123
dong=dong123
[root@localhost ~]# vim /a/passwd/authz
[groups]
java=chen,lu,zhang
ios=wang
web=hua
jishu=dong
[repo1:/]
@java=rw
[repo2:/]
@ios=rw
[repo3:/]
@web=rw
[repo4:/]
@jishu=rw
[root@localhost conf]# chmod 700 /a/passwd/*
[root@localhost ~]# pkill svnserve
[root@localhost ~]# ps -ef |grep svn
root 2405 2106 0 18:59 pts/1 00:00:00 grep svn
[root@localhost ~]# svnserve -d -r /a/svn/
[root@localhost ~]# ps -ef |grep svn
root 2411 1 0 19:00 ? 00:00:00 svnserve -d -r /a/svn/
root 2413 2106 0 19:00 pts/1 00:00:00 grep svn
⑶ 在linux環境下,安裝svn,
./configure是配置信息,作用是告訴系統你這個軟體需要那些軟體做支持,需要安裝在哪裡等
--with-apxs,--with-apr,--with-apr-util,--with-ss,--with-zlib 這些都是裝svn需要用到的軟體,然後你的configure告訴他這些軟體在什麼路徑上
--prefix告訴系統你的svn要裝在什麼目錄
然後配置好以後,通過的話,就可以make,make install安裝了
⑷ 怎麼在linux伺服器上部署svn
1. 安裝SVN伺服器:
檢查是否已安裝
# rpm -qa subversion
安裝SVN伺服器
# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
驗證安裝
# cd /etc/httpd/moles
# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so
查看版本
# svnserve --version
2. 代碼庫創建:
安裝完成後要建立SVN庫
# mkdir -p /opt/svn/repositories
# svnadmin create /opt/svn/repositories
執行後,自動建立repositories庫,查看/opt/svn/repositories文件夾包含了conf,db,format,hooks,locks,README.txt等文件,說明一個SVN庫已經建立。
3. 配置版本庫:
進入上面conf文件夾下,進行配置:
a. 用戶密碼passwd配置:
# vi + passwd //+表示游標放在文件最低端
修改passwd為一下內容:
[users]
# harry = harryssecret
# sally = sallyssecret
zhoulf=123456
b. 許可權控制authz配置:
# vi + authz
設置哪些用戶可以訪問哪些目錄,向authz文件追加以下內容:
[/]
zhoulf=rw //給該用戶訪問所有庫的許可權
或
[repositories:/project] //repository庫的根目錄許可權
zhoulf=rw
/ 表示根目錄及以下,根目錄是svnserve啟動時指定的,我們指定的是/opt/svn;/ 就是指對全部版本庫都具有許可權
repositories:/ 表示對庫repositories的根目錄設置許可權
PS:
* 許可權配置文件中出現的用戶名必須已在用戶配置文件中定義。
* 對許可權配置文件的修改立即生效,不必重啟svn。
c. 服務svnserve.con配置:
# vi + svnserve.conf
添加一下內容:
[general]
#匿名訪問的許可權,可以是read,write,none,默認為read
anon-access=none
#使授權用戶有寫許可權
auth-access=write
#密碼資料庫的路徑
password-db=passwd
#訪問控制文件
authz-db=authz
#認證命名空間,subversion會在認證提示里顯示,並且作為憑證緩存的關鍵字
realm=/opt/svn/repositories
這里注意各標簽不能錯,也不能有重復,不然無法連接。
d. 配置防火牆埠(如果需要):
不一定每個人都需要設置,可以先測試後再看是否需要打開埠
# vi /etc/sysconfig/iptables
添加一下內容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存後重啟防火牆
# service iptables restart
4. 查看:
a. 啟動SVN
# svnserve -d -r /opt/svn/repositories
b. 查看SVN進程
# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories
c. 檢測SVN埠
# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
5. 停止重啟SVN:
# killall svnserve //停止
# svnserve -d -r /opt/svn/repositories // 啟動
6. 測試連接:
使用TortoiseSVN進行測試:
1. SVN服務啟動後,需要使用客戶端測試連接:
客戶端連接地址:svn://192.168.15.231;然後,輸入用戶名密碼;
2. 新建一個文件夾,即本地的庫文件夾,右鍵checkout,將會得到一個隱藏文件夾.svn;
3. 在此文件夾中放入項目內容,然後右鍵點擊commit,就可以上傳本地項目了。
⑸ linux配置SVN,添加用戶,配置用戶組的許可權
用xshell登陸伺服器,cd切換到伺服器中svn的項目倉庫目錄中,然後切換到conf文件中(也可使用xftp),會看到3個文件,分別是
authz、passwd、svnserve.conf
首先編輯svnserve.conf主配置文件,主要是對以下幾項修改
如果後面大家要用到組許可權的話,大家看authz-db = authz 前面應該會有 # 號鍵,記得去掉,這樣才能在下面分配組許可權的時候,才能起作用。
建立svn用戶以及密碼:
配置組:
配置各個組許可權:
保存修改後的svnserve.conf ,passwd,authz 三個文件
然後用下面的命令重啟一下svn
查看svn進程:ps -ef | grep svn 或者 ps aux | grep svn
強制殺死進程:kill -9 進程號
重啟svn(/home/svn為自己的目錄地址):svnserve -d -r /home/svn
最後看看是不是成功了,可以在本地測試一下,看看賬戶是否可用,對應的許可權是不是已經有了,不是該組的用戶應該不能訪問沒有賦予許可權的目錄的
helloword倉庫:
現在對於def項目中,我不想讓產品部的人看到開發部和數據部的目錄下面的數據怎麼辦?可以通過 = 來設置,沒有設置許可權的人統統不能訪問, = 這一句的目的,就是割斷許可權繼承性,使得管理員可以定製某個目錄及其子目錄的許可權,從而完全避開其父目錄許可權設置的影響