Linux下Trac安装手记
之前发过一篇在Windows下安装Trac的方法,不过Trac更多的是在Linux下使用, 所以这里介绍一下在Linux下的安装方法。时过境迁,Trac现在已正式发布了0.11版, 与之前的0.9、0.10相比,这个版本的代码浏览器增加了许多功能, 最好用的就是它支持subversion的Blame了,可以查看到源代码的每一行是在哪个版本由谁修改的。
这篇文章是在Fedora Core 8上进行的,其他的RedHat系的Linux应该大同小异。
下载和解包
废话少说,先从Trac的下载页面上下载 最新的Trac-0.11.2.1版,然后解压缩。
$ wget http://ftp.edgewall.com/pub/trac/Trac-0.11.2.1.tar.gz
$ tar xzvf Trac-0.11.2.1.tar.gz
解开之后查看一下其中的INSTALL文件,其中的Requirements一节详细列出了安装Trac所必须的软件:
- Python >= 2.3。(Fedora Core 8自带版本为python-2.5.1,没问题)(注意:如果是用rpm安装的python,那么还需要安装python-devel和python-xml包。我们就是这种情况。)
- Genshi >= 0.5。(在与Trac同一个网站上有下载)
- 可选的subversion >= 1.0(推荐>=1.1.x)和subversion的SWIG Python绑定
- PySQLite,需要用于SQLite 3.x版本的PySQLite 2.x版
- 可运行CGI的Web服务器(我们有httpd-2.2.6)
接下来就先解决这些前提条件。
安装前提软件
首先装好python-devel包。python-xml包在Fedora Core 8中不存在,不装也没关系:
# rpm -i python-devel-2.5.1-15.fc8.i386.rpm
接下来应该再安装一个名为setuptools的包,虽然Trac的INSTALL中没有说,但它是必要的:
# rpm -i python-setuptools-0.6c7-2.fc8.noarch.rpm
然后到Trac的隔壁下载Genshi,最新版本0.5.1:
$ wget http://ftp.edgewall.com/pub/genshi/Genshi-0.5.1.tar.gz
$ tar xzvf Genshi-0.5.1.tar.gz
$ cd Genshi-0.5.1
$ su
# python setup.py install
# exit
接下来是subversion。Fedora Core 8 自带subversion-1.4.4,所以这个就不用装了 (可以用rpm -q subversion确认,如果你没装就先装好)。 而SWIG绑定也已经自带了,可以用以下命令确认:
$ python
>>> import svn.repos
不报错,就说明OK了。
然后确认一下已安装的sqlite版本,并安装sqlite-devel包(用来编译PySQLite):
$ rpm -q sqlite
sqlite-3.4.2-3.fc8
# rpm -i sqlite-devel-3.4.2-3.fc8.i386.rpm
接下来下载PySQLite并安装:
$ wget http://oss.itsystementwicklung.de/download/pysqlite/2.5/2.5.1/pysqlite-2.5.1.tar.gz
$ tar xzvf pysqlite-2.5.1.tar.gz
$ cd pysqlite-2.5.1
$ su
# python setup.py install
# exit
Web服务器就用自带的httpd,如果你没有装,就要先装好这几个包:
httpd-2.2.6-3
mod_python-3.3.1-5
安装Trac
安装Trac本身非常简单:
# cd Trac-0.11.2.1
# python setup.py install
配置Web服务器
我们将把 /var/www/trac 作为项目的主目录,所有新建的trac项目都放在该目录下, 访问URL为 /trac/<项目名>。项目名>
首先确认安装了 httpd 和 mod_python,此时/etc/httpd/conf.d下应该有个python.conf文件。 之后,在/etc/httpd/conf.d下建立一个trac.conf作为Trac的配置文件:
<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/www/trac
PythonOption TracUriRoot /trac/
PythonOption PYTHON_EGG_CACHE /tmp/egg-cache
</Location>
然后在 /var/www 下建立trac目录并修改权限:
# cd /var/www
# mkdir trac
# chown apache.apache trac
然后重新启动 httpd:
# /etc/init.d/httpd restart
接下来访问http://localhost/trac,如果看到“Available Projects”字样,就说明配置成功了。
建立项目
下面要建立一个Trac的演示项目。进入 /var/www/trac,用trac-admin命令建立:
# cd /var/www/trac
# trac-admin hello_project initenv (hello_project为项目名称,可以任意选择)
(接下来的提问全部按回车即可。如果想与subversion联合使用,请继续看)
# chown -R apache.apache hello_project
然后访问http://localhost/trac/hello_project,即可看到Trac的主界面了!
如果想在Trac中查看subversion的代码库,可以在trac-admin工具中把trac项目关联到代码库上。 比如,首先建立用于放置代码库的目录,并建立代码库:
# cd /var/www
# mkdir svn
# chown apache.apache svn
# cd svn
# svnadmin create hello_project (hello_project为代码库名称,可以任意选择)
# chown -R apache.apache hello_project
然后在建立Trac项目时,回答代码库的完整路径:
# trac-admin hello_project initenv
......
Path to repository [/path/to/repos]> /var/www/svn/hello_project (输入代码库完整路径)
这样Trac中就可以访问subversion的代码库了。
如果项目已经建好,而想添加subversion支持的话,可以进入项目中的conf目录, 修改trac.ini中的repository_dir变量为代码库完整路径即可。
这个方法要求/var/www/trac下的所有内容必须属于apache用户,否则Trac会出错。 所以如果看到trac出错了,首先查看一下是不是忘记了做chown。
配置管理界面
接下来需要配置好认证,这样才能方便地通过浏览器来修改项目设置。
首先在 /var/www 下建立 .htpasswd 文件,用来保存用户名和密码:
# cd /var/wwwj
# htpasswd -c .htpasswd root (建立用户root。如果.htpasswd文件存在,则不用加-c)
然后继续修改 /etc/httpd/conf.d/trac.conf,在末尾添加以下内容:
<LocationMatch "/trac/[^/]+/login">
AuthType Basic
AuthName "Trac"
AuthUserFile /var/www/.htpasswd
Require valid-user
</LocationMatch>
然后重新启动httpd:
# /etc/init.d/httpd restart
最后,进入/var/www/trac,给刚才建好的hello_project项目设置权限:
# trac-admin hello_project permission add root TRAC_ADMIN
这样,访问 http://localhost/trac/hello_project,然后点击上方菜单中的“Login”, 输入用户名root登录之后,即可在右上角看到“Admin”菜单,点击之后即可进入管理界面。
其他资源
- Trac官方主页:http://trac.edgewall.org/
- Trac插件:http://trac-hacks.org/
有几个插件不错,推荐使用:TocMacro, AccountManagerPlugin。