開發人員經常會上傳代碼,或者改對代碼做一些更改。svn就是用來將修改后的代碼更新到服務器上的。下面就來看一下怎么在Linux環境下搭建svn服務(subversion)。
步驟:?
1、檢查是否已經有svn?
2、安裝subversion?
3、檢查是否安裝成功?
4、創建svn資源倉庫?
5、新增用戶及密碼,配置權限,配置資源庫權限?
6、啟動或者重啟服務?
7、測試、從機安裝subversion
一、檢查是否已經有svn
如果沒有安裝就會是下面的樣子,提示找不到命令。
1、[root@localhost ~]# svnserve --version
2、-bash: svnserve: command not found
如果已經安裝,會顯示版本信息:
[root@localhost ~]#? svnserve --version
二、安裝?
在Linux下安裝的是subversion,直接用yum 安裝即可。
[root@localhost~]# yum install -y subversion
三、檢查安裝是否成功?
同樣用的是 svnserve –version成功安裝會顯示版本信息
[root@localhost~]# svnserve --version
四、創建svn資源倉庫?
配置文件就是在這一步生成。
cd /usr/local/ ? ? ? ? ? ? ? ? ? ?? //進入目錄,準備創建svn目錄
mkdir svnRepo ? ? ? ? ? ? ? ?? //創建一個svn目錄
chmod -R 777? svnRepo ? //修改目錄權限為777
svnadmin create /usr/local/svnRepo/test //創建一個svn版本倉庫test(test可以隨便起名字)
cd test/conf ? ? ? ? ? ? ? ? ? ? ?? //進入test版本倉庫下的配置文件目錄
authz passwd svnserve.conf
五、新增用戶及密碼,配置權限?
已經看到在倉庫下面生成了三個文件?
authz #權限配置文件?
passwd #用戶名密碼文件?
svnserve.conf #資源庫配置文件
(1) svnserve.conf //配置版本庫信息和用戶文件和用戶密碼文件的路徑、版本庫路徑
anon-access = none???????? //默認是只讀read
readauth-access = write???????? //認證后有寫入權限
password-db = passwd???????? //帳號密碼配置文件
authz-db = authz??????????????? //權限配置文件
realm = first???????????????????? //改成自己的版本庫 生效范圍
(2) authz? ? //文件,創建svn組和組用戶的權限
[group]?
first = ddl,shl,yunwei ????????? //創建一個first的組,并制定兩個用戶ddl和shl
[test:/]??????? // //指定版本庫跟目錄下的權限?
@first= rw??????? //first組用戶權限為讀寫?
* = r??????? //其他用戶只有讀權限
(3) passwd? //創建或修改用戶密碼
[users]?
ddl =123456?????? //用戶名 = 密碼?
shl =123456??????? //用戶名 = 密碼
yunwei=123456
例子:
(4)然后設置自啟動
cd/etc/rc.d/
vi rc.local
添加下面這行
//--listen-port 3690 是指定端口啟動,默認是3690,--log-file 是SVN日志文件 ,當然兩個參數都可以不指定
svnserve -d -r /usr/local/svnRepo --listen-port 3699 --log-file=/var/log/svnserver.log
(5)SVN命令
lsof -i :3690?????????????????? ? ? ? ?? ? 查看svn是否啟動
ps aux |grep 'svn'??????????????????? ? 查找所有svn啟動的進程
kill-9 2505??????????????????????????????? 殺死2505這個查找到的svn進程
svnserve -d -r /usr/local/svnRepo/first 啟動svn(可以把這個放到/etc/local/rc.local文件中,實現開機自啟動)
netstat -anp|grep svnserve查看一下SVN信息
SVN版本庫起動方式,現在svnRepo下面有 test、test2 兩個版本庫
1:單版本庫起動? ? svnserve -d -r /usr/local/svnRepo/test
2:多版本庫起動? ? svnserve -d -r /usr/local/svnRepo
區別在于起動svn時候的命令中的啟動參數-r指定的目錄。
六、啟動或者重啟服務
[root@localhost? conf]# /etc/init.d/svnserve start
Startingsvnserve:???????????????? [OK]
如果要指定目錄要加參數:
[root@localhost svndir]# mkdir /svndir/svn
[root@localhost svndir]# svnserve -d -r /svndir/svn? ####(只是看一下可以指定目錄,這個實驗不需要)
svnserve:Can't bind server socket: Address already in use
七、測試,從機安裝subversion
linu環境訪問:
在次從機安裝也安裝一個subversion 用來測試。
注:?
服務主機:192.168.1.99
從機:192.168.1.26
在從機上checkout 根目錄
[root@localhost ~]# svn checkout svn://192.168.1.99:3699/test/
需要注意的這里check的目錄跟服務主機里面定義的[test要一樣。
window客戶端訪問:
假設客戶端使用tortoiseSVN
打開資源庫瀏覽器輸入地址, svn://你的svn服務器ip:3690/你的項目名
輸入用戶名uername 密碼123456
因為沒有網資源庫里放文件所以需要你用客戶端右鍵【create forder】,然后【add forder】
Linux環境下常用命令
1、查詢是否安裝SVN?
rpm -qa subversion? ? ? //查看svn的安裝包
2、檢查SVN安裝信息
svnserve --version
3、得到svn安裝包的信息
rmp -qi subversion
4、卸載舊版本svn
yum remove subversion
5、安裝SVN
yum install -y subversion
6、svnserve --help
7、通過進程檢測
ps -ef|grep svn
8、通過端口3690檢測
netstat -lntup|grep 3690
9、通過文件檢測,需要root用戶才可以執行
lsof -i:3690
10、查看安裝位置
rpm -ql subversion