一、准备工作
将源码包上传到服务器, 我这边使用的WinSCP.
subversion-1.6.1.tar.gz
subversion-deps-1.6.1.tar.gz
// 安装依赖包
yum install -y gcc openssl openssl-devel expat
二、安装
// 先解压两个源码包
tar -zxvf subversion-1.6.1.tar.gz
tar -zxvf subversion-deps-1.6.1.tar.gz
// 进入目录, 先进行编译, 不指定路径,看有没有报错.
cd /lnmp/subversion-1.6.1.tar.gz
./configure
// 如果出现以下提示, 代表编译没有问题
// 指定路径进行编译安装
./configure --prefix=/usr/local/svn/
make && make install
// 安装成功
// 进入SVN目录
cd /usr/local/svn
ls
// 查看SVN版本
/usr/local/svn/bin/svnserve --version
// 将SVN添加到环境变量中
vim /etc/profile
// 将下面语句添加到后面
export PATH="$PATH:/usr/local/svn/bin"
// 刷新权限
source /etc/profile
// 或者直接输入命令将SVN添加到环境变量中
echo "export PATH=$PATH:/usr/local/svn/bin/" >> /etc/profile
source /etc/profile
三、建立一个测试仓库
// 新建一个版本库
mkdir -p /data/svn/svntest
svnadmin create /data/svn/svntest/
// 修改配置文件
cd /data/svn/svntest/conf
ll
vim svnserve.conf
// 将下面语句去掉注销并修改, 保存退出
anon-access = none // 使非授权用户无法访问
auth-access = write // 使授权用户有写权限
password-db = passwd
authz-db = authz // 访问控制文件
// 新增用户test ,密码123456
vim passwd
test = 123456
// 指定SVN用户拥有的目录权限, rw 代表读写权限
vim authz
// 运行SVN, 如果3690端口被占用, 后面可以加上 --listen-port 3391
svnserve -d -r /data/svn
四、 Windows链接
本地安装TortoiseSVN软件后, 右击SVN检出, 输入版本库URL,点击确定
输入账号密码, 点击确定
完成
五、 SVN钩子(hooks)自动部署代码到web目录
// 切换到SVN中hooks目录
cd /data/svn/svntest/hooks
// 复制文件
cp post-commit.tmpl post-commit
// 修改文件,添加内容, 保存退出
vim post-commit
export LANG=en_US.UTF-8
/usr/local/svn/bin/svn update /usr/local/nginx/html --username test --password 123456
// 给post-commit 加上执行权限
chmod +x post-commit
ls
svn checkout svn://ip/svntest /usr/local/nginx/html --username=test --password=123456
// 完成, 本地提交就可以了