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

窮帥哥依然縱橫一方發表於2021-07-27

#!/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

 

 

 

 

 

 

 

 

 

 

  

 

相關文章