關於svn的安裝(Linux+nginx+svn)
今天安裝一下svn本來覺得很簡單的事情趟坑就弄了半天,結合幾個線上文檔把自己好用的奉上。如有不足和錯的地方大家幫忙提意見啊。
1、安裝
安裝svn
安裝之前我們先檢查一下是否有svn
命令:svn --version (查看svn版本信息)
-bash: svn: command not found
沒有開始安裝
兩種方法
# yum install subversion
# apt-get install subversion
自選擇
我用的是yum
安裝之後 svn --version
如圖:
然後就是創建svn倉庫
我是這個路徑/opt/svn/project,可以看個人習慣
#mkdir /opt/svn/project
然後就是創建倉庫了
#svnadmin create /opt/svn/project
2、配置
上面的操作很簡單,幾個命令就搞定, 下面的操作也不難。
進入/opt/svn/project目錄(這裏的project目錄不是網站的web目錄,倉庫名為project)。
會看到conf、hooks、db等目錄,我們會用到的也就conf(配置目錄)hooks(設置鉤子,後面會講到)
進入conf目錄, 有以下幾個文件(authz, passwd, svnserve.conf)
其中authz 是權限控制,可以設置哪些用戶可以訪問哪些目錄, passwd是設置用戶和密碼的, svnserve是設置svn相關的操作。
首先配置svnserve.conf
# vim svnserve.conf
修改(把前面的#號去掉,配置後面的值,共修改五行代碼)
anon-access = none # 使非授權用戶無法訪問
auth-access = write # 使授權用戶有寫權限
password-db = password
authz-db = authz # 訪問控制文件
realm = /opt/svn/repos (realm = project) # 認證命名空間,subversion會在認證提示裏顯示,並且作為憑證緩存的關鍵字。
采用默認配置. 以上語句都必須頂格寫, 左側不能留空格, 否則會出錯.
在passwd文件中添加用戶
# vim passwd
[users]
admin = 123456
這裏設置了一個用戶,根據情況不同可以隨意設置。
在authz中添加組和權限
# vim authz
[groups]
group1 = admin,dazeair #group1組裏的成員
group2 = user1,user2
[/] #配置根目錄的權限
admin =rw #admin用戶對[/]目錄的權限:r讀,w寫
@group1 = rw #@表示組,group1組有讀寫權限
@group2 = r #group2組只有r讀權限
* = #這裏表示其他用戶無任何權限
[www:/user1] #配置根目錄(www目錄)下的user1文件夾的權限
user1 = rw
這裏說明下,前面添加了四個用戶,分了兩個組,對於根目錄group1擁有讀寫權限,而group2只有r權限。
根目錄(www目錄)下有user1
好了,通過以上配置,你的svn就可以了。
3、連接
啟動svnserve
# svnserve -d -r /data/svn/project
也可以使用 --listen-port 參數指定端口(默認端口3690),啟動多個倉庫
正常情況下不會出現問題的,如出現請檢查剛才的配置文件
如果報錯:
svnserve: Can‘t bind server socket: Address already in use
糾結了吧!
解決辦法:
# killall svnserve
# svnserve -d -r /opt/svn/repos 啟動成功。
或者
# svnserve -d -r /mnt/westos --listen-port 3691
這樣同一臺服務器可以運行多個svnserver
好了,啟動成功後,就可以使用了。
在window上建議采用TortoiseSVN, 連接地址為: svn://your server address (如果指定端口需要添加端口:端口號)
這塊註意一定要在你的測試或者項目的目錄下:
連接後可以上傳本地的文件,有效的管理你的代碼。
4、新建多個版本庫
若要在/svn目錄下添加新的版本庫,直接新建相應的目錄,然後設置為版本庫,最後配置即可,
不需要重新運行svnserve -d -r /opt/svn/project,
也不需要把該命令應用到/svn目錄下你所新建的目錄,
比如在/svn目錄下另外新建一個project2的資源庫,命令如下:
# mkdir -p /opt/svn/project2
# svnadmin create /opt/svn/project2
...(三個文件的配置)
(不需再運行svnserve -d -r /opt/svn/project2)
還有一塊是管理你的線上代碼,這塊研究後再編輯。(有後續...)
關於svn的安裝(Linux+nginx+svn)