在ubuntu14.04上设置svn Server

subversion是一个版本管理软件,经常大型软件公司来管理代码,如何在Linux上进行安装呢? 本文以在操作系统ubuntu为例进行详述。

安装subversion

在linux控制终端输入以下命令:

sudo apt-get install subversion

sudo是操作系统ubuntu提供的一个切换用户的命令,ubuntu为了系统安全,默认都是非管理员用户, 如果需要管理员用户,需要命令前面加sudo, 然后根据提示输入管理员密码。 apt-get是处理包的 命令行工具,可以进行软件包的安装、卸载和查询等等。

在安装完成后可以通过svn或svnserve命令来查看是否安装成功,也可以通过”dpkg-query -L subversion” 命令来查看安装了哪些文件, 我这里输出为:

dpkg-query -L subversion
/.
/etc
/etc/subversion
/etc/subversion/config
/etc/subversion/servers
/etc/bash_completion.d
/etc/bash_completion.d/subversion
/usr
/usr/bin
/usr/bin/svndumpfilter
/usr/bin/svnserve
/usr/bin/svnauthz
/usr/bin/svnsync
/usr/bin/svnraisetreeconflict
/usr/bin/svnversion
/usr/bin/svn-rep-sharing-stats
/usr/bin/svn-bench
/usr/bin/svn
/usr/bin/svnauthz-validate
/usr/bin/svnlook
/usr/bin/svnrdump
/usr/bin/svnmucc
/usr/bin/svn-populate-node-origins-index
/usr/bin/svnadmin
/usr/share
/usr/share/doc
/usr/share/doc/subversion
/usr/share/doc/subversion/svn_1.7_releasenotes.html
/usr/share/doc/subversion/svn_1.6_releasenotes.html
/usr/share/doc/subversion/svn_1.8_releasenotes.html
/usr/share/doc/subversion/NEWS.Debian.gz
/usr/share/doc/subversion/README.Debian
/usr/share/doc/subversion/copyright
/usr/share/doc/subversion/README
/usr/share/doc/subversion/examples
/usr/share/doc/subversion/examples/mergegraph
/usr/share/doc/subversion/examples/mergegraph/save_as_sh.py.gz
/usr/share/doc/subversion/examples/mergegraph/__init__.py
/usr/share/doc/subversion/examples/mergegraph/mergegraph.py.gz
/usr/share/doc/subversion/examples/merge-graph.py
/usr/share/doc/subversion/examples/gnuify-changelog.pl.gz
/usr/share/man
/usr/share/man/man5
/usr/share/man/man5/svnserve.conf.5.gz
/usr/share/man/man1
/usr/share/man/man1/svn.1.gz
/usr/share/man/man1/svnrdump.1.gz
/usr/share/man/man1/svnadmin.1.gz
/usr/share/man/man1/svnlook.1.gz
/usr/share/man/man1/svnversion.1.gz
/usr/share/man/man1/svnmucc.1.gz
/usr/share/man/man1/svndumpfilter.1.gz
/usr/share/man/man1/svnsync.1.gz
/usr/share/man/man8
/usr/share/man/man8/svnserve.8.gz
/usr/share/doc/subversion/changelog.Debian.gz

创建仓库目录及仓库

假定仓库目录为python100, 放在/srv/svn目录下,我们输入以下命令进行创建目录:

$ sudo mkdir /srv/svn $ cd /srv/svn $ sudo mkdir python100

调用svnadmin命令创建仓库:

svnadmin create /srv/svn/python100

本地访问

测试是否可以本地访问,

svn co file:///srv/svn/python100 aa

配置账号及权限

配置文件放在仓库的conf目录下,我们这里是在/srv/svn/python100/conf目录下,我们可以通过编辑/srv/svn/python100/conf/svnserve.conf来管理存取权限。 例如:

[general]
anon-access = none
password-db = passwd

anon-access用来控制匿名用户的访问权限,它有三种,分别为: read、write和none, read表示读权限,write表示读写权限, none表示没有任何权限。

passwd是用户名密码文件,在当前的conf目录下,在passwd文件增加用户名和密码, 示例如下

[users]
alice = alicesecret
bob = bobbob

这样就增加了两个账号分别为alice和bob, 其密码分别为alicesecret和bobbob

启动svnserve服务

前台启动:

svnserve -d --foreground -r /srv/svn --log-file /tmp/aa.log

后台启动:

nohup svnserve -d -r /srv/svn --log-file /tmp/aa.log &

这样我们就可以通过svn命令来进行访问了, 可以输入以下命令进行测试

svn info svn info svn://127.0.0.1/python100