CentOS搭建SVN
(1)檢視系統版本
1
2
<code>[root@node-005 ~]</code><code># cat /etc/redhat-release</code>
<code>CentOS release 6.8 (Final)</code>
(2)檢視系統全部資訊
<code>[root@node-005 ~]</code><code># uname -a</code>
<code>Linux node-005 2.6.32-642.15.1.el6.x86_64 </code><code>#1 SMP Fri Feb 24 14:31:22 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux</code>
(3)檢視系統核心
<code>[root@node-005 ~]</code><code># uname -r</code>
<code>2.6.32-642.15.1.el6.x86_64</code>
1、修改yum倉庫配置(可不做,我這裡做事保留SVN安裝包)
3
4
<code>[root@node-005 ~]</code><code># sed -i 's#keepcache=0#keepcache=1#g' /etc/yum.conf</code>
<code>[root@node-005 ~]</code><code># grep keepcache /etc/yum.conf #rpm包不删除</code>
<code>keepcache=1</code>
<code>[root@node-005 ~]</code><code># yum -y install subversion</code>
<a href="https://s3.51cto.com/wyfs02/M00/92/34/wKiom1j9XzeTMAlSAAAep6dzBvc799.png" target="_blank"></a>
2、查找查找SVN安裝包
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<code>[root@node-005 ~]</code><code># find / -name subversion-1.6.11-15.el6_7.x86_64.rpm</code>
<code>/var/cache/yum/x86_64/6/base/packages/subversion-1</code><code>.6.11-15.el6_7.x86_64.rpm</code>
<code>[root@node-005 ~]</code><code># tree /var/cache/yum/x86_64/6/base/packages/</code>
<code>/var/cache/yum/x86_64/6/base/packages/</code>
<code>├── apr-1.3.9-5.el6_2.x86_64.rpm</code>
<code>├── apr-util-1.3.9-3.el6_0.1.x86_64.rpm</code>
<code>├── libproxy-0.3.0-10.el6.x86_64.rpm</code>
<code>├── libproxy-bin-0.3.0-10.el6.x86_64.rpm</code>
<code>├── libproxy-python-0.3.0-10.el6.x86_64.rpm</code>
<code>├── neon-0.29.3-3.el6_4.x86_64.rpm</code>
<code>├── pakchois-0.4-3.2.el6.x86_64.rpm</code>
<code>├── perl-URI-1.40-2.el6.noarch.rpm</code>
<code>├── subversion-1.6.11-15.el6_7.x86_64.rpm</code>
<code>└── tree-1.5.3-3.el6.x86_64.rpm</code>
<code> </code>
<code>0 directories, 10 files</code>
<code>[root@node-005 packages]</code><code># rpm -aq subversion</code>
<code>subversion-1.6.11-15.el6_7.x86_64</code>
1、建立SVN版本庫根目錄(svndata)及密碼權限目錄(svnpasswd)
<code>[root@node-005 ~]</code><code># mkdir -p /application/svndata</code>
<code>[root@node-005 ~]</code><code># mkdir -p /application/svnpasswd</code>
<code>[root@node-005 ~]</code><code># tree /application/svn*</code>
<code>/application/svndata</code>
<code>/application/svnpasswd</code>
<code>0 directories, 0 files</code>
2、啟動SVN服務指定服務的SVN根目錄
<code>[root@node-005 ~]</code><code># svnserve -d -r /application/svndata/ # -d </code>
<code>背景運作;-r 指定運作目錄</code>
# 注:檢視svnserver指令幫助
19
20
21
22
23
24
25
<code>[root@node-005 ~]</code><code># svnserve --help</code>
<code>用法: svnserve [-d | -i | -t | -X] [options]</code>
<code>有效選項:</code>
<code> </code><code>-d [--daemon] : 背景模式</code>
<code> </code><code>-i [--inetd] : inetd 模式</code>
<code> </code><code>-t [--tunnel] : 隧道模式</code>
<code> </code><code>-X [--listen-once] : 監聽一次方式(調試用)</code>
<code> </code><code>-r [--root] ARG : 服務的根目錄</code>
<code> </code><code>-R [--</code><code>read</code><code>-only] : 強制隻讀;覆寫版本庫配置檔案</code>
<code> </code><code>--config-</code><code>file</code> <code>ARG : 從檔案 ARG 讀取配置</code>
<code> </code><code>--listen-port ARG : 監聽端口</code>
<code> </code><code>[方式: daemon, listen-once]</code>
<code> </code><code>--listen-host ARG : 監聽主機名稱或IP位址</code>
<code> </code><code>-T [--threads] : 使用線程代替程序 [方式: daemon]</code>
<code> </code><code>--foreground : 在前台運作(調試用)</code>
<code> </code><code>[方式: daemon]</code>
<code> </code><code>--log-</code><code>file</code> <code>ARG : svnserve 日志檔案</code>
<code> </code><code>--pid-</code><code>file</code> <code>ARG : 寫程序 PID 到檔案 ARG</code>
<code> </code><code>--tunnel-user ARG : 隧道使用者名(預設是目前UID對應的使用者名)</code>
<code> </code><code>[方式: tunnel]</code>
<code> </code><code>-h [--help] : 顯示本幫助</code>
<code> </code><code>--version : 顯示程式版本資訊</code>
3、檢視服務是否啟動
(1)檢視程序
<code>[root@node-005 ~]</code><code># ps -ef |grep svn</code>
<code>root 67481 0 15:25 ? 00:00:00 svnserve -d -r </code><code>/application/svndata/</code>
<code>root 67526658 0 15:34 pts</code><code>/0</code> <code>00:00:00 </code><code>grep</code> <code>svn</code>
(2)檢視端口
<code>[root@node-005 ~]</code><code># netstat -lntup</code>
<code>Active Internet connections (only servers)</code>
<code>Proto Recv-Q Send-Q Local AddressForeign AddressState PID</code><code>/Program</code> <code>name </code>
<code>tcp 00 0.0.0.0:36900.0.0.0:* LISTEN 6748</code><code>/svnserve</code>
<code>tcp 00 0.0.0.0:3306 0.0.0.0:* LISTEN 5217</code><code>/mysqld</code>
<code>tcp 00 0.0.0.0:210.0.0.0:* LISTEN 2160</code><code>/vsftpd</code>
<code>tcp 00 0.0.0.0:220.0.0.0:* LISTEN 5581</code><code>/sshd</code>
<code>tcp 00 127.0.0.1:6310.0.0.0:* LISTEN 1315</code><code>/cupsd</code>
<code>tcp 00 127.0.0.1:250.0.0.0:* LISTEN 1905</code><code>/sendmail</code>
<code>tcp 0 0 :::80 :::* LISTEN 1925</code><code>/httpd</code>
<code>tcp 00 :::22:::* LISTEN 5581</code><code>/sshd</code>
<code>tcp 00 ::1:631:::* LISTEN 1315</code><code>/cupsd</code>
<code>udp 00 0.0.0.0:6310.0.0.0:*1315</code><code>/cupsd</code>
(3):已知端口号檢視程序
<code>[root@node-005 ~]</code><code># lsof -i tcp:3690</code>
<code>COMMAND PID USERFD TYPE DEVICE SIZE</code><code>/OFF</code> <code>NODE NAME</code>
<code>svnserve 6748 root 3u IPv448866 0t0 TCP *:svn (LISTEN)</code>
<code>[root@node-005 ~]</code><code># netstat -lntup |grep 3690</code>
<code>tcp 00 0.0.0.0:36900.0.0.0:* LISTEN 6748</code><code>/svnserve</code>
1、新的Subversion項目
(1)建立一個新的Subversion項目(版本庫)
<code>[root@node-005 ~]</code><code># svnadmin create /application/svndata/sadoc</code>
<code>[root@node-005 ~]</code><code># ll /application/svndata/sadoc/</code>
<code>總用量 24</code>
<code>drwxr-xr-x 2 root root 4096 4月 20 15:47 conf</code>
<code>drwxr-sr-x 6 root root 4096 4月 20 15:47 db</code>
<code>-r--r--r-- 1 root root 2 4月 20 15:47 </code><code>format</code>
<code>drwxr-xr-x 2 root root 4096 4月 20 15:47 hooks</code>
<code>drwxr-xr-x 2 root root 4096 4月 20 15:47 locks</code>
<code>-rw-r--r-- 1 root root 229 4月 20 15:47 README.txt</code>
(2)檢視幫助
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
<code>[root@node-005 ~]</code><code># svnadmin --help</code>
<code>一般用法: svnadmin SUBCOMMAND REPOS_PATH [ARGS & OPTIONS ...]</code>
<code>使用“svnadmin help <subcommand>” 得到子指令的幫助資訊。</code>
<code>使用“svnadmin --version”檢視程式的版本号和檔案系統子產品。</code>
<code>可用的子指令:</code>
<code> </code><code>crashtest</code>
<code> </code><code>create</code>
<code> </code><code>deltify</code>
<code> </code><code>dump</code>
<code> </code><code>help (?, h)</code>
<code> </code><code>hotcopy</code>
<code> </code><code>list-dblogs</code>
<code> </code><code>list-unused-dblogs</code>
<code> </code><code>load</code>
<code> </code><code>lslocks</code>
<code> </code><code>lstxns</code>
<code> </code><code>pack</code>
<code> </code><code>recover</code>
<code> </code><code>rmlocks</code>
<code> </code><code>rmtxns</code>
<code> </code><code>setlog</code>
<code> </code><code>setrevprop</code>
<code> </code><code>setuuid</code>
<code> </code><code>upgrade</code>
<code> </code><code>verify</code>
<code>[root@node-005 ~]</code><code># svnadmin help create</code>
<code>create: 用法: svnadmin create REPOS_PATH</code>
<code>在 REPOS_PATH 建立一個新的空版本庫。</code>
<code> </code><code>--bdb-txn-nosync : 在送出事務時禁用fsync [BDB]</code>
<code> </code><code>--bdb-log-keep : 禁用自動删除日志檔案 [BDB]</code>
<code> </code><code>--config-</code><code>dir</code> <code>ARG : 從目錄 ARG 讀取使用者配置檔案</code>
<code> </code><code>--fs-</code><code>type</code> <code>ARG : 版本庫類型: “fsfs”(預設)或“bdb”</code>
<code> </code><code>--pre-1.4-compatible : 使用與1.4之前版本相容的格式</code>
<code> </code><code>--pre-1.5-compatible : 使用 Subversion 1.5 之前版本的格式</code>
<code> </code><code>--pre-1.6-compatible : 使用與 1.6 之前版本相容的格式</code>
2、倉庫使用者權限配置
(1)配置允許使用者solin讀寫通路
①備份配置檔案
<code>[root@node-005 ~]</code><code># cd /application/svndata/sadoc/conf/</code>
<code>[root@node-005 conf]</code><code># /bin/cp svnserve.conf svnserve.conf.solin$(date +%F)</code>
②過濾要修改的配置
<code>[root@node-005 conf]</code><code># egrep "\-access|\-db =" svnserve.conf</code>
<code># anon-access = read</code>
<code># auth-access = write</code>
<code># password-db = passwd</code>
<code># authz-db = authz</code>
③修改後的參數(可以用sed替換,也可用vi/vim直接修改)
<code># anon-access = none #不允許匿名通路</code>
<code># auth-access = write #允許可寫</code>
<code># password-db = /application/svnpasswd/passwd #密碼資料庫,存放SVN嗎</code>
<code># authz-db = /application/svnpasswd/authz #控制權限的資料庫</code>
<a href="https://s2.51cto.com/wyfs02/M01/92/34/wKiom1j9X1mD0EQxAACEc0dTG1I108.png" target="_blank"></a>
另:修改後對比
<code>anon-access = none</code>
<code>auth-access = write</code>
<code>password-db = </code><code>/application/svnpasswd/passwd</code>
<code>authz-db = </code><code>/application/svnpasswd/authz</code>
<code>[root@node-005 conf]</code><code># diff svnserve.conf.solin2017-04-20 svnserve.conf</code>
<code>12a13</code>
<code>> anon-access = none</code>
<code>13a15</code>
<code>> auth-access = write</code>
<code>20a23</code>
<code>> password-db = </code><code>/application/svnpasswd/passwd</code>
<code>27a31</code>
<code>> authz-db = </code><code>/application/svnpasswd/authz</code>
3、配置authz、passwd證書檔案
(1)把密碼證書檔案模闆複制到相關目錄并修改檔案權限
<code>[root@node-005 conf]</code><code># cp authz passwd /application/svnpasswd/</code>
<code>[root@node-005 conf]</code><code># ll /application/svnpasswd/</code>
<code>總用量 8</code>
<code>-rw-r--r-- 1 root root 1080 4月 20 17:22 authz</code>
<code>-rw-r--r-- 1 root root 309 4月 20 17:22 </code><code>passwd</code>
<code>[root@node-005 conf]</code><code># chmod 700 /application/svnpasswd/*</code>
<code>-rwx------ 1 root root 1080 4月 20 17:22 authz</code>
<code>-rwx------ 1 root root 309 4月 20 17:22 </code><code>passwd</code>
(2)authz、passwd的配置
<code>vi</code> <code>/application/svnpasswd/authz</code>
<code>添加如下:</code>
<code>[</code><code>groups</code><code>]</code>
<code>bd_sa = solin,</code><code>test</code>
<code># [/foo/bar]</code>
<code>[sadoc:/]</code>
<code># [repository:/baz/fuz]</code>
<code>@bd_sa = rw</code>
<code>test1 = r</code>
<a href="https://s1.51cto.com/wyfs02/M00/92/34/wKiom1j9X3CTF0B-AAAj5kplAUI717.png-wh_500x0-wm_3-wmp_4-s_871058893.png" target="_blank"></a>
<code>vi</code> <code>/application/svnpasswd/passwd</code>
<code>[</code><code>users</code><code>]</code>
<code>solin = bdyun</code>
<code>test</code> <code>= bdyun</code>
<a href="https://s4.51cto.com/wyfs02/M02/92/34/wKiom1j9X3rQj2tiAAAhtvu9Lao587.png" target="_blank"></a>
4、重新開機SVN
<code>[root@node-005 conf]</code><code># pkill svnserve</code>
<code>[root@node-005 conf]</code><code># ps -ef |grep svn</code>
<code>root 68326658 0 17:52 pts</code><code>/0</code> <code>00:00:00 </code><code>grep</code> <code>svn</code>
<code>[root@node-005 conf]</code><code># svnserve -d -r /application/svndata/</code>
<code>root 68341 0 17:52 ? 00:00:00 svnserve -d -r </code><code>/application/svndata/</code>
<code>root 68366658 0 17:52 pts</code><code>/0</code> <code>00:00:00 </code><code>grep</code> <code>svn</code>
1、官網下載下傳TortoisSVN
https://tortoisesvn.net/downloads.html
<a href="https://s4.51cto.com/wyfs02/M00/92/33/wKioL1j9X6jT2dmFAAHDmrjBZZ0993.png" target="_blank"></a>
2、安裝
(1)下載下傳軟體後,輕按兩下程式進行安裝,點選“Next”,我這裡選擇的試64位SVN;
<a href="https://s1.51cto.com/wyfs02/M01/92/33/wKioL1j9X7XAjT9yAABlcIatRkY027.png" target="_blank"></a>
<a href="https://s1.51cto.com/wyfs02/M02/92/34/wKiom1j9X8bgZtsUAADdCFuuYh4390.png" target="_blank"></a>
(2)在許可證協定頁面,選擇“I Accept the terms in the License Agreement”,點選“Next”;
<a href="https://s1.51cto.com/wyfs02/M01/92/34/wKiom1j9X9WyW49qAACT0Ysvu1U817.png" target="_blank"></a>
(3)在自定義選項頁面,可以選擇安裝目錄,也可以直接點選“Next”進行安裝;
<a href="https://s4.51cto.com/wyfs02/M00/92/34/wKiom1j9X-XxRDDlAAB_MrWvAaI531.png" target="_blank"></a>
(4)點選“Install”開始安裝;
<a href="https://s5.51cto.com/wyfs02/M02/92/33/wKioL1j9YBHS38qhAABk7Cyw8CU374.png" target="_blank"></a>
(5)安裝完成後,點選“Finsh”;
<a href="https://s1.51cto.com/wyfs02/M00/92/34/wKiom1j9YBuRp36RAADht-64kQg250.png" target="_blank"></a>
連接配接的方式,賬戶及密碼
svn;//192.168.119.91/sadoc #你自己的伺服器IP
使用者名:solin
密碼:bdyun
<a href="https://s1.51cto.com/wyfs02/M00/92/34/wKiom1j9YOGxMRuZAABLdQUJ1dM233.png" target="_blank"></a>
2、設定位址,分别輸入SVN位址和本地位址,點選OK繼續
<a href="https://s3.51cto.com/wyfs02/M01/92/33/wKioL1j9YO3RJfndAAAqdU75QA0977.png" target="_blank"></a>
3、輸入使用者名和密碼,點選OK繼續
<a href="https://s3.51cto.com/wyfs02/M00/92/33/wKioL1j9YPjzTxYzAAAX4_-1xF4185.png" target="_blank"></a>
4、成功連接配接(可以感覺個人喜好現在語言,官網下載下傳語言包,下面圖檔是我漢化後的截圖)
(1)漢化下載下傳位址:https://tortoisesvn.net/downloads.html
<a href="https://s1.51cto.com/wyfs02/M01/92/33/wKioL1j9YQPg45HMAACs7QSS8iI040.png" target="_blank"></a>
(2)SVN checkout完成
<a href="https://s1.51cto.com/wyfs02/M01/92/33/wKioL1j9YQ7yxq3EAABBZXnOuYU328.png" target="_blank"></a>
5、在test_svn目錄中建立檔案test.txt,送出
<a href="https://s2.51cto.com/wyfs02/M02/92/33/wKioL1j9YRqBDA6_AABK1rJE5wA109.png" target="_blank"></a>
6、填寫送出資訊
<a href="https://s1.51cto.com/wyfs02/M00/92/34/wKiom1j9YSbzdNRPAABheWJIIz8769.png" target="_blank"></a>
7、送出完成,版本變成1
<a href="https://s4.51cto.com/wyfs02/M00/92/33/wKioL1j9YTXCAys1AABLgj2Gkyo862.png" target="_blank"></a>
到這裡SVN服務搭建及用戶端測試就完全結束了。
本文轉自 運維小當家 51CTO部落格,原文連結:http://blog.51cto.com/solin/1918718,如需轉載請自行聯系原作者