Centos7 SVN安裝最新版本,Linux安裝svn最新版本


 

================================

©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 202214: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/


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM