Linux 原始碼安裝svn服務
svn要求使用最新穩定版本
svn下載地址:
https://mirrors.aliyun.com/apache/subversion/subversion-1.14.2.tar.gz
依賴 下載地址
apr:https://mirrors.aliyun.com/apache/apr/apr-1.7.0.tar.gz
apr-util:https://mirrors.aliyun.com/apache/apr/apr-util-1.6.1.tar.gz
zlib:http://www.zlib.net/zlib-1.2.12.tar.gz
sqlite-autoconf:https://www.sqlite.org/2020/sqlite-autoconf-3320000.tar.gz
expat:https://github.com/libexpat/libexpat/releases
以上安裝包,上傳到/root/svn下解壓
注意:
/root/svn 因為是原始碼安裝編譯需要指定路徑,換個路徑,下面的命令也要記得改!
編寫需要用到C,要記得安裝gcc和gcc-c++:yum install –y gcc gcc-c++
安裝步驟
1. 安裝apr
#cd apr-1.7.0
# vi configure
找到RM='$RM'修改為RM='$RM -f'(該操作用來解決報錯:cannot remove 'libtoolT':No such file or directory)
編譯
# ./configure prefix=/root/svn/apr-1.7.0
# make & make install
2. 安裝expat
# cd /root/svn/
#cd expat-2.4.8
編譯
# ./configure
# make & make install
3. 安裝apr-util
# cd /root/svn/
#cd apr-util-1.6.1
編譯
# ./configure prefix=/root/svn/apr-util-1.6.1 --with-apr=/usr/local/apr
# make & make install
4. 安裝zlib
# cd /root/svn/
#cd zlib-1.2.12
編譯
# ./configure
# make & make install
5. sqlite-autoconf
將sqlite-autoconf-3320000改名為sqlite-amalgamation並移動到subversion-1.14.2資料夾下
#cd /root/svn
#cd subversion-1.14.2
# cp -r ../sqlite-autoconf-3320000 sqlite-amalgamation
6. 安裝subversion
編譯
#./configure prefix=/root/svn/subversion-1.14.2 --with-apr=/root/svn/apr-1.7.0 --with-apr-util=/root/svn/apr-util-1.6.1 --with-zlib=/root/svn/zlib-1.2.11 --with-lz4=internal --with-utf8proc=internal
# make & make install
7. 配置SVN倉庫
收拾一下/root/svn,將安裝包移走,只留解壓後的安裝包路徑
建立庫目錄
#cd /root/svn
# mkdir -p myproject
新增/建立 配置檔案
# svnadmin create /root/svn/myproject
上面一句不行,用下面一句
# /root/svn/subversion-1.14.2/bin/svnadmin create /root/svn/myproject
進入配置檔案所在目錄
#cd /root/svn/myproject/conf
修改/新增 配置檔案subversion.conf
#vi subversion.conf
新增下面資訊
[general]
#使非授權使用者無法訪問
anon-access = none
#使授權使用者有寫許可權
auth-access = write
#指明密碼檔案路徑
password-db = passwd
#訪問控制檔案
authz-db =authz
#認證名稱空間,subversion會在認證提示裡顯示,並且作為憑證快取的關鍵字
realm = repos
修改passwd檔案用於建立使用者
# vi passwd
新增使用者:使用者名稱1 = 密碼1
修改authz檔案用於管理使用者許可權
#vi authz
新增下面資訊(myproject、admin和user1 就是上面新增的)
格式:
[庫名:目錄]
使用者名稱1 = 許可權
使用者名稱2 = 許可權
例如:
[myproject:/]
admin = rw
user1 =r
修改svnserve.conf,取消下面的遮蔽
8. 啟動服務
#/root/svn/subversion-1.14.2/bin/svnserve -d --listen-port 3690 -r /root/svn
9. 開啟防火牆埠
#firewall-cmd --zone=public --add-port=3690/tcp --permanent
10. 裝上客戶端就可以訪問svn服務
在同網段下的客戶機上安裝svn客戶端遠端連線svn伺服器
地址為:svn://svn伺服器IP地址/myproject
11、驗證
匯入了一個檔案:1.xlsx
伺服器端檢視到有檔案新增,上傳檔案是通過資料處理後儲存在db/revs裡面。但是提交一次svn會自動生成一個版本檔案,這個檔案是經過處理的,同樣也看不到原檔案。