十一 04

初衷是想建立看过或者写过的代码的交叉索引,
并且可以通过Web浏览。

下载了两个版本的LXR:0.3和0.9.5。
0.3比较简单,不需要数据库的支持;
0.9.5则复杂许多,需要与数据库交互,支持mysql、postgreSql和Oracle。

先尝试安装0.9.5,毕竟是最新的版本:)
不过LXR的文档写得不好,没有一个清晰的安装步骤。
0.9.5号称只支持mysql4.0,我也不会因为要装一个LXR而把Mysql降级,所以尝试整合。
根据实验,应该是release这个关键字与Mysql5.0以上版本冲突的原因。
可能通过改建库的sql文件和Mysql.pm可以解决。

initdb-mysql:
35 create table lxr_releases
36         (fileid         int not null references lxr_files,
37         release_iver    char(255) binary not null,
38         primary key     (fileid,release_iver)
39 );

lib/LXR/Index/Mysql.pm
把所有的r.release改成r.release_iver
74:               . “and  s.symname = ? and  r.release_iver = ?”);
105:              . “and s.symname = ? and  r.release_iver = ? ”
118:              . “and r.release_iver = ?”);
123:              . “and r.release_iver = ?”);
128:              . “and r.release_iver = ?”);
135:              . “and r.release_iver = ?”);

然后修改lxr.conf
不是一般的复杂……
几经调整之后,
运行./genxref –url=http://www.liangjianhua.com/lxr

数据库中生成索引数据,
但是通过http://liangjianhua.com/lxr/source访问的时候会报500……

似乎是相对路径的问题,
但如果还需要改Perl脚本的话实在太麻烦了,
暂时到此为止吧。

半天之内想装好太难了。

Leave a Reply

preload preload preload

无觅相关文章插件,快速提升流量