简介:
本文完整介绍了如何安装、配置、备份 Trac 0.12。但这篇教程仅为官方教程的一个子集,仅适用于使用以下特定平台、软件的环境,并且不能保证适用于高于的 Trac 0.12 版本:
- 操作系统:Ubuntu Linux
- 数据库:SQLite
- 版本控制:Subversion
- 服务器端:tracd (自带)
Trac 的 wiki、浏览代码变更、浏览及对比代码等等功能非常实用,可以大大提高开发效率,而且还具有众多第三方插件可以实现更多的功能。
1. 安装所依赖的包
必须安装的包
- Python:版本必须 >= 2.4 并且 < 3.0
- setuptools:版本 >= 0.6。在这里下载对应 Python 版本及平台的包,这里下载的是 setuptools-0.6c11-py2.6.egg。使用以下命令安装:
sh setuptools-0.6c11-py2.6.egg
- Genshi:版本 >= 0.6。安装好 setuptools 以后,以下安装其他的就很容易了,输入以下命令安装:
easy_install Genshi
- Subversion:版本无要求,当前使用版本为 1.6.x。还需要安装 SVN 的 Python 包才能使 Trac 读取 SVN 数据,使用以下命令安装:
apt-get install python-subversion
需要用到的 Python 包
- Babel:版本 >= 0.9.5,提供本地化支持。Trac 有中文界面(但帮助没有汉化),但注意必须在安装 Trac 之前安装此包,否则只能显示英文界面。
- docutils:版本 >= 0.3.9,用于 WikiRestructuredText。
- Pygments :用于语法高亮。
以上包都可以用 easy_install 命令安装:
easy_install Babel docutils Pygments
2. 安装 Trac
用 easy_install 命令安装,指定安装最新稳定版本 0.12:
easy_install Trac==0.12
3. 初始化 Trac 项目环境及运行
项目环境就是存储 Trac 所有后台数据的一个目录。初始化配置 Trac 项目环境使用以下命令(目录为 /path/to/myproject,权限设为对所有人可读写):
trac-admin /path/to/myproject initenv
首先第一个要输入的是项目名称,随意即可,以后也可以更改。接着是设置数据库连接字符串,这里用的是默认的 SQLite,直接回车键即可。
接着运行 Trac 服务。这里使用的是 Trac 自带的服务器,无须安装,直接运行以下命令即可:
tracd -s --port 8000 /path/to/myproject
接着在浏览器输入 服务器IP地址:8000 应该进入一个项目列表,表示服务器启动成功。
4. 必备 Trac 插件及配置
Account Manager Plugin
Account Manager Plugin 用于账户管理,使用它可以在 HTML Form 中登录。安装:easy_install https://trac-hacks.org/svn/accountmanagerplugin/trunk
接着需要启用该插件。这里的账户与已有的 SVN 服务器的 Apache 产生的用户名和密码共用(也就是与 SVN 帐户相同),设置密码储存方式并指定密码文件路径即可。打开 /path/to/myproject/conf/trac.ini,加入如下内容(文件位置 /path/to/svn.htpasswd):
[components] trac.web.auth.LoginModule = disabled acct_mgr.web_ui.LoginModule = enabled acct_mgr.web_ui.RegistrationModule = disabled acct_mgr.htfile.HtPasswdStore = enabled [account-manager] ; configure the plugin to store passwords in the htpasswd format: password_store = HtPasswdStore ; the file where user accounts are stored ; the webserver will need write permissions to this file ; and its parent folder password_file = /path/to/svn.htpasswd
如果不是使用 Apache htpasswd 认证方式的话,请查看 Account Manager Plugin 说明另外配置。
接着启动 Trac 服务器,可以正确的登录的话表示配置成功。
设置 Trac 管理员账户
使用以下命令对用户 username 进行管理员权限授权,管理员拥有 Trac 最高权限,可以对其插件、用户权限登进行管理。
trac-admin /path/to/myproject permission add username TRAC_ADMIN
接着启动 Trac 服务器,使用管理员账户登录,如果看到有“管理”标签的话表示配置成功。进入管理标签可以在 Web 界面进行 Trac 配置管理。
配置 SVN
设置 SVN 路径
与已有 SVN 服务器集成,就可以方便的查看源代码、查看 log、对比版本差异。使用以下命令安装 TracSvnAuthzPlugin 插件:
easy_install https://svn.geophysik.uni-muenchen.de/svn/tracmods/tracsvnauthzplugin/0.11
接着在浏览器中使用管理员账户登录 Trac(以后默认使用此方式管理),在插件栏里面启用 TracSVNAuthz 0.11.1.1 模块。
然后在版本库栏那里加入 SVN 版本库,名称假设为 repos_name,类型选择默认,写上 repository 的完整路径就可以了。运行命令同步版本库:
trac-admin /path/to/myproject repository resync "repos_name"
然后就可以看到多了一个“源码浏览”的标签,打开可以看到咱们的源码。
配置权限
接着要配置 SVN 浏览权限,本来打算权限设置文件是直接读取 SVN 上面的权限文件的,结果发现有冲突。Trac 中默认最先找到的权限有效(svn1.5 采用此方式),而 svn1.6 采用配置当中默认是最高权限有效。就是说如果一个用户被多次授权的话,两种授权方式就会产生冲突。如果使用 svn1.6 的话就不能直接使用 SVN 的权限作为浏览代码权限(也就是仅作登录 Trac 使用),可以改用 Trac 当中源代浏览权限方式控制,具体操作如下。
在 web 管理界面的权限中,把匿名用户组 anonymous 的所有权限删除,并加到登录用户 authenticated 当中,不登录不能查看任何内容。接着把以下登录用户组 authenticated 浏览 SVN 源代码权限取消:
BROWSER_VIEW LOG_VIEW FILE_VIEW CHANGESET_VIEW
新建一个组,把需要浏览 SVN 代码的人都添加进去,接着给这个组加上以上浏览源代码的权限。
同步版本库
接着需要给 SVN 加上 post-commit hook,用于通知 Trac 源代码有上传。注意:必须给所有用户加上 /path/to/myproject/db 目录以及 trac.db 文件的 rw 权限,否则无法更新。
trac-admin /path/to/myproject changeset added "$REPOS" "$REV"
接着加上 pre-revprop-change hook,通知 SVN 有修改
trac-admin /path/to/myproject changeset modified "$REPOS" "$REV"
5. 其他 Trac 插件
以下插件均可以在 web 管理界面当中启用,具体配置请看相应插件的说明。一般均可用 easy_install 命令安装,注意需要重启 Trac 服务方可看到新的插件。
- IniAdminPlugin:在 web 界面中编辑 trac.ini 配置文件。
- TracWysiwygPlugin:除自带的文本方式编辑 wiki 外,此插件提供所见即所得编辑支持,但最好使用文本方式编辑。
- TracStatsPlugin:项目统计插件,图形化显示版本库、wiki、任务单的统计数据,源码庞大时速度较慢。
6. 其他
需要热备份 Trac,运行命令把数据文件复制出来一份(备份目录 /path/to/backup):
trac-admin /path/to/project hotcopy /path/to/backup
开机自动运行,在 /etc/rc.local 加入命令即可:
tracd -p 8000 /path/to/project
立即在后台运行 tracd 服务。使用 nohup 命令使其后台运行,并把默认的 nohup.out 输出文件重定向至 /dev/null 就可以不产生文件。2>&1 表示把错误输出重定向至标准输出。
nohup tracd -p 8000 /path/to/project > /dev/null 2>&1 &
没有评论:
发表评论