初衷是想建立看过或者写过的代码的交叉索引,
并且可以通过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脚本的话实在太麻烦了,
暂时到此为止吧。
半天之内想装好太难了。