Archive for the ‘Tech Tools’ Category

安装配置 SubVersion – 开放源代码的版本控制系统

04.14.2010 by star - 0 Comment
Posted in Tech Tools

SVN是一款开放源代码的版本控制系统,可以单独使用,也可以集成到Trac使用
SVN管理软件源代码;Trac进行缺陷追踪管理。

安装过程

$ sudo apt-get install subversion
$ sudo apt-get install libapache2-svn # 如果需要Apache2支持SVN

配置服务

创建 SVN 仓库

创建组和用户:

sudo addgroup subversion
sudo usermod -G subversion -a www-data

准备SVN仓库目录:

$ sudo mkdir /home/svn
$ cd /home/svn
$ sudo mkdir myproject
$ sudo chown -R root:subversion myproject
$ sudo chmod -R g+rws myproject

创建SVN仓库:

$ sudo svnadmin create /home/svn/myproject

直接访问SVN仓库(file://)

当客户端与服务端在同一台计算机上,可以直接访问SVN。
注:如果并不确定主机的名称,必须使用三个斜杠(///),而如果指定了主机的名称,则必须使用两个斜杠(//).

$ svn co file:///home/svn/myproject
$ svn co file://localhost/home/svn/myproject

注:SVN使用可以参考下面的文档
使用Subversion进行版本控制

通过 WebDAV 协议访问(http://)

加入下面的代码片段到 /etc/apache2/mods-available/dav_svn.conf
注:如果需要用户每次登录时都进行用户密码验证,请将<LimitExcept GET PROPFIND OPTIONS REPORT>与</LimitExcept>两行注释掉。
注:用户密码文件可以使用Trac配置的那个文件,这样可以统一通过Trac的web接口管理用户。

<Location /svn/myproject>
DAV svn
SVNPath /home/svn/myproject
AuthType Basic
AuthName “myproject subversion repository”
AuthUserFile /etc/subversion/passwd
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>

配置用户信息

$ sudo htpasswd -c /etc/subversion/passwd user_name # passwd file does not exist
$ sudo htpasswd /etc/subversion/passwd other_user_name # passwd file exist

重启服务

sudo /etc/init.d/apache2 restart

可以访问SVN

$ svn co http://hostname/svn/myproject myproject –username user_name

通过具有安全套接字(SSL)的 WebDAV 协议访问(https://)

方法同上,需要在 Apache 上先配置 SSL
Apache2上安装配置SSL
Create a Certificate

$ sudo apt-get install ssl-cert
$ sudo mkdir /etc/apache2/ssl
$ sudo make-ssl-cert /usr/share/ssl-cert/ssleay.cnf /etc/apache2/ssl/apache.pem

Install Module

$ sudo a2enmod ssl

Create virtualhost

$ sudo cp /etc/apache2/sites-available/default-ssl /etc/apache2/sites-available/ssl
$ sudo vi /etc/apache2/sites-available/ssl # Add the following

SSLEngine On
SSLCertificateFile /etc/apache2/ssl/apache.pem
ServerSignature On

Enable SSL virtualhost

$ sudo a2ensite ssl
$ sudo vi /etc/apache2/sites-available/default # update default config
<virtualhost *:80>

Restart Apache2

$ sudo /etc/init.d/apache2 restart

通过自带协议访问(svn://)

修改 /home/svn/myproject/conf/svnserve.conf 来配置其访问控制

# [general]
# password-db = passwd

修改 /home/svn/myproject/conf/passwd 来配置用户,明文密码

username = password

启动SVN服务,SVN 监听默认的端口(3690)

$ svnserve -d –foreground -r /home/svn

远程访问SVN

$ svn co svn://hostname/myproject myproject –username user_name

通过具被SSH隧道保护的自带协议访问(svn+ssh://)

注:SVN配置和服务器进程同上面
安装 SSH Server

$ sudo apt-get install ssh

svn+ssh:// 协议使用 SSH 加密来访问 SVN 文件仓库

$ svn co svn+ssh://hostname/home/svn/myproject myproject –username user_name

注:使用svn+ssh访问时需要SVN完整路径,例 /home/svn/myproject

Refer to

SubVersion服务安装设置
how to setup Subversion alias SVN on Ubuntu

安装 Trac 插件 – Account Manager Plugin

04.13.2010 by star - 0 Comment
Posted in Tech Tools

安装设置 Trac后,默认的用户使用的是 Apache2 自带的验证功能。用它来做用户管理不是很方便,推荐使用插件进行管理。
Homepage: Account Manager Plugin

安装过程

For Trac 0.10:
easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.10
For Trac 0.11
easy_install http://trac-hacks.org/svn/accountmanagerplugin/0.11
For Trac 0.12:
easy_install http://trac-hacks.org/svn/accountmanagerplugin/trunk

配置插件

修改Apache配置

删除 Apache2 配置信息,/etc/apache2/sites-available/default

<LocationMatch “/[^/]+/login”>
AuthType Basic
AuthName “trac”
AuthUserFile /var/www/trac/.htpasswd
Require valid-user
<LocationMatch>

修改trac.ini配置

配置文件中增加,/var/www/trac/conf/trac.ini

[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]
password_format = htpasswd
password_store = HtPasswdStore
password_file = /var/www/trac/.htpasswd #这里配置密码文件的路径,根据实际情况修改

重启服务

$ sudo /etc/init.d/apache2 restart

Refer to:
为Trac安装基于Web表单登录验证界面的插件

安装设置 Trac

04.08.2010 by star - 0 Comment
Posted in Tech Tools

Trac is an enhanced wiki and issue tracking system for software development projects.
简单的说,Trac是Edgewall公司开发并维护的开放源码网页界面专案管理、缺陷追踪软件。
Homepage: http://trac.edgewall.org/

Trac使用超链接方式把软件缺陷数据库、版本控制系统和wiki内容结合起来,并作为版本控制系统的web接口,支持的版本控制系统包括Subversion, Git, Mercurial, Bazaar, Perforce, Darcs.

如果在Ubuntu下安装的话,可以参考下面这篇文章

http://wiki.ubuntu.org.cn/Trac的安装设置

Trac安装

在Ubuntu下安装Trac十分简单,只需要输入下列命令即可:

sudo apt-get install trac

这样的话,Ubuntu会自动下载安装trac、apache、subversion等必要的软件(建议先行安装apach2、subversion),如果需要trac支持BZR,则还需要用下列命令安装BZR插件:

sudo aptitude install trac-bzr

同样的,如果要其支持GIT,则需要用下列使用安装GIT插件:

sudo aptitude install trac-git

本文以subversion为例,介绍Trac的安装过程。
[编辑] Trac设置
[编辑] 配置Subversion版本库

Subversion 文件仓库可以放在任意位置,其中有两个最常用的位置分别是:/usr/local/svn 和 /home/svn。为了在下面的描述中简单明了,假设您的 Subversion 文件仓库放在 /home/svn/repo,并且项目名称为“trac”。
[编辑] 设置访问Subversion版本库的用户和用户组

设置Subversion版本库的访问权限也有很多方法,通常的做法是,创建一个名为“Subversion”的组,并将该组拥有访问 Subversion版本库所在的目录的权限,同时将需要访问Subversion版本库的用户加入到这个组中(在这里添加的是自己的本地用户和 Apache2用户):

sudo groupadd subversion
sudo usermod -G subversion -a firehare
sudo usermod -G subversion -a www-data

[编辑] 创建Subversion版本库并设置访问权限

创建Subversion版本库目录十分简单,只需要输入下列命令即可:

sudo mkdir -p /home/svn/repo
sudo chown -R root:subversion /home/svn/repo
sudo chmod -R g+rws /home/svn/repo
sudo svnadmin create /home/svn/repo

[编辑] 配置PostgreSQL数据库
[编辑] 安装并启动PostgreSQL数据库

安装PostgreSQL数据库很简单,只需要:

sudo apt-get install postgresql

为了让trac能访问PostgreSQL,则需要安装python-psycopg2模块:

sudo apt-get install python-psycopg2

启动PostgreSQL服务器daemon(命令中的版本号可能不同):

sudo /etc/init.d/postgresql-8.3 start

[编辑] 添加PostgreSQL用户和数据库

添加PostgreSQL用户和数据库也很简单,只需要输入下列命令:

sudo -u postgres sh (切换到postgres用户)
createuser -A -D -P firehare (创建firehare用户,并提示输入密码,请输入123456以便和下文对应)
Shall the new role be allowed to create more new roles? (y/n) y
createdb -O firehare trac (创建trac数据库)
exit (退出postgres用户,回到正常用户提示行)

[编辑] 创建配置Trac环境

Trac用目录和数据库来储存项目信息, 叫做”环境“。一个新的Trac环境是通过使用trac-admin创建出来的,同Subversion一样,Trac环境可以放至在任意位置,由于 Trac是个Web应用,是通过Apache来访问的,所以通常将其设在/var/www目录中。具体命令及设置如下:

cd /var/www
sudo mkdir trac
sudo chown -R www-data:www-data trac
sudo -u www-data trac-admin trac initenv
Project Name [My Project]> cmet (在这里输入你的项目名称)
Database connection string [sqlite:db/trac.db]>postgres://firehare:123456@localhost/trac (输入PostgreSQL数据库的位置)
Repository type [svn]>
Path to repository [/path/to/repos]> /home/svn/repo (在这里输入你的项目对应的Subversion地址,注意Trac默认情况下只能访问本机的Subversion仓库,在上面填写地址时不能加”file://”前缀。)
Templates directory [/usr/share/trac/templates]>/usr/share/pyshared/trac/templates

[编辑] 配置Apache

创建Trac环境后,还需要在Apache2中进行相应的配置才能正常使用。配置Trac有两种方式:做为CGI(CGI、WSGI、FCGI)以及使用mod-python。在这里,我们使用apache2-mod-python方式来配置Apache2服务器:

sudo apt-get install libapache2-mod-python libapache2-mod-python-doc
sudo a2enmod python

然后配置虚拟主机站点,当然如果没有虚拟主机的话,也可以将之放在/etc/apache2/sites-available/default文件中,在这里我们还是新建一个虚拟主机:

sudo vi /etc/apache2/site-available/trac


ServerName trac.firehare.name
ServerAdmin ubuntu.firehare@gmail.com
DocumentRoot /var/www/myproject

SetHandler mod_python
PythonInterpreter main_interpreter
PythonHandler trac.web.modpython_frontend
PythonOption TracEnv /var/www/trac/
PythonOption TracUriRoot /
SetEnv PYTHON_EGG_CACHE /tmp


AuthType Basic
AuthName “CMET_WZU Trac Server”
AuthUserFile /var/www/trac/.htpasswd
Require valid-user

ErrorLog “/var/log/apache2/trac_errors.log”
CustomLog “/var/log/apache2/trac_accesses.log” common

设置Trac的访问权限

sudo htpasswd -c /var/www/trac/.htpasswd firehare

将该虚拟主机激活:

sudo a2ensite trac
sudo /etc/init.d/apache2 restart

由于使用了域名,则需要在DNS(域名)服务器上将trac.firehare.name指向本机即可,如果没有DNS服务器,又想测试一个效果,可以在/etc/hosts文档中加入以下配置:

127.0.0.1 trac.firehare.name

[编辑] 测试Trac

接下来就可以通过在浏览器地址栏中输入 http://trac.firehare.name (这个网址由您的虚拟主机名决定)来访问Trac了

注:我最后没有配置虚拟主机站点,直接修改 Apache2 的配置文件:/etc/apache2/sites-available/default

数据安全性:备份和恢复

1. Trac系统的备份和恢复也可使用trac-admin工具来完成,还可支持热备份。备份命令如下:
$ sudo trac-admin /var/www/trac hotcopy ~/backup
执行该命令时,Trac会自动锁住SQLite数据库,并把/data/trac目录拷贝到~/backup目录。恢复备份也很简单,只需停止Trac进程,如Apache服务器或tracd服务器。接着把~/backup整个目录恢复回/data/trac目录就可以了。
2. SVN的备份和恢复
Backup:
svnadmin dump /svn/repository_path > dumpfile
Restore:
svnadmin load /svn/repository_path < dumpfile

Refer to:
http://zh.wikipedia.org/wiki/Trac
http://trac.edgewall.org/wiki/0.11/TracOnUbuntu