读书人

CentOS上安装Subversionamp;Trac

发布时间: 2012-06-30 17:20:12 作者: rapoo

CentOS下安装Subversion&Trac
SVN + Trac + Apache 完整安攻略,而原本在 SVN 所欠缺的用及限管理介面,也都可以由 Trac 的外程式搞定,可全其美。

本文章合熟悉 SVN 但用任何上案管理的人做考。

注意,本人使用的 Linux 是 CentOS 4.x,RHEL 4.x 也用。


1. 伺服器境及置
在伺服器上,我的置如下:

SVN 相定: /etc/svn/
SVN 案的根目: /var/svn/ (面可以存放多案)
Trac 案的根目: /var/trac/ (面可以存放多案)
SVN 用的密: /etc/svn/account
SVN 用的限: /etc/svn/authz
伺服器 IP: 192.168.1.10
SVN 的存取址: http://192.168.1.10/svn
Trac 的存取址: http://192.168.1.10/trac
所以要先建立些目及案:

mkdir /etc/svn
mkdir /var/svn
mkdir /var/trac
touch /etc/svn/account
touch /etc/svn/authz
chown -R apache /etc/svn因 “account” 及 “authz” 案都需要由 Trac 管理,所以都要把有者改 apache (包含 /etc/svn 目)

2. 增加 yum 的套件伺服器
/etc/yum.repos.d/CentOS-Base.repo,在案最後加入下列的 yum 套件伺服器(自 dag 及 kbs):

[dag]
name=Dag RPM Repostory for RHEL
baseurl=http://apt.sw.be/redhat/el$releasever/en/$basearch/dag/
gpgkey=http://dag.wieers.com/packages/RPM-GPG-KEY.dag.txt
gpgcheck=1
enabled=1
[kbs-CentOS-Misc]
name=CentOS.Karan.Org-EL$releasever - Stable
baseurl=http://centos.karan.org/el$releasever/misc/stable/$basearch/RPMS/
gpgkey=http://centos.karan.org/RPM-GPG-KEY-karan.org.txt
gpgcheck=1
enabled=1增加了套件伺服器之後,就可以直接用 yum 安 SVN 及 Trac 了。

3. 安 SVN 及相套件
以 yum 安 SVN 主程式及相套件:

yum -y install subversion subversion-perl mod_dav_svn apr apr-util4. 安 Trac 及相套件
以 yum 安 Trac 主程式及相套件:

yum -y install trac clearsilver python-clearsilver5. 修改配置:
/etc/httpd/conf/httpd.conf,在最後面加上:

LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /var/svn
Satisfy Any
# HTTP 用
AuthType Basic
AuthName "SVN Repository"
AuthUserFile /etc/svn/account
AuthzSVNAccessFile /etc/svn/authz
Require valid-user
</Location>
<Location /trac>
SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnvParentDir /var/trac
PythonOption TracUriRoot /trac
# HTTP 用
# AuthType Basic
# AuthName "Trac Project"
# AuthUserFile /etc/svn/account
# Require valid-user
</Location>注意上面解(#)的部份,因要用 Trac 的外程式管理用的登入,所以就不需要 HTTP 用,如果比喜用 HTTP 就把下面四行的解拿掉即可,且下面 trac.ini 的定也要把 “trac.web.auth.LoginModule” 用。

6. 建立第一 SVN 的存
先在 /var/svn 建立一名 “project1″ 的存:

svnadmin create /var/svn/project1
chown -R apache /var/svn/project17. 新增一管理者
先在 /etc/svn/account 新增一名 “admin” 的管理者:

htpasswd /etc/svn/account admin是的,只要建立一管理者用即可,稍後可以在 Trac 的外程式新增其它用及管理其限。

8. 建立第一 Trac 的案
在 /var/trac 建立一名 “project1″ 的案:

trac-admin /var/trac/project1 initenv行你一些西,你需要入 “Project Name” 代表案名,而 “Path to repository” 必入 “/var/svn/project1“,代表 SVN 存的路,其它只要按 Enter 使用值即可。面的值稍後可以在案目底下的 conf/trac.ini 做修改。

接著仍需案的有者改 “apache”:

chown -R apache /var/trac/project19. 安 Trac 的外程式
安 Trac 的外程式前,需安 python-setuptools 及建立 Python Egg 的快取目:

cd /tmp
wget http://peak.telecommunity.com/dist/ez_setup.py
python ez_setup.py
mkdir /var/www/.python-eggs
chown apache /var/www/.python-eggs以 easy_install 安五用的 Trac 外程式 (安 for Trac 0.10 的版本):

easy_install http://svn.edgewall.com/repos/trac/sandbox/webadmin

Note: the plugin is no longer necessary starting with version 0.11 of Trac, as it has been integrated into the core package. However don't forget to give permissions to your user. This is accomplished on the command-line (the last command shows what your permissions are):

User age
:trac-admin /path/to/my/project
permission add username-from-htpasswd TRAC_ADMIN
permission list username-from-htpasswd



easy_install http://trac-hacks.org/svn/iniadminplugin/0.10
easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.10
easy_install http://trac-hacks.org/svn/tracwysiwygplugin/0.10
easy_install http://trac-hacks.org/svn/svnauthzadminplugin/0.10五外程式分:

WebAdmin: Trac 的基本管理模。
IniAdmin: trac.ini 管理。
Account Manager: Trac 的用管理。
TracWiki WYSIWYG Editor: Wiki 器成 WYSIWYG 器。
Svnauthz File Administration: SVN 的及存取限管理。
然後 /var/trac/project1/conf/trac.ini,在最後加上:

[components]
#用 WebAdmin 外程式
webadmin.* = enabled
#用 IniAdmin 外程式
iniadmin.iniadmin.iniadminplugin = enabled
#用 TracWysiwyg 外程式
tracwysiwyg.* = enabled
#用 SvnAuthzAdmin 外程式
svnauthz.* = enabled
#用 AccountManager 外程式
acct_mgr.api.accountmanager = enabled
acct_mgr.htfile.HtPasswdStore = enabled
#的 Http 登入方式,改用 AccountManager 的登入
trac.web.auth.LoginModule = disabled
acct_mgr.web_ui.LoginModule = enabled
#用管理
acct_mgr.admin.AccountManagerAdminPage = enabled
#允用更密、除
acct_mgr.web_ui.AccountModule = enabled
[account-manager]
password_format = htpasswd
password_file = /etc/svn/account
password_store = HtPasswdStore另外,你要到 [trac] 找到 “authz_file” 及 “authz_module_name” ,分:

authz_file = /etc/svn/authz
authz_module_name = project1 SVN 的存取限有,”authz_module_name” 要成 SVN 的存名。

最後,你可能要再修改 “default_charset” ,是 “iso-8859-15″,改成你 Checkin 到 SVN 存的案相同文字。

10. Trac 的用管理
通常我先指定 Trac 的管理者、移除客的限、增加一一般用群,指令如下:

trac-admin /var/trac/project1 permission add admin TRAC_ADMIN
trac-admin /var/trac/project1 permission remove anonymous '*'
trac-admin /var/trac/project1 permission add @user LOG_VIEW FILE_VIEW WIKI_VIEW WIKI_CREATE WIKI_MODIFY SEARCH_VIEW REPORT_VIEW REPORT_SQL_VIEW
trac-admin /var/trac/project1 permission add @user TICKET_VIEW TICKET_CREATE TICKET_MODIFY BROWSER_VIEW TIMELINE_VIEW CHANGESET_VIEW ROADMAP_VIEW MILESTONE_VIEW在 Trac ,用群的命名及管理方式是有什的,用也可以是群,所以,你也可以把第一用指定第二用,那第一用就有第二用一的限。在上面的指令,我新增了一名叫 “@user” 的群以做,定其限,只要把用指定 @user,就可以使用相同的限。

11. 定完成
所有的定都完成了,重新 apache:

service httpd restart在的都好了,Trac 的存取位址 “http://192.168.1.10/trac“,SVN 的存取位址 “http://192.168.1.10/svn/project1“。

用器上 Trac 的存取位址,入 “project1″ 案後,示 Forbidden 你有取限,因我在上一步已把客所有的限移除了,在你只能在的右上角找到 “login” 登入 “admin” 。

成功登入 admin 之後,你可以列右的 [Admin] 入管理介面,其中:

General 下的 “Permissions” 是用管理 Trac 的使用限
Account 下的 “Users” 可以用管理 Trac 及 SVN 的用 (/etc/svn/account)
Subversion 下的 “Subversion Access” 才是用管理 SVN 的路存取限及 SVN 的用群 (/etc/svn/authz)


在你要行的,除了新增用(Users)及修改限(Permissions)之外,你如果列上的 [Browse Source] 系也跟你限不足,同的,在任何人都不能存取 SVN 的案(http://192.168.1.10/svn/project1),因 “/etc/svn/authz” 案的容是空白的,你必到 Trac 管理介面的 “Subversion Access” 去你的用有 “/” 路的限才行。

稍後等我有空我再表 Trac 的使用方式,大家可以先考下面的。

读书人网 >操作系统

热点推荐