================================
©Copyright 蕃薯耀 2022-01-14
https://www.cnblogs.com/fanshuyao/
一、查看有沒有安裝svn
rpm -qa subversion
二、yum安裝svn服務端(非最新版本)
Svn yum命令直接安裝
直接安裝不是最新版本的svn,只是:1.7.14版本的,當前最新版本是:svn-1.14,最新版本安裝請跳過此步看下面
yum -y install subversion
執行結果:
已安裝: subversion.x86_64 0:1.7.14-16.el7 作為依賴被安裝: apr.x86_64 0:1.4.8-7.el7 apr-util.x86_64 0:1.5.2-6.el7 subversion-libs.x86_64 0:1.7.14-16.el7 完畢!
三、svn安裝最新版本
1、查看Centos系統適合的版本
http://opensource.wandisco.com/centos/
如果是Centos7,則是:
http://opensource.wandisco.com/centos/7/
適合的版本如下: Name↓ Last Modified: Size: Type: svn-1.7/ 2014-Aug-07 08:16:37 - Directory svn-1.8/ 2014-Aug-07 08:16:37 - Directory svn-1.9/ 2014-Aug-07 08:16:37 - Directory svn-1.10/ 2018-Apr-25 12:31:52 - Directory svn-1.11/ 2018-Nov-22 09:45:38 - Directory svn-1.12/ 2019-Mar-04 09:24:57 - Directory svn-1.13/ 2019-Dec-09 08:20:28 - Directory svn-1.14/ 2021-Feb-24 06:00:18 - Directory
2、新增svn的最新版本庫
vi /etc/yum.repos.d/wandisco-svn.repo
wandisco-svn.repo 文件添加的內容:
此處使用svn-1.14,即當前最新版本
[WandiscoSVN] name=Wandisco SVN Repo baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.14/RPMS/$basearch/ enabled=1 gpgcheck=0
3、卸載svn舊版本
如果安裝有舊版本,先卸載
yum remove subversion
刪除執行結果:
刪除: subversion.x86_64 0:1.7.14-16.el7
接着,清理安裝緩存
yum clean all
4、安裝最新版本的svn
yum -y install subversion
執行結果:
已安裝: subversion.x86_64 0:1.14.1-1 作為依賴被安裝: libserf.x86_64 0:1.3.9-1.el7 替代: subversion-libs.x86_64 0:1.7.14-16.el7
5、查看svn版本
svnserve --version
執行結果:
[root@host-100 ~]# svnserve --version svnserve,版本 1.14.1 (r1886195) 編譯於 Jan 6 2022,14:30:34 在 x86_64-redhat-linux-gnu
svn當前最新版本:1.14.1
四、查看svn安裝位置
which svnserve
執行結果:
/usr/bin/svnserve
五、創建svn 項目倉庫目錄
svnRepos為自定義目錄
cd /
mkdir -p /var/svnRepos
也可以多增加一層文件夾:
mkdir -p /var/svnRepos/項目名稱
六、svn項目初始化
如果不是root用戶,命令前面要使用sudo
#修改目錄擁有者 sudo chown -R java:java /var/svnRepos #svn初始化 svnadmin create /var/svnRepos
執行結果:
[java@host-100 var]$ svnadmin create /var/svnRepos [java@host-100 conf]$ cd /var/svnRepos [java@host-100 svnRepos]$ ll 總用量 8 drwxrwxr-x. 2 java java 76 1月 7 10:17 conf drwxrwsr-x. 6 java java 233 1月 7 10:17 db -r--r--r--. 1 java java 2 1月 7 10:17 format drwxrwxr-x. 2 java java 231 1月 7 10:17 hooks drwxrwxr-x. 2 java java 41 1月 7 10:17 locks -rw-rw-r--. 1 java java 246 1月 7 10:17 README.txt
conf 文件夾,存放配置文件
conf 文件夾下的三個重要文件:
authz:權限控制文件
passwd:帳號密碼文件
svnserve.conf:SVN服務配置文件,配置賬號和權限文件
七、svn配置用戶和密碼
編輯passwd文件:
cd /var/svnRepos/conf vi passwd
配置格式是:用戶名=密碼
如: [users] # harry = harryssecret # sally = sallyssecret readUser=123456 appUser=123456
八、svn配置權限
編輯authz文件:
vi authz
在文件最下面增加用戶和權限
格式是:用戶名=權限
權限:
r:表示讀權限
w:表示寫權限
rw:表示可讀可寫權限
[/]:表示是svn根目錄,[/]可以改為具體的文件夾目錄,限制某些用戶對某些文件夾的讀寫權限
示例: [/] appUser=rw *= [/aa] readUser=r appUser=rw *=
最后一行*=表示其他用戶無任何權限
另外一種配置方法,是使用用戶分組(未測試)
[groups] appGroup=appUser readGroup= readUser [/] @appGroup=rw @readGroup=r *=
九、svn配置服務文件
vi svnserve.conf
在[general]下面增加下面的配置(也可以在配置上打開相應的選項,但# 后面的空格要刪除):
#在[general]模塊最下面增加的內容 #匿名訪問的權限,可以是read,write,none,設置為none表示不能讀寫 anon-access=none #授權用戶可寫 auth-access=write #密碼數據庫配置 password-db=passwd #訪問控制數據庫配置 authz-db=authz #存儲庫的身份驗證域。 #如果兩個存儲庫具有相同的身份驗證域,則它們應該 #擁有相同的密碼數據庫,反之亦然。默認領域是存儲庫的uuid。 #此處填寫路徑,這樣就不會有相同的 #就是連接時提示的名稱,如/var/svnRepos可修改為:我的svn倉庫 realm=/var/svnRepos #強制用戶名大小寫,默認是否 #lower,則全部變成小寫;upper則全部變成大寫;none則比較大小寫。 # force-username-case = none
十、svn啟動
查看svn是否啟動:
ps -ef | grep svnserve
啟動有權限問題,在下面有解決方案。
啟動svn(端口默認為3690)
svnserve -d -r /var/svnRepos
修改端口啟動:
svnserve -d -r /var/svnRepos --listen-port=9369
指定配置文件啟動:
svnserve -d -r /var/svnRepos --listen-port=9369 --config-file=/var/svnRepos/conf/svnserve.conf
-d:表示守護進程
-r:svn根目錄
--listen-port=9369:指定端口
--config-file:指定配置文件
查看svn進程
ps -ef | grep svnserve
殺掉svn進程
kill -9 [pid]
十一、打開svn防火牆端口
svn默認是3690端口
打開telnet服務:
firewall-cmd --permanent --add-service=telnet
開放端口:
默認的端口 firewall-cmd --permanent --zone=public --add-port=3690/tcp 自定義的端口 firewall-cmd --permanent --zone=public --add-port=9369/tcp
讓端口生效:
firewall-cmd --reload
查看防火牆所有開放的端口
firewall-cmd --zone=public --list-ports
其它命令:
查看防火牆狀態: firewall-cmd --state 關閉防火牆 systemctl stop firewalld.service 禁止防火牆開機啟動 systemctl disable firewalld.service
十二、svn設置開機啟動
增加svnserve.service配置文件
vi /lib/systemd/system/svnserve.service
文件增加的內容:
[Unit] Description=SVN Server service After=network.target [Service] Type=forking ExecStart= /usr/bin/svnserve -d -r /var/svnRepos --listen-port=9369 --config-file=/var/svnRepos/conf/svnserve.conf Restart=on-abort [Install] WantedBy=multi-user.target
設置開機啟動
sudo systemctl enable svnserve.service
執行結果:
[java@host-100 system]$ sudo systemctl enable svnserve.service Created symlink from /etc/systemd/system/multi-user.target.wants/svnserve.service to /usr/lib/systemd/system/svnserve.service.
其它命令
啟動svn
systemctl start svnserve.service
停止svn
systemctl stop svnserve.service
重啟svn
systemctl restart svnserve.service
十三、svn啟動時權限不夠解決方案
查看svn服務狀態:
systemctl status svnserve.service
svnserve[166290]: svnserve: E000013: 不能打開文件“/var/svnRepos/conf/svns…限不夠
[root@host-100 /]# systemctl status svnserve.service ● svnserve.service - SVN Server service Loaded: loaded (/usr/lib/systemd/system/svnserve.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since 五 2022-01-07 11:07:11 CST; 11s ago Process: 166290 ExecStart=/usr/bin/svnserve -d -r /var/svnRepos --listen-port=9369 --config-file=/var/svnRepos/conf/svnserve.conf (code=exited, status=1/FAILURE) 1月 07 11:07:11 host-100 systemd[1]: Starting SVN Server service... 1月 07 11:07:11 host-100 svnserve[166290]: svnserve: E000013: 不能打開文件“/var/svnRepos/conf/svns…限不夠 1月 07 11:07:11 host-100 systemd[1]: svnserve.service: control process exited, code=exited status=1 1月 07 11:07:11 host-100 systemd[1]: Failed to start SVN Server service. 1月 07 11:07:11 host-100 systemd[1]: Unit svnserve.service entered failed state. 1月 07 11:07:11 host-100 systemd[1]: svnserve.service failed. Hint: Some lines were ellipsized, use -l to show in full.
svn啟動權限不夠解決方案
文件/etc/selinux/config先要添加可寫權限
chmod -v u+w /etc/selinux/config
編輯文件:
vi /etc/selinux/config
修改(需要重啟服務器)
SELINUX=enforcing
為:
SELINUX=disabled
收回文件/etc/selinux/config可寫權限
chmod -v u-w /etc/selinux/config chmod -R 777 svnserve.conf
重啟服務器
reboot -f
十四、svn客戶端tortoisesvn下載和svn檢出
下載windows svn客戶端
tortoisesvn下載地址
https://tortoisesvn.net/downloads.html
下載地址再下面一點,有中文語言安裝包
安裝完成后,新建一個文件夾,在文件夾中,【鼠標】右鍵,有一個【SVN 檢出】命令,可檢出項目。
輸入svn地址:
端口默認為3690,我修改成了9369,記得修改成自己的端口
svn://ip地址:端口 示例: svn://192.168.1.10:9369/
十五、Eclise svn subclipse插件下載和安裝
Eclise svn插件 subclipse 要求:
Requirements - current master Eclipse 4.2 (Juno) or later Java 8 or later Subversion 1.10 - 1.14 JavaHL client libraries
subclipse下載地址:
https://github.com/subclipse/subclipse/releases
wiki 文檔地址:
https://github.com/subclipse/subclipse/wiki
只下載subclipse-4.3.3.zip安裝后沒有JavaHL,會報錯,建議在線安裝,或者兩個一起下載安裝。
(時間寶貴,分享不易,捐贈回饋,^_^)
================================
©Copyright 蕃薯耀 2022-01-14
https://www.cnblogs.com/fanshuyao/