IBM Rational ClearCase
Linux上配置Apache+Subversion+Trac
http://blog.chinaunix.net/u/11995/showart_1011475.html
Subversion是新一代的版本控制工具,它是一个自由、开放源码的版本控制系统。它是一个通用系统,可用来管理任何类型的文件, 其中包括程序源码。Subversion是近年来崛起的版本管理工具,被誉为是cvs的接班人。 最近帮公司在一台服务器上安装了Subversion和Trac,由于服务器是公司前几年买的比较老,型号是HP ML350,拿到手一看,操作系统竟然还是Fedora Core release 2,所以在安装过程中好多需要的rpm包都要自己下载,还不能用最新的rpm, 新的都没发安装,让我到网上找了好久才找到。真有点不习惯,以前一直用Ubuntu, 只要用apt-get来安装,就很方便的帮你自动处理了所需的依赖关系,那是一个爽啊!! 想重装OS,可是没办法啊服务器的OS安装比较麻烦,重装了的话可能涉及到驱动方面的安装,太老了搞不好就毁了,到时再找HP的技术支持那就搞大了,不好向老大交代 ,那就只好老老实实的自己编译安装吧,说了一大堆废话,下面把我的安装步骤讲一下吧,呵呵~~ 首先:下载Apache, Subversion 和 Trac 的安装包, Apache2.2.8, subversion1.4.6和trac-0.10.4。Apache是web服务器,用来通过web访问subversion。安装包都可以从官方网站上下载。 下载地址: 1. 编译安装Apache : //解压apache2安装包 2. 编译安装Subversion: PS:在安装之前先确认你的OS上已经安装了python和swig,如果没有安装的话可以下载source code或rpm包来安装,因为我的OS上原本已经安装了所以我没有去重新安装,我安装的版本是:python-2.3.3和swig-1.3.19 //解压subversion安装包 经过上面的步骤mod_dav_svn.so and mod_authz_svn.so 将会被copy到/usr/local/apache2/modules/下, 注意一下运行. /configure时加的这几个参数PYTHON=/usr/bin/python --with-swig=/usr/bin/swig --enable-shared --enable-static --enable-swig-binding=python,开始的时候编译svn的时候没有加这几个参数,单独使用svn 都没问题,但是后面安装好trac后却怎么也不行,打开网页一直有错误,从Browser访问Trac的时候,出现了下面的错误: 同时执行了上面的make && make install后还要编译安装Subversion SWIG Python bindings #cd subversion-1.4.6 #make swig-py #make install-swig-py 那么你可以看到swig-py的install目录是/usr/local/subversion/lib/svn-python。用如下命令讲这个扩展包扩展到python: 剩下的就是测试svn的swig-py包是不是能work了,很简单。 #python <-- 启动python >>>import svn.repos <-- 按ctrl+d退出 如果不报错,就完事大吉了。 如果报错,那么检查几件事情: I. subversion的configure是不是enable了shared和static,是不是带--with-swig; II. libsvn_swig_py-x.so是否存在于/usr/local/subversion/lib目录; III. /usr/local/subversion/lib是否已经增加到ld.so.conf文件 (/etc/ld.so.conf) IV. 请使用ldconfig -v |grep swig来检查是否有swig的下列动态库 libsvn_swig_py-1.so.0 -> libsvn_swig_py-1.so.0.0.0 如果一切正常,这个安装就完成了。 安装完成后,运行svnserver --version确认版本为1.4.6。 3. 配置svn 最好不要让root用户参与到svn的权限管理和日常的运行和维护工作中来,所以我们建立一个用户(如svn) 在root权限下用下面的命令创建用户和组: //接下来修改Apache配置文件 <Location /svn> //这里设置SVNParentPath而不是SVNPath的好处是可以几个repository同时访问 另外要修改 apache进程的权限:因为所有跟版本库传输的操作都是通过apache进程进行的,所以即使你给svn用户设置了很大的权限,但是apache进程没 有访问版本库或者相关文件的权限也没有用,apache进程的权限设置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行: //重启apache 接下来可以import代码文件了,可以在其他机子上完成: 应该说svn和apache就处理好了!接下来就是安装配置Trac.... 4. 安装配置Trac Trac 是一个非常优秀的源代码浏览工具,现在也很流行。在安装前,需要注意的是,Trac需要以下几个软件的支持,安装前一定要先安装好。 要预先安装的软件包在trac-0.10.4的INSTALL文件里有列出,copy如下: * Python, version >= 2.3. 以上各包,一个也不能少,除非你不用apache来做web(而使用tracd,这是trac本身都不建议使用的httpd),当然我们用CGI方式来运行python脚本,所以省掉一个mod_python. 补充说明下,光有PySQLite而没有SQLite显然是不行的 由于我使用的是Fedora 2的OS,我直接安装的是针对它的rpm包: sqlite-2.8.16-1.1.fc2.rf.i386.rpm 这几个软件包可以在http://www.rpmfind.net 和http://www.rpmfind.com 上找到适合自己系统的版本,下载后直接安装即可。当然你也可以通过下载源码编译安装这些包。 然后开始安装trac: #tar zxvf trac-0.10.4.tar.gz #cd trac-0.10.4 #python ./setup.py install 关于trac本身的安装就这么简单,详情请参考trac-0.10.4/INSTALL文档。其中还有后续章节所涉及内容的详述,包括如何使用 trac-admin初始化一个trac项目,如何启动tracd服务,以及如何配置使用apache来提供trac的web服务。 trac安装的缺省路径是/usr,trac-admin和tracd都在/usr/bin目录,trac的模版等都在/usr/share/trac目录。 使用trac-admin命令可以初始化一个trac项目,一个trac项目对应一个SVN repository,这是应用中应该注意的。 #trac-admin /home/trac/ my_project initenv 这个命令即可启动初始化/home/trac/my_project项目的交互进程,是建立trac项目,运行后提示如下: 初始化完成后,可以通过修改/home/trac/my_project/conf/trac.ini来改变设置,甚至可以改变svn repository的设置,你需要做的只是在改完后使用trac-admin /home/trac/my_project resync来重新同步trac项目和svn repository。 更细节的配置内容请参考trac相关文档。 顺便修改一下权限 trac有两种方式提供web服务,其一是trac自带的tracd,它本身就是一个httpd,启动方式如下: tracd --port 8000 /home/trac/my_project 或者你有两个项目,则在后面加一个目录: tracd --port 8000 /home/trac/my_project1 /home/trac/my_project2 这种方式很简单,但问题是trac本身都不建议你用,因为tracd不够完善. 但不管怎么样,你可以试用一下tracd,看看你的安装配置是不是都可以work了,毕竟加上apache,是件相对复杂很多的事情,所以,在这之前用tracd来检验一下还是必要的。 启动服务后,你就可以在一台客户机上使用浏览器来来浏览你开启的web服务了。比如: http://localhost:8000/my_project 如果可以看到trac的默认首页,就说明是OK的,然后就开始将trac集成到apache. 把trac集成的到apache有很多方法,可以使用mod_python模块,可以使用cgi模块或者fast-cgi模块 我这里使用了cgi模式,这个方法比较简单。如果你需要速度快一点,那使用fast-cgi好了. 然后修改apache的配置文件httpd.conf vi /usr/local/apache2/conf/httpd.conf 然后添加以下内容: # Alias /trac/chrome/common "/usr/share/trac/htdocs" ScriptAlias /trac /usr/local/apache2/cgi-bin/trac.cgi <Location "/trac/*/login"> 密码文件svntrac.htpasswd 我们和svn共享,这样就只需要管理一套密码了. 这里需要注意的是: SetEnv TRAC_ENV "/home/trac/my_project" #单个项目时用这样写 还有如果多个项目使用一个密码文件可以这样配置"trac/*/login",单个的话就"tra/login" 对于多个项目的话当在浏览器里输入http://localhost/trac 时显示的是一个简单的Available Projects页面,如果希望修改这个页面,请编辑/usr/share/trac/templates/index.cs, 下面是我根据我们项目需要而更改的index.cs文件 <!DOCTYPE html <div id="metanav" class="nav"><ul><li class="first"><a href=""> </a></li></ul></div> <div id="content" class="wiki"> <br><h1>XXX Team's Projects</h1> <ul><h2><ul><li> <h2><ul><li> <h2><ul><li> <h2><ul><li> <h2><ul><li> <div id="footer"> 上述只是一个例子,个人可以根据需要修改。 管理Trac访问许可 备份和恢复Trac 到此trac也配完了。 关于svn的备份可以参考http://hi.baidu.com/zhangwf/blog/item/f94ca8518a5aa38a8d54305b.html 我因为是要从一台原来的svn server 更换到新的server, 所以我是把原来svn server上的svn 仓库直接进行备份动作后拷贝到新的svn server的仓库中来的。
http://www.subversion.org.cn/bbs/viewthread.php?tid=1393&extra=&page=1
Trac+SVN+Apache终极配置手册(PDF)
|
Ubuntu Linux操作系统CVS安装与配置详解
http://unix-cd.com/vc/www/22/2007-09/8301.html
1. 安装 cvs
$ sudo apt-get install cvs
2. 安装 cvsd
$ sudo apt-get install cvsd
cvsd安装以后, 会提示设置“repository” 的位置location, type in "/cvsroot".
“RootJail” is setted in “/etc/cvsd/cvsd.conf”, the default value is /var/lib/cvsd.
This means, your repository location could be just “/cvsroot”
3. 创建 /myrepos。
$ cd /var/lib/cvsd
$ sudo mkdir cvsroot
4. 初始化 /cvsroot
$ sudo cvs -d /var/lib/cvsd/cvsroot init
5. 设置cvsd用户鉴定(user authentication)
normal it’s system level, and the cvs users should be configured independently.
$ sudo vi /var/lib/cvsd/cvsroot/CVSROOT/config
添加下面行:
SystemAuth=no
PamAuth=no
LockDir=/tmp/cvsroot
Look out! “/tmp/cvsroot” 和RootJail的位置是相关的.
6. 创建 LockDir
$ sudo mkdir /var/lib/cvsd/tmp/cvsroot
7. 创建 users
$ sudo cvsd-passwd /var/lib/cvsd/cvsroot cvs-user
8. 编辑 cvsd configuration
$ sudo vi /etc/cvsd/cvsd.conf
The default one should be:
RootJail /var/lib/cvsd
Repos /cvsroot
NOTICE! Repos路径也是和RootJail相关的.
9. Set directory’s popedom
$ sudo chown cvsd:cvsd /var/lib/cvsd -R
10. Restart cvsd
$ sudo /etc/init.d/cvsd restart
test cvs
cvs -d :pserver:mcl@localhost:/cvsroot login
cvs -d :pserver:mcl@localhost:/cvsroot checkout
pserver认证方式使用缺省端口,不使用代理.
若使用ssh认证方式,需要进行如下设置:
配置.ssh/config 和 .bashrc文件
$ cd ~
$ vi .ssh/config
添加内容为:
Host localhost
HostKeyAlias cvsserver
Hostname 192.168.11.134
Port=22
$chmod 600 .ssh/config
$ vi .bashrc
添加内容:
CVS_RSH=ssh
CVSROOT=:ext:mcl@localhost:/cvs
export CVSROOT
export CVS_RSH
有可能还需要进行PATH设置,然后export PATH
$source .bashrc
然后就可以使用了
cvs co 目录文件名
http://www.blogjava.net/bnlovebn/archive/2008/05/23/202374.html
1. | 本文需要两个文件,httpd和subversion。 ·httpd是web服务器,用来通过web访问subversion,这里 是官方网站,这里 是它的下载网页, 这里 可以下载到httpd-2.2.2.tar.bz2。 ·subversion就是本文的主角,这里 是他的官方网站,这里 是它的下载网页, 这里 可以下载到subversion-1.3.1.tar.bz2 |
||
2. | 新建一个用户:svnroot 最好不要让root用户参与到svn的权限管理和日常的运行和维护工作中来,但是下面的一些安装和配置操作还是 需要root用户来完成的,因为有些操作只有root才能做。 |
||
3. | 编译安装httpd (root用户操作):
|
||
3. | 安装Subversion
|
||
4. | 修改Apache配置文件
|
||
5. | 重启apache
|
||
6. | 权限管理 1)增加用户
http://localhost/svn/test 这个URL来访问仓库了,当然,受权限的限制,必须是合法用户才能访问且具有相应的权限 |
||
7. | 一些备忘: 1. svn checkout http://localhost/svn/hello.world 2. svn commit 时的默认编辑器的环境变量$SVN_EDITOR=vi需要手动设定,用kate好像有问题 3. 如果linux的登录用户名密码都和svn的其中一个用户名密码相同时,在checkout的时候不会要求输入用户名密码直接就可以checkout出 来。比如:linux有个用户wooin,svn也有一个用户wooin,并且密码都是一样的,当用wooin登录linux后,执行checkout, 可以直接提取出源码文件,不用输入认证信息。 4. 在svn使用过程中牵扯到几种权限:文件系统的权限,linux系统权限,svn用户的权限,apache进程的权限。 文件系统的权限,linux系统权限:这里相同的意思,就是平时大家使用linux时文件夹和文件的访问权限。在 svn建立仓库,文件夹,配置文件的时候用svnroot用户,并将仓库权限设置为700,不允许其他用户直接通过文件系统查看,只能由svnroot进 行管理。 apache进程的权限:因为所有跟仓库传输的操作都是通过apache进程进行的,所以即使你给svn用户设置了很大的权限,但是apache进程没有 访问仓库或者相关文件的权限也没有用,apache进程的权限设置在 /usr/local/apache2/conf/httpd.conf 文件中配置,找到文件中的这两行:
svn用户的权限:就是在repository/authz.conf文件中设置的权限信息,是svn用来管理仓库访问权限的。 5. svn服务器设置有两种方式:http 和 svnserve。这里介绍的是http方法 6. 在/etc/profile的结尾设置一些svn启动时要做的工作
end |
<script type="text/javascript"><!-- --></script> <script type="text/javascript"><!-- -->
end