lxr是一个基于web的源代码交叉索引工具,用来阅读源代码非常方便,但lxr的配置确实很痛苦,今天在gentoo下配置lxr费了点周折,不过总算是成功了,现记录一下配置过程,以防下次配置再走弯路!以pidgin-2.4.1为例。
1、安装
gentoo下安装lxr很简单,直接emerge即可,不过要注意的是lxr是采用perl语言写的,要求perl和libperl安装的时候加上ithreads这个USE Flag,另外需要emerge apache mod_perl mysql,索引工具采用glimpse则emerge glimpse,如果要采用swish-e就USE=freetext emerge lxr即可。
2、准备源码目录
在我机器上,/data/codes/other是用来存放第三方我需要阅读的项目,配置lxr先在/data/codes/other目录下创建了pidgin并将pidgin解压至pidgin目录改名为2.4.1,在/data/codes/others/pidgin目录下创建versions文件,写入2.4.1。
3、准备数据库
执行mysql -u root < /usr/share/webapps/lxr/0.9.5/sqlscripts/mysql/0.9.5_create.sql创建一个lxr库,然后将/var/lib/mysql/lxr库名改为pidgin。如果要添加别的项目再做类似的工作即可。
4、配置lxr
首先配置你的apache,生成默认的web目录,emerge --config =www-servers/apache-x.x.x,然后修改/etc/conf.d/apache,给APACHE2_OPTS加上"-D PERL"选项,重启apache即可。然后执行cp -pr /usr/share/webapps/lxr/0.9.5/htdocs /var/www/localhost/htdocs/pidgin,如果要添加另一个项目重复此cp操作,重要的就是配置lxr.conf,上传了一个pidgin的lxr.conf可以参考。
5、生成索引
进入/var/www/localhost/htdocs/pidgin,ln -snf /data/codes/other/pidgin/lxr.conf然后执行./genxref --url=http://localhost/pidgin即可生成索引,(对了,到这儿你会发现操作mysql数据库时会报错,是因为lxr建的lxr_releases表里的release字段与mysql的关键字冲突,需要修改一下/usr/lib/perl5/vendor_perl/5.8.8/LXR/Index/Mysql.pm文件,将其中的sql语句中的release字段都加上``变成`release`)现在基本上可以访问了。