SVN安装笔记

  1. 1. 下载源码包
  2. 2. 安装Berkeley DB
  3. 3. 安装apr-util
  4. 4. 安装subversion
  5. 5. 配置SVN
  6. 6. 启动svnserver

最近在SCM轮岗,svn是必备工具,虽然以前也经常用这东西,不过从没搭建过svn服务器
本文记录下安装过程
在自己的VPS上安装,由于没有apache,不喜欢它,另外我的破vps也经不起它折腾
所以本次安装SVN不涉及apache部分,由于没找到svn+nginx的方案,网上有的办法只是用nginx来做转发,最后还是要用apache
所以这次安装的SVN只能用svn://这种协议来访问,不能用http来访问了

下载源码包

1
2
3
4
wget http://labs.renren.com/apache-mirror/subversion/subversion-1.7.4.tar.gz
wget http://labs.renren.com/apache-mirror//apr/apr-1.4.6.tar.gz
wget http://labs.renren.com/apache-mirror//apr/apr-util-1.4.1.tar.gz
wget http://www.sqlite.org/sqlite-amalgamation-3071100.zip

我还安装了Berkeley DB,后来发现貌似没用到,这个东西没法直接wget,需要登录验证

我因为在公司,网络好,我下到本地,rz传到vps上的,你也可以到其他分发站点下载

安装Berkeley DB

1
2
3
4
5
6
7
8
9
10
11
12
13
tar xvf db-5.3.15.gz
cd db-5.3.15/build_unix
../dist/configure --prefix=/usr/local/berkeleydb
make && make install
```<!--more-->

### 安装apr

```bash
tar xvf apr-1.4.6.tar.gz
cd apr-1.4.6
./configure --prefix=/usr/local/apr
make && make install

安装apr-util

1
2
3
4
tar xvf apr-util-1.4.1.tar.gz
cd apr-util-1.4.1
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ --with-crypto --with-mysql=/usr/local/mysql --with-berkeley-db=/usr/local/berkeleydb/include:/usr/local/berkeleydb/lib
make && make install

在configure过程中可能报错error: Berkeley DB not found.
这个原因是没找到libdb-version.so,做个链接到/usr/lib下就行,但是configure时指定了lib还是不行的原因不知道

1
2
3
ln -s /usr/local/berkeleydb/lib/libdb-5.3.so /usr/lib/libdb-5.3.so
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/ --with-crypto --with-mysql=/usr/local/mysql --with-berkeley-db=/usr/local/berkeleydb/include:/usr/local/berkeleydb/lib
make && make install

安装subversion

1
2
3
4
5
6
7
tar xvf subversion-1.7.4.tar.gz
unzip sqlite-amalgamation-3071100.zip
cd subversion-1.7.4
mkdir sqlite-amalgamation
cp ../sqlite-amalgamation-3071100/sqlite3.c sqlite-amalgamation
./configure --prefix=/usr/local/svn --with-apr=/usr/local/apr/bin/apr-1-config --with-apr-util=/usr/local/apr-util/bin/apu-1-config --with-berkeley-db
make && make install

由于我们安装到指定目录,所以直接输入svn命令会提示找不到command
为了使用方便,我们给这些命令做个链接到/usr/bin下

1
2
cd /usr/local/svn/bin
for i in `ls`;do ln -s /usr/local/svn/bin/$i /usr/bin/$i;done

配置SVN

上面我们已经安装好了svn,下面开始建立repository
我把repository放到home下,这个看你自己心情,你觉得var下好也可以放到var下面

1
2
3
4
cd /hmoe
mkdir -p repository
cd repository
svnadmin create test

我已经建好一个test库,为了能够正常访问这个svn库,必须配置好这个库的权限控制
在conf文件夹中有3个文件:authz、passwd、svnserve.conf,分别是权限、用户、svn服务器配置文件

1
2
3
4
5
6
cd test/conf
vi authz
[groups]
dev = joysboy
[project:/]
@dev = rw

建了一个dev组,组内包含成员joysboy,这个组拥有读写权限

1
2
3
vi passwd
[users]
joysboy = 123

设置joysboy这个用户密码为123

1
2
3
4
5
vi svnserve.conf
anon-access = none #未授权用户不可操作
auth-access = write #授权用户可写
password-db = passwd #passwd的认证方式,读取passwd文件
authz-db = authz #使用authz权限文件

启动svnserver

1
svnserve -d -r /home/repository/ --log-file=/var/log/svn.log --pid-file=/tmp/svn.pid

最后我们可以测试下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
svn co svn://hostname/test --username joysboy --password 123
cd test
touch test1
svn add test1
svn ci -m "test"
svn info
路径: .
URL: svn://xxx/test
版本库根: svn://xxx/test
版本库 UUID:
版本: 1
节点种类: 目录
调度: 正常
最后修改的作者: joysboy
最后修改的版本: 1
最后修改的时间: 2012-04-07 11:59:36 +0800 (Sat, 2012-04-07)

搞定

声明: 除非注明,小峰网络遨游记文章均为原创,转载请以链接形式标明本文地址

本博客原创文字只代表本人某一时间内的观点或结论,与本人所在公司没有任何关系。

本作品采用知识共享署名-非商业性使用 4.0 国际许可协议进行许可。

第三方若用于商业用途的转载,须取得本人授权。

本文作者:

本文地址:http://xfeng.me/svn-install-note/

你可能还对下面文章感兴趣: