我们先来看看如何部署最终的实现。下面的安装配置过程中的命令是在 Debian Linux 下完成。至于 Windows 或其他平台,应该与之类似。
理论上最简单的安装模式:
$ sudo easy_install pySvnManager
Searching for pySvnManager
Reading http://pypi.python.org/simple/pySvnManager/
Reading https://sourceforge.net/projects/pysvnmanager
理论上很简单的东西,却奈何不了复杂的现实:
在项目刚刚开发完成,就出现了相当长一段时间的 SourceForge.net
无法访问!
导致 easy_install 为了搜索最新版本,在连接到
http://pysvnmanager.sourceforge.net 时发生了死锁而阻塞。
虽然我打算把项目移到别处,但发现一些依赖的包如: python-ldap
也是要访问 SourceForge.net
网站。因此我取消了搬家的打算,耐心且无助的等待解封。
同时将代码镜像在网址:http://svn.worldhello.net/svn/pysvnmanager
上,供不能访问 http://pysvnmanager.sourceforge.net 的用户参考。
如果遇到阻塞,则需要花费更多的时间,手工下载软件包。easy_install 也可以安装已经下载到本地的软件包。
$ wget http://pypi.python.org/packages/source/p/pySvnManager/pySvnManager... $ sudo easy_install pySvnManager-...
PySvnManager 的软件包有两种格式。一种是二进制的格式: 二进制包,是针对特定的 Python 版本编译的,如果您当前的 Python 版本和二进制包的版本不符, 就必须从源码包开始安装过程。无论源码包还是二进制的 Egg 包,都可以方便的使用 easy_install 进行安装。 |
执行 make-config 和 setup-app 完成部署。部署过程的细节参见后面软件集成的相关内容。
$ mkdir deploy $ cd deploy $ paster make-config pySvnManager config.ini Distribution already installed: pySvnManager 0.1.2dev-r9 from /home/jiangxin/pyenv/lib/python2.5/site-packages/pySvnManager-0.1.2dev_r9-py2.5.egg Creating config.ini Now you should edit the config files config.ini $ paster setup-app config.ini Running setup_config() from pysvnmanager.websetup
部署目录下的四个配置文件:
config.ini
:
应用默认运行于5000端口,可以在此文件中定制
config/localconfig.py
:
设置应用缺省的认证方式,缺省用 “config/svn.passwd
” 口令认证
config/svn.passwd
:
缺省该口令文件内所有用户的口令均为 "guess"
config/svn.access
:
svn路径授权文件,本应用要处理的文件。注意该文件开头的注释是版本号和版本库管理员帐号设置,
不要随意删除!
启动应用,自动开启Web服务于5000端口。用Web浏览器访问。推荐使用 Firefox。
$ paster serve config.ini
Starting server in PID 28937.
serving on 0.0.0.0:5000 view at http://127.0.0.1:5000
参见演示网站:http://demo.ossxp.com/svnadmin/
Subversion 的授权机制,可能存在互相冲突的策略,导致用户权限的设置可能并不符合预期。 可以通过“权限检查”的功能对用户权限进行检查。参见: 图 1 “用户权限测试功能”
管理员可以用图形界面对用户帐号进行角色管理,可以对版本库的授权进行设置。参见: 图 2 “路径授权设置功能”
PySvnManager 还提供的版本库创建和删除(仅限空版本库), 以及版本库钩子脚本的设置界面。参见: 图 3 “版本库创建及钩子脚本扩展”
下面将整个开发过程进行概要的介绍,展示如何用 Python 进行敏捷的 Web 开发。
Copyright © 2006 WorldHello 开放文档之源 计划 |