⑴ linux 搭建SVN伺服器(C/S模式)
Linux System Environment
一、配置阿里雲yum源和epel源
提示: 阿里雲yum源官網 https://developer.aliyun.com/mirror/
二、yum安裝SVN軟體
三、創建SVN版本庫目錄
提示: 自定義此目錄為版本庫目錄,為後面創建版本庫提供存位置
四、創建SVN版本庫
五、創建用戶並設置用戶許可權
六、配置SVN伺服器配置文件
提示: 每一項目參數前面都不要留空格,否則會報錯
七、關閉防火牆及SElinux
提示: 防火牆可以不關閉,放行SVN埠(SVN默認埠3690)
八、啟動SVN服務
九、測試SVN客戶端訪問SVN服務
1、Windows使用TortoiseSVN 客戶端測試
輸入 svn://192.168.201.56:3690/xiaoming (xiaoming是自定義的版本庫名稱)
2、Linux SVN客戶端操作命令
⑵ svn怎麼在linux伺服器建庫
1、安裝svn服務
# yuminstall subversion
2、新建一個目錄用於存儲SVN所有文件
# mkdir /home/svn
3、在上面創建的文件夾中為項目 project_1 創建一個版本倉庫
# svnadmin create /home/svn/project_1
執行完這一步,/home/svn中將存在project_1文件夾,這個項目的配置都在 /home/svn/project_1/conf 中
4、為項目配置許可權
(1)svnserve.conf 是主配置文件
# vi/home/svn/project_1/conf/svnserve.conf
anon-access=read #匿名可讀
auth-access=write #驗證用戶可讀寫
password-db=passwd #指向驗證用戶名密碼的數據文件 passwd ,請看下文配置
auth-db=authz #指向驗證用戶的許可權配置文件 authz ,請看下文配置
注意:每一行前方不能有空格,否則會出現 Option expected錯誤!
(2)passwd用戶名密碼配置文件
# vi/home/svn/project_1/conf/passwd
[users]
manager1=123456 #每一行都要是「用戶名=密碼」的格式
manager2=123123
manager3=888888
(3)authz用戶許可權配置文件
# vi/home/svn/project_1/conf/authz
[groups]
managers=manager1,manager2 #定義群組 managers 包含 manager1 和 manager2 兩個用戶
[/]
@managers=rw #定義群組 managers 有讀寫許可權
manager3=r #定義 manager3 有讀許可權
*= #以上沒有定義的用戶都沒有任何許可權
⑶ linux配置的svn,上傳文件總是在root目錄下,怎麼改為我自定義的目錄
1、需要在伺服器上安裝svn伺服器端,啟動svn服務,並創建一個svn庫;
2、將當前的default文件夾變成新建的svn庫的工作副本(客戶端存放數據的文件夾),具體操作:將當前default文件夾下的內容import到新建的svn庫中,然後再清空default,然後再將svn庫中的內容checkout到default;
3、使用svn的post-commit鉤子(這個鉤子是在每次成功commit後被SVN伺服器自動調用的),編輯這個鉤子,內容就是svn update 文件夾default,這樣每次commit成功後就會自動更新default文件夾;
4、在你自己的電腦上checkout那個svn庫,然後你就可以從本地commit,然後伺服器端就自動更新default文件夾了。
⑷ windows下svn遷移到linux
將windows上svn遷移到linux上
實現svn方式和http方式訪問
進入conf目錄
authz :負責test3庫的賬號許可權管理,控制賬號是否讀寫許可權
passwd :負責test3庫的賬號和密碼管理,注意密碼是明文的
svnserve.conf :svn伺服器配置文件
示例:
啟動:
埠:3690 注意打開防火牆
訪問:
svn://192.168.1.206:3690/test3
用mod_dav_svn模塊實現Apache服務進行訪問svn倉庫,mod_dav_svn是Apache和svn之間的介面
SVNParentPath /svn/svndir
指如果有多個版本庫建議使用SVNParentPath不使用SVNPath,/svn/svndir 版本庫位置
AuthUserFile /svn/svndir/passwd
指後面使用apache的htpasswd創建的用戶名密碼
AuthzSVNAccessFile /svn/svndir/authz
指許可權文件
創建用戶並設置密碼
此時可以通過
http://192.168.1.206/svn/test3
在瀏覽器中輸入用戶名密碼訪問
直接將windows下Repositories目錄下的數據打包遷移到linux下的Repositories即可訪問,但是用戶名和密碼不可以遷移,需要重建
1 注意許可權為問題,如果/svn/svndir屬主不是apache,會一直訪問拒絕訪問
2 svn協助與http協議
svn協議,用於客戶端使用svn://方式訪問版本庫,而mod_authz_svn模塊讓客戶端可通過Apache訪問版本庫,它們分別使用不同的服務:svnserve、httpd進行訪問。由於用戶、組許可權不同,許可權管理方式也不相同,因此,不建議同時啟動兩種訪問方式。
而易用性,管理方便的角度來分析,Apache以,mod_authz_svn模塊的方式訪問版本庫會更多人選擇。(mod_authz_svn方式,使用80埠訪問,並且提供https等加密傳輸,用於用戶信息驗證的密碼保存方式不是明文的)
⑸ 怎麼在linux伺服器上部署svn
1. 安裝SVN伺服器:
檢查是否已安裝
# rpm -qa subversion
安裝SVN伺服器
# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql
驗證安裝
# cd /etc/httpd/moles
# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so
查看版本
# svnserve --version
2. 代碼庫創建:
安裝完成後要建立SVN庫
# mkdir -p /opt/svn/repositories
# svnadmin create /opt/svn/repositories
執行後,自動建立repositories庫,查看/opt/svn/repositories文件夾包含了conf,db,format,hooks,locks,README.txt等文件,說明一個SVN庫已經建立。
3. 配置版本庫:
進入上面conf文件夾下,進行配置:
a. 用戶密碼passwd配置:
# vi + passwd //+表示游標放在文件最低端
修改passwd為一下內容:
[users]
# harry = harryssecret
# sally = sallyssecret
zhoulf=123456
b. 許可權控制authz配置:
# vi + authz
設置哪些用戶可以訪問哪些目錄,向authz文件追加以下內容:
[/]
zhoulf=rw //給該用戶訪問所有庫的許可權
或
[repositories:/project] //repository庫的根目錄許可權
zhoulf=rw
/ 表示根目錄及以下,根目錄是svnserve啟動時指定的,我們指定的是/opt/svn;/ 就是指對全部版本庫都具有許可權
repositories:/ 表示對庫repositories的根目錄設置許可權
PS:
* 許可權配置文件中出現的用戶名必須已在用戶配置文件中定義。
* 對許可權配置文件的修改立即生效,不必重啟svn。
c. 服務svnserve.con配置:
# vi + svnserve.conf
添加一下內容:
[general]
#匿名訪問的許可權,可以是read,write,none,默認為read
anon-access=none
#使授權用戶有寫許可權
auth-access=write
#密碼資料庫的路徑
password-db=passwd
#訪問控制文件
authz-db=authz
#認證命名空間,subversion會在認證提示里顯示,並且作為憑證緩存的關鍵字
realm=/opt/svn/repositories
這里注意各標簽不能錯,也不能有重復,不然無法連接。
d. 配置防火牆埠(如果需要):
不一定每個人都需要設置,可以先測試後再看是否需要打開埠
# vi /etc/sysconfig/iptables
添加一下內容:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存後重啟防火牆
# service iptables restart
4. 查看:
a. 啟動SVN
# svnserve -d -r /opt/svn/repositories
b. 查看SVN進程
# ps -ef|grep svn|grep -v grep
root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repositories
c. 檢測SVN埠
# netstat -ln |grep 3690
tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN
5. 停止重啟SVN:
# killall svnserve //停止
# svnserve -d -r /opt/svn/repositories // 啟動
6. 測試連接:
使用TortoiseSVN進行測試:
1. SVN服務啟動後,需要使用客戶端測試連接:
客戶端連接地址:svn://192.168.15.231;然後,輸入用戶名密碼;
2. 新建一個文件夾,即本地的庫文件夾,右鍵checkout,將會得到一個隱藏文件夾.svn;
3. 在此文件夾中放入項目內容,然後右鍵點擊commit,就可以上傳本地項目了。
⑹ linux配置SVN,添加用戶,配置用戶組的許可權
用xshell登陸伺服器,cd切換到伺服器中svn的項目倉庫目錄中,然後切換到conf文件中(也可使用xftp),會看到3個文件,分別是
authz、passwd、svnserve.conf
首先編輯svnserve.conf主配置文件,主要是對以下幾項修改
如果後面大家要用到組許可權的話,大家看authz-db = authz 前面應該會有 # 號鍵,記得去掉,這樣才能在下面分配組許可權的時候,才能起作用。
建立svn用戶以及密碼:
配置組:
配置各個組許可權:
保存修改後的svnserve.conf ,passwd,authz 三個文件
然後用下面的命令重啟一下svn
查看svn進程:ps -ef | grep svn 或者 ps aux | grep svn
強制殺死進程:kill -9 進程號
重啟svn(/home/svn為自己的目錄地址):svnserve -d -r /home/svn
最後看看是不是成功了,可以在本地測試一下,看看賬戶是否可用,對應的許可權是不是已經有了,不是該組的用戶應該不能訪問沒有賦予許可權的目錄的
helloword倉庫:
現在對於def項目中,我不想讓產品部的人看到開發部和數據部的目錄下面的數據怎麼辦?可以通過 = 來設置,沒有設置許可權的人統統不能訪問, = 這一句的目的,就是割斷許可權繼承性,使得管理員可以定製某個目錄及其子目錄的許可權,從而完全避開其父目錄許可權設置的影響
⑺ linux怎麼使用svn進行多個版本庫的配置
1、Linux系統安裝svn服務
# yuminstall subversion<img id="selectsearch-icon" src="https://gss0.bdstatic.com/70cFsjip0QIZ8tyhnq/img/iknow/qb/select-search.png" alt="搜索">
2、新建一個目錄用於存儲SVN所有文件
#mkdir -p /cbroot/svnserver/cbweb
3、在上面創建的文件夾中為項目project_1,創建一個版本倉庫
# svnadmin create /cbroot/svnserver/cbweb/trunk
4、為項目配置許可權
①svnserve.conf 是主配置文件
vim /cbroot/svnserver/cbweb/trunk/conf/svnserve.conf
anon-access=none #匿名可讀
auth-access=write #驗證用戶可讀寫
password-db=passwd #指向驗證用戶名密碼的數據文件 passwd
auth-db=authz #指向驗證用戶的許可權配置文件 authz
注意:每一行前方不能有空格,否則會出現 Option expected錯誤!
②passwd用戶名密碼配置文件
vim /cbroot/svnserver/cbweb/trunk/conf/passwd
[users]
=123456
=123456
③authz用戶許可權配置文件
[groups]
trunk=,
[/]
@trunk=rw #定義群組 managers 有讀寫許可權
manager3=r #定義 manager3 有讀許可權
*= #以上沒有定義的用戶都沒有任何許可權
5、啟動SVN伺服器上面的版本庫cbweb
svnserve -d -r /cbroot/svnserver/cbweb/
###啟動多個svn服務
svnserve -d –listen-port 3688 -r /static/
⑻ Linux中svn伺服器安裝與使用
直接開放svnserve的埠就可以了,默認埠是3690
如果selinux開啟了,它會阻止文件的寫入,從倉庫中拉去正常,但上傳的時候會出現 不能打開文件"***/db/txn-current-lock"許可權不夠
如果出現semanage未定義,可以參考 CentOS7 中安裝semanage來設置selinux
倉庫目錄為 /home/svn/test ,如果要刪除版本倉庫直接刪除目錄就可以了 rm -rf /home/svn/test
在倉庫目錄 /home/svn/test 的 conf 目錄中會有三個文件
修改配置
修改配置添加賬號密碼,以 賬號=密碼 的格式配置, = 號二邊盡量不要存在空格
許可權管理分為組管理和目錄許可權管理
多個創建可以共用一套賬號和密碼許可權管理。也可以用不同的賬號密碼管理,如果用不同的配置少單倉庫類似,修改每個倉庫conf下的賬號和許可權文件就可以了。下面說一下共用賬號許可權文件的情況。
在倉庫目錄 /home/svn 目錄中創建authz文件和passwd文件。
修改配置各倉庫下conf/svnserve.conf。將password-db和authz-db指向/home/svn/目錄下的文件
修改/home/svn/passwd配置添加賬號密碼,以 賬號=密碼 的格式配置, = 號二邊盡量不要存在空格
修改/home/svn/authz許可權管理分為組管理和目錄許可權管理
如果單倉庫以/home/svn啟動,此時訪問的地址會有倉庫名。 svn://ip/test
訪問地址分別為:
編輯 /etc/sysconfig/svnserve 文件,修改 OPTIONS="-r /var/svn" 參數改為svn倉庫目錄 OPTIONS="-r /home/svn"
設置開機啟動
修改後也可以用systemctl來啟動、停止、重啟
svnserve啟動後,修改authz和passwd文件是時實生效的,並不需要重啟服務
有時隨著倉庫越來越多,許可權配置也越來越多時,會出現一些配置錯誤,導致訪問時出現無法載入許可權驗證之前的錯誤,這個時候我們可以將svn伺服器的日誌列印出來,看些配置出錯了。
停止svn伺服器,重新附加log-file參數輸入日誌到指定文件
⑼ Linux上的svn配置文件在哪裡
你說的svn配置文件是什麼配置文件呢?如果只是需要使用svn相關命令的話,因為svn是版本控制工具,所以它應該是在檢出的工作目錄下使用,其他目錄不可以使用的;
⑽ 如何配置自己的Linux svnserver伺服器
一、新建並初始化版本庫 1.新建代碼倉庫 # svnadmin create /home/myrepos 這樣,我們就在/home目錄下新建了版本庫myrepos。 2.初始化代碼倉庫 #mkdir -p code/{branches,tags,trunk} 按照svn手冊上的建議,我們版本庫的布局採用branches/tags/trunk這樣的三個目錄。然後可以將代碼直接拷貝的trunk目錄,也可以隨後採用svn add的方式添加。 #svn import code file: ///home/myrepos 將我們構造好的版本庫布局(以及代碼,如果已經拷貝到trunk下的話)提交到版本庫。由於這里我們是在本地操作,因此可以直接使用file協議方式提交。格式為:file:// + 版本庫絕對的路徑 OK,到這里我們已經構建了一個本地版本庫,可以再本地使用svn ci的方法得到版本庫的副本了。如果前面只是提交了版本庫布局,而沒有提交代碼的話,則可以通過如下命令,提交版本代碼: #svn co file: ///home/myrepos/trunk repos 通常只從主線目錄trunk下取出源碼,放在了新建的repos目錄。然後可以將源碼拷貝到repos目錄。 執行以下兩條命令將代碼添加的版本庫。 #svn add * #svn ci * -m "Committed codes" 首先需要將拷貝的代碼加入到當前的副本中,然後將代碼提交到版本庫。 二、配置並啟動svnserve 1. 配置svnserve 這一步主要完成遠程用戶訪問版本的許可權。 在版本庫目錄下有個conf目錄:home/myrepos/conf,該目錄包含三個文件:authz,passwd,svnserve.conf。 (1)svnserve.conf 此文件重點的設置內容如下: anon-access = read auth-access = write password-db = passwd authz-db = authz 其中,anon-acces s和auth-access分別代表設置匿名用戶和授權用戶的訪問許可權。read代表只讀,write代表可讀可寫,還有一個none,代表禁止訪問。如果不想讓匿名用戶訪問的話,可以設置anon-access = none。 password-db為保存版本庫的用戶名和密碼,通常為conf目錄下的passwd文件。 authz-db指向的文件,主要用於將用戶進行分組,並賦予不同的組不同的許可權。譬如有多個目錄時,設置某個組的用戶只可以訪問其中的那些目錄。 (2)passwd 如前面介紹,這個文件的主要內容如下 [users] harry = harrysecret sally = sallyssecret 以上兩行就是可以訪問版本庫的用戶名和密碼。格式為:user = passwd。 (3)authz [groups] # harry_and_sally = harry,sally # [/foo/bar] # harry = rw # * = # [repository:/baz/fuz] # @harry_and_sally = rw # * = r 以上就是authz文件的格式。先給用戶分組,然後分別設置每個組的工作目錄以及許可權等。 本文的講解並未用到authz的配置。