2014年11月9日星期日

简单trac安装与设定指南

简介

本文完整介绍了如何安装、配置、备份 Trac 0.12。但这篇教程仅为官方教程的一个子集,仅适用于使用以下特定平台、软件的环境,并且不能保证适用于高于的 Trac 0.12 版本:

  • 操作系统:Ubuntu Linux
  • 数据库:SQLite
  • 版本控制:Subversion
  • 服务器端:tracd (自带)

Trac 的 wiki、浏览代码变更、浏览及对比代码等等功能非常实用,可以大大提高开发效率,而且还具有众多第三方插件可以实现更多的功能。

1. 安装所依赖的包

必须安装的包

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 &

参考资料

没有评论:

发表评论