yum install openssl-devel
http://www.openssl.org/source/openssl-1.0.0.tar.gz
上周配了个svn服务器,过程很是辛苦,因为网上资料很乱,不完整,查阅了大量资料之后,终于配好了。分享一下,希望后来者少走弯路。
第一章 安装
1. 采用源文件编译安装。源文件共两个,为:
subversion-1.6.1.tar.gz (subversion 源文件)
subversion-deps-1.6.1.tar.gz (subversion依赖文件)
注意文件版本必须一致,否则很容易产生各种奇怪的问题.
2. 上传以上两个文件到服务器上,解压。解压命令为:
tar xfvz subversion-1.6.1.tar.gz
tar xfvz subversion-deps-1.6.1.tar.gz
tar -jxvf subversion-1.6.15.tar.bz2
tar -jxvf subversion-deps-1.6.15.tar.bz2
指令简介:tar 为解压命令,xfvz为tar命令的参数,用于解压tar.gz格式压缩的文件。
3. 解压后生成 subversion-1.6.1 子目录,两个压缩包解压后都会自动放到此目录下,不用手动更改。
4. 进入解压子目录:
cd subversion-1.6.1
我用 ./configure –prefix=/usr/local
5. 执行 ./configure –prefix=/opt/subversion 进行配置设定并指明安装目录. 注意prefix前是两个减号. 默认不带BDB包, 所以默认使用的是FSFS模式. 若想使用BDB模式需另外下载BDB包.建议使用FSFS模式.两种模式比较参考以下链接:
http://doc.iusesvn.com/show-21-1.html
指令简介:configure命令用于检查安装平台和目标特征,prefix用于指定路径。
6. 执行 make 编译.
7. 执行 make install 安装.
8. 添加环境变量:
vi /etc/profile
在文件最后加入:
#后来用这个
export PATH=/usr/local/svn/bin:/usr/local/mysql/bin:$PATH # MySQL PATH
SVNPATH=$PATH:/opt/subversion/bin
export SVNPATH
9. 测试SVN是否安装成功,执行:
svnserve –version
如果显示版本信息, 则安装成功.
第二章 配置
本系统采用为每个项目单独建一版本库的策略。配置文件,密码文件,访问控制文件等都放在版本库的conf目录下。所以每次开始一个新项目都必须新建一个版本库,并重新配置各配置文件。还有很重要的一条,要求各组员重新配置客户端,包括服务器版本库路径,本地路径等信息。
1. 建立版本库目录(可建立多个,新建库后以下各项都需重新配置。注意区别安装目录与版本库目录,以下讲的都是版本库目录)
mkdir –p /opt/svndata/repos
2. 建立svn版本库(与上面目录对应)
svnadmin create /opt/svndata/repos
执行此命令后svn自动在repos目录下添加必须的配置文件.
注意:版本库不同于一般的文件夹, 直接在操作系统上新建文件无法被SVN识别, 必须使用import等命令将文件导入版本库.
此为svn内部指令,create用于新建版本库。请使用svn help查看详细说明。
3. 修改版本库配置文件
vim /opt/svndata/repos/conf/svnserve.conf
各参数功能在配置文件的注释中有说明, 此处配置如下:
[general]
anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = /opt/svndata/repos/conf/pwd.conf # 指明密码文件路径
authz-db = /opt/svndata/repos/conf/authz.conf # 访问控制文件
realm = /opt/svndata/repos # 认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字。
其它采用默认配置. 各语句都必须顶格写, 左侧不能留空格, 否则会出错.
其中pwd.conf 与 authz.conf 在新建版本库时系统不会自动创建,需要自己创建。
指令简介:这是svn配置文件的格式,请按照以上格式书写。
##自己创建 pwd.conf 与 authz.conf
4. 配置用户
vi /opt/svndata/repos/conf/pwd.conf
输入以下内容:
[users]
username1 = password1
username2 = password2
可以添加多个,此为用户名密码对。
5. 配置权限
vi /opt/svndata/repos/conf/authz.conf
指令简介:此配置文件采用“基于路径的授权”策略,中括号里指定路径,以下列出对各用户的授权。包括只读r,读写rw。没有列出的用户,则不允许访问。还可以对用户分组,具体请参考svn手册,以下是简单例子:
[/opt/svndata/repos]
user1 = rw
user2 = r
6. 使用import导入文件
新建好的版本库是空的,需要导入工作目录。
$ svnadmin create /usr/local/svn/newrepos
##好像 是不用做
$ svnimport mytree file:///usr/local/svn/newrepos/some/project
但是在导入后,用来的目录树并没有转换成工作拷贝,为了开始工作,还是需要运行svn checkout导出一个工作拷贝。因为导入后,文件在版本库中是以特殊的形式存在db文件夹中的,不能以明文的方式查看。必须使用svn checkout导出工作副本才能以正常方式查看。
7. 启动服务
执行svnserve –d –r /opt/svndata/repos/ 启动服务, 以deamon方式运行。
本系统采用svnserve方式, 这是小团队项目的推荐方法. 这种方法维护最少, 配置最简单.
指令简介:此指令用于启动svn服务,-d指明以守护模式运行,svn自动在3690端口监听。3690是默认端口,可以使用 “–listen-port=”或者“–listen-host=”来指定其它端口。-r选项用来指定svn服务的根目录,这样用户就可以使用相对路径访问,而不用提供完整路径。
使用以下命令检出:(svnserver方式)
svn checkout svn://127.0.0.1/dir
以上为示例。IP需要根据具体情况调整,dir为版本库路径,若在启动时已指定则可省略。
版本库信息在版本库文件夹里,所以要删除版本库只需要删除版本库所在的文件夹即可。
另外工作副本只是自己维护的文件夹,可以用Windows直接删掉,对别人没有影响。千万不要使用版本库的删除命令,否则版本库里的内容也会被删除。
############
[root@BTO2-WEB tmp]# svn checkout svn://127.0.0.1
Authentication realm:
Password for ‘root’:
Authentication realm:
Username: tset
Password for ‘tset’:
Authentication realm:
Username: test
Password for ‘test’:
———————————————————————–
ATTENTION! Your password for authentication realm:
can only be stored to disk un
encrypted! You are advised to configure
your system so that Subversion can store passwords encrypted, if
possible. See the documentation for details.
You can avoid future appearances of this warning by setting the value
of the ‘store-plaintext-passwords’ option to either ‘yes’ or ‘no’ in
‘/root/.subversion/servers’.
———————————————————————–
Store password unencrypted (yes/no)? yes
Checked out revision 0.
[root@BTO2-WEB tmp]# ls
127.0.0.1 hsperfdata_root mysql.sock