Perforce+Trac 0.11安装笔记(附一些问题解决方法如中文乱码问题)
网上有很多svn+Trac的安装配置文档,但是有人给做了Trac的后端版本控制扩展,是Trac的应用不再限于svn版本库,在这儿就尝试着给Trac安装一个Perforce后端版本库一下。
Trac是使用Python编写的,因此首先要个机器安装Python环境
安装Python
-
wget http://www.python.org/ftp/python/2.5.2/Python-2.5.2.tgz
-
tar -xzvf Python-2.5.2.tgz
-
cd Python-2.5.2
-
./configure
-
make
-
make install
为Python安装easyinstall
-
wget http://peak.telecommunity.com/dist/ez_setup.py
-
python ez_setup.py
安装PyProtocol
-
wget http://peak.telecommunity.com/dist/PyProtocols-0.9.3.tar.gz
-
tar -xzvf PyProtocols-0.9.3.tar.gz
-
cd PyProtocols-0.9.3
-
python setup.py install
安装SQLite3
-
wget http://www.sqlite.org/sqlite-amalgamation-3.6.2.tar.gz
-
tar -xzvf sqlite-amalgamation-3.6.2.tar.gz
-
cd sqlite-3.6.2/
-
./configure
-
make
-
make install
安装 PySqlite
-
wget http://oss.itsystementwicklung.de/download/pysqlite/2.5/2.5.0/pysqlite-2.5.0.tar.gz
-
tar -xzvf pysqlite-2.5.0.tar.gz
-
cd pysqlite-2.5.0
-
python setup.py install
安装Trac
-
wget http://ftp.edgewall.com/pub/trac/Trac-0.11.1.tar.gz
-
tar -xzvf Trac-0.11.1.tar.gz
-
cd Trac-0.11.1
-
python setup.py install
官方安装配置页面 http://trac.edgewall.org/wiki/TracInstall
采用简单的独立服务启动,没有使用mod_python和fastcgi等方式
-
trac-admin /var/trac/test initenv
-
tracd –port 8080 /var/trac/test
可以测试trac运行正常
-
svn co http://trac-hacks.org/svn/zoomquiettranslation/trunk/0.11.x
-
trac-admin /var/trac/test wiki load default-pages/
-
cp ZhTracGuideToc.py /var/trac/test/plugins
在trac.ini中添加如下内容
[mainnav] wiki.href = /wiki/ZhWikiStart [metanav] help.href = /wiki/ZhTracGuide
添加Perforce版本库支持
Python的Perforce支持PyPerforce
-
wget http://downloads.sourceforge.net/pyperforce/PyPerforce-0.4.zip?modtime=1186240132&big_mirror=0
-
unzip PyPerforce-0.4.zip
-
cd PyPerforce-0.4
-
python setup.py install
-
LD_LIBRARY_PATH=/usr/local/ssl/lib python setup.py install
下载安装Perforce Plugin
-
unzip perforceplugin_trunk.zip
-
cd perforceplugin/trunk
-
python setup.py bdist_egg
-
python setup.py install
配置PerforcePlugin
修改 /var/trac/test/conf/trac.ini 文件,在trac这一节中添加如下一些内容
[trac] repository_type = perforce repository_dir = / [perforce] port = perforce:1666 user = p4trac password = test unicode = 0
建议在 Perforce 的配置中添加一个 只读权限并且不过期的账号,然后在Trac的配置中使用这个账号,并使用Perforce的Ticket来替代Password验证,达到不透露账号密码做保护的目的。
安装过程碰到的问题以及解决
- 安装Python包过程中碰到 ImportError: No module named _md5
- 安装Trac是碰到global name ‘sqlite’ is not defined
- 使用Perforce时提示 Unsupported version control system “perforce”
- Trac 显示中文乱码
-
cs = CharSet(self._connection.charset)
-
if cs is CharSet.UTF_8:
-
self._codec = 'utf8'
-
elif cs is CharSet.NOCONV:
-
self._codec = 'iso-8859-1'
-
else:
-
raise NotImplementedError("Charset '%s' not supported" % str(cs))
-
cs = CharSet(self._connection.charset)
-
if cs is CharSet.UTF_8:
-
self._codec = 'utf8'
-
elif cs is CharSet.NOCONV:
-
self._codec = 'gbk'
-
else:
-
raise NotImplementedError("Charset '%s' not supported" % str(cs))
- 单击数字rev号时,提示previous_rev() takes exactly 2 arguments (3 given)
-
def previous_rev(self, rev, path=''):
-
if self.has_linear_changesets:
-
return self._next_prev_rev('<', rev, path)
-
else:
-
return self.repos.previous_rev(rev, path)
-
def previous_rev(self, rev, path=''):
-
if self.has_linear_changesets:
-
return self._next_prev_rev('<', rev, path)
-
else:
-
return self.repos.previous_rev(rev)
- 登陆时提示Authentication information not available.
-
/usr/local/apache/bin/htpasswd -c /var/trac/.passwd test
-
tracd –port 8080 –basic-auth=*,/var/trac/.passwd,test.com /var/trac/test
网上查找问题,发现是openssl 版本低的原因(0.9.7a),升级Openssl 库到0.9.8g,修改 /etc/ld.so.conf 文件,添加一行 /usr/local/ssl/lib ,ldconfig -v 问题解决 缺少ld的搜索路径,修改 /etc/ld.so.conf 文件,添加一行 /usr/local/lib ,然后再 ldconfig -v 一下,正常 经过n多次尝试和网上查找资料后发现只要在trac.ini中添加如下一段,正常。 1. 文件中的中文乱码 2. Browse 中的文件名列表和changelist中的中文文字乱码 替换成
然后重新安装一下perforceplugin,不要忘记将trac工作环境重新做一下,要不然修订信息还会是乱码,为了这个折腾了我好长时间(我的猜想:这个应该和sqlite中存放的数据编码格式有关系)。 将Trac的versioncontrol目录下cache.py中 修改为
为了不重新安装Trac,可以直接修改site-packages目录下的Trac中的文件 lib/python2.5/lib/site-packages\Trac-0.1….egg/trac/versioncontrol/cache.py 因为是StandAlone的Tracd运行,缺少apache那样的basic auth,所以要按照Tracd的要求来建立验证文件。 修改Trac的启动命令,添加basic_auth参数
官方完整的tracd配置说明
LD_LIBRARY_PATH=/usr/local/ssl/lib python setup.py install
[components]
p4trac.* = enabled
通过修改 trac.ini 中过的 default_charset = utf-8 就可以了,当然如果自己的文件是其他格式的,则需要修改为其他编码,如果文件内容中的编码有两种以上,那就比较麻烦了。
修改perforceplugin的repos.py文件,将
使用apache的htpasswd制作验证文件
Popularity: 4% [?]
Related
为Linux系统升级SSH(安装配置OpenSSH 5.0p1)
在升级了openssl后,我们还要升级一下SSH
1. 首先将原有的ssh停止卸载掉
-
service sshd stop
-
rpm –e openssh –nodeps
-
rpm –e openssh-server –nodeps
-
rpm –e openssh-askpass-gnome
-
rpm –e openssh-askpass
2. 然后通过
-
wget ftp://ftp.jp.openbsd.org/pub/OpenBSD/OpenSSH/portable/openssh-5.0p1.tar.gz
下载最新的openssh源码包。
3. 对源码包进行编译安装
-
tar -xzvf openssh-5.0p1.tar.gz
-
cd openssh-5.0p1
-
./configure –prefix=/usr –sysconfdir=/etc/ssh –with-pam –with-ssl-dir=/usr/local/ssl –with-md5-passwords –mandir=/usr/share/man
-
make
-
make install
4.通过 ssh -ver 查看安装的版本号,验证安装结果
5.启动服务看服务的运行情况
-
service sshd start
-
netstat -na |grep :22
6.使用ssh客户端登陆验证服务运行情况(本地登陆验证).
-
ssh 127.0.0.1
注意:
这么升级完成以后,在开机启动后sshd并没有启动
而且原先可以使用的 #service sshd start / stop 方式也将不再可用。
为了能够开机启动sshd,我们可以有两种方法解决。
1.在做处理前(卸载原先的sshd rpm包之前)
先将 /etc/init.d/sshd 做个备份,
在升级好了以后,再将备份的sshd文件拷贝到/etc/init.d目录下,同时再执行
-
chkconfig –add sshd
-
chkconfig –level 123456 sshd on
这样开机后就可以自动启动sshd服务了,
同时也继续可以使用 serveice sshd start / stop 这样的方式管理sshd服务。
2.升级完成以后在 /etc/rc.local 文件中添加一句 /usr/sbin/sshd
这样,当机器启动后也可以自动启动ssh服务了
Popularity: 3% [?]
Related
升级Linux的OpenSSL
RHEL4系统默认安装的OpenSSL有些旧了,有安全报告存在缺陷,需要做一下升级。
升级参考文章: http://www.oklinux.cn/html/Basic/rjyy/20070516/23426.html
升级步骤
0. 首先通过 #openssl version –a 查看系统中存在的OpenSSL版本号
1. 通过命令
-
wget http://www.openssl.org/source/openssl-0.9.8g.tar.gz
获得0.9.8g的源码包
2. 安装openssl
-
tar –xzvf openssl-0.9.8g.tar.gz
-
cd openssl-0.9.8g
-
./config shared zlib
-
make
-
make install
-
mv /usr/bin/openssl /usr/bin/openssl.OFF
-
mv /usr/include/openssl /usr/include/openssl.OFF
-
ln –s /usr/local/ssl/bin/openssl /usr/bin/openssl
-
ln –s /usr/local/ssl/include/openssl /usr/include/openssl
3 配置库文件搜索路径
-
echo “/usr/local/ssl/lib” >> /etc/ld.so.conf
-
ldconfig –v
4 查看openssl 版本号,验证安装正确性
-
openssl version –a
可以看到是新装好的0.9.8g版本
Popularity: 3% [?]