linux服務器安裝svn超詳細介紹

#!/bin/sh REPOS=”$1″ REV=”$2″ export LANG=en_US.UTF-8 LOG_PATH=/tmp/svn.log echo `date “+%Y-%m-%d %H:%M:%S”` >> $LOG_PATH echo `whoami`,$REPOS,$REV >> $LOG_PATH /usr/bin/svn co svn://39.102.74.157/test /usr/share/nginx/html/svn/svnrepos/test/ /usr/bin/svn update /usr/share/nginx/html/svn/svnrepos/test/ -username shanzezhao –password 123456 chown -R 777 /usr/share/nginx/html/svn/svnrepos/test/子曰:「學而不思則罔,思而不學則殆」;

centos操作系統下安裝svn:

1.查詢是否安裝 

rpm -qa subversion

  如果想刪除svn運行

yum remove subversion  

 2.如果沒有使用則運行以下操作  

yum -y install  subversion

3.此命令會全自動安裝svn服務器相關服務和依賴,安裝完成會自動停止命令運行

  若需查看svn安裝路徑,可以用以下命令:

rpm -ql subversion

4.創建版本庫目錄(此僅為目錄,為後面創建版本庫提供存放位置)

  本人選擇/usr/share/nginx/html/svn路徑下創建版本庫,當前處於根目錄下,一次性創建如下:

mkdir /usr/share/nginx/html/svn/svnrepos

5.創建svn版本庫

  在上邊建立的路徑基礎上,創建版本庫,命令如下:

svnadmin create  /usr/share/nginx/html/svn/svnrepos/test

(test為你預期的版本庫名稱,可自定義)

6.創建成功後,進入test目錄下

cd /usr/share/nginx/html/svn/svnrepos/test

7.進入目錄,可以看見如下文件信息:

 8.修改配置

cd /usr/share/nginx/html/svn/svnrepos/test/conf

9. cd conf目錄下,一共存放三份重要的配置文件,如下:

    authz:負責賬號權限的管理,控制賬號是否讀寫權限

    passwd:負責賬號和密碼的用戶名單管理

    svnserve.conf:svn服務器配置文件

10.修改這三個文件

vi authz

    只需在末尾添加,無需在文件其他部分修改和添加任何東西,末尾內容如下:

  [\]  

  賬號1 = rw

  賬號1 = rw

   #切記!如果先設置成這樣的[\]的話 服務器後邊svn提交更新的時候報錯 請修改成[/]就好了

  rw表示賦予此賬號可讀寫的權限

11.修改passwd文件信息

vi passwd

  

  賬號密碼文件無需做修改,也是直接將賬號和密碼信息追加到文件中即可,注意格式為:

  賬號 = 密碼

  例如:test= 123456

12.修改svnserve.conf(重要

  #authz-db = authz 如果此條去掉後,雖然svn服務器可以連接,但一直會提示「認證失敗」,注釋掉即可正常

  realm = My First Repository去掉注釋即可,無需做任何修改

  到此,配置已經全部完成,賬號信息已經添加成功

13.防火牆 關閉就可以  如需開啟防火牆的狀態按照一下操作

find / -name iptables

 

   本人的是這個  你們可以搜一下你們的

usr/sbin/iptables -I INPUT -p tcp --dport 3690 -j ACCEPT

/etc/init.d/iptables save

service iptables restart

14.啟動svn服務器

svnserve -d -r /usr/share/nginx/html/svn/svnrepos

啟動成功後,可用ps -aux查看服務啟動是否成功

15.自動更新部署  (搭建svn都不是僅僅為了把代碼存到倉庫,而是同步部署到對應的項目。)

  在 /usr/share/nginx/html/svn/svnrepos/test/hooks目錄的 hooks 裏面有一堆tmpl,今天我們就說一下自動部署post-commit.tmpl,

  tmpl文件是模版文件,我們要用post-commit需要手動複製對應tmpl裏面的內容到新的post-commit裏面。

cd  /usr/share/nginx/html/svn/svnrepos/test/hooks
cp post-commit.tmpl post-commit

  使用ftp軟件打開 剛剛新建的post-commit 文件,清空文件

16.修改post-commit文件

  然後打開文件清空內容,修改為以下代碼:

#!/bin/sh    #其中第一行意思是:用sh來解析這個腳本,因為各種shell的語法有細微的差別

REPOS="$1"

REV="$2"

export LANG=en_US.UTF-8  #第二行是編碼格式:這裡我使用的是UTF-8   有的是GBK格式會報錯!!

LOG_PATH=/tmp/svn.log

echo `date "+%Y-%m-%d %H:%M:%S"` >> $LOG_PATH

echo `whoami`,$REPOS,$REV >> $LOG_PATH   #這是一個操作日誌  可加可不加



/usr/bin/svn co svn://39.102.74.157/test /usr/share/nginx/html/svn/svnrepos/test/     

/usr/bin/svn update /usr/share/nginx/html/svn/svnrepos/test/ --username test --password 123456  

#最後一行/usr/bin/svn 是svn的路徑,不是項目路徑,應該都是一樣的,後半句分別是用戶名、密碼、和項目路徑--username這個比較坑了,前面其實是兩個減號,英文輸入法下的 chown -R 777 /usr/share/nginx/html/svn/svnrepos/test/

 

#!/bin/sh REPOS=”$1″ REV=”$2″ export LANG=en_US.UTF-8 LOG_PATH=/tmp/svn.log echo `date “+%Y-%m-%d %H:%M:%S”` >> $LOG_PATH echo `whoami`,$REPOS,$REV >> $LOG_PATH /usr/bin/svn co svn://39.102.74.157/test /usr/share/nginx/html/svn/svnrepos/test/ /usr/bin/svn update /usr/share/nginx/html/svn/svnrepos/test/ -username shanzezhao –password 123456 chown -R 777 /usr/share/nginx/html/svn/svnrepos/t

 

 

 

 

 

 

 

 

 

 

  

 

Tags: