红联Linux门户
Linux帮助

Linux源码阅读工具lxr和glimpse的安装与配置

发布时间:2009-08-02 19:25:12来源:红联作者:pangheming
Lxr(linuxcrossreference)是一款Linux下的源代码阅读工具:它通过对指定的源代码目录建立索引数据库,利用perl脚本动态生成包含源代码的web页面,使用户可以在任何一种浏览器中查阅。在此web页中,所有变量、常量、函数都以超连接的形式给出,查阅十分方便。

Glimpse是一款索引与查找工具,它也是先对目标目录进行索引生成索引文件,然后就可以快速的查找到结果;Lxr与其一起使用效果更佳!

因为需要web支持,所以还需安装一个web服务器,选择最常用apache2即可!Web服务器apache2的安装配置请参见http://wzc0066.blog.hexun.com/6582493_d.html中的第三条!(我的系统是ubuntu7.04;我的apache2的根目录是/var/www/)
下面步入正题:

一、Lxr的安装与配置:


使用"Synaptic"安装lxr软件包(其默认安装路径是/usr/share/lxr/http/)
因为要使用web服务器,所以需将相应的文件copy到apache2的根目录里,并进行配置:

#mkdir /var/www/lxr
#cp -r /usr/share/lxr/http/* /var/www/lxr/
#cd /var/www/lxr/
#vi lxr.conf #编辑lxr的配置文件

baseurl: http://your_ip/lxr/ #通过浏览器访问的url
htmlhead: /var/www/lxr/template-head
htmltail: /var/www/lxr/template-tail
htmldir: /var/www/lxr/template-dir
sourceroot: /home/zwang/work/linux-2.6.18/ #需要索引的源代码目录
srcrootname: Linux-2.6.18
dbdir: /var/www/lxr/dbdir/ #生成的索引文件存放的目录,需要手动创建


在/var/www/lxr/目录下建立文件.htaccess,其内容为:


SetHandler cgi-script


创建该文件的目的是保证apache2服务器将lxr里的几个perl文件作为cgi-script看待。


修改/etc/apache2/sites-available/default,在其中增加下面一项:


Options All
AllowOverride All
order allow,deny
allow from all


如果没有该项,则在浏览器中访问不到由索引文件动态生成的目标页面!


创建索引目录并执行索引操作:

#mkdir /var/www/lxr/dbdir #该目录已在lxr.conf中指定
#cd /var/www/lxr/dbdir/
#genxref /home/zwang/work/linux-2.6.18/ #视文件多寡可能需要花费一些时间,索引完毕会在dbdir目录下生成fileidx和xref两个索引文件
#chmod +r ./* #增加索引文件的读权限


重新启动apache2服务,则通过http://localhost/lxr/blurb.html进行访问

因为此时尚未安装glimpse,所以搜索功能还没法使用!

二、Glimpse的安装与配置:


使用"Synaptic"安装glimpse软件包
进入索引目录进行索引操作:

#cd /var/www/lxr/dbdir/
#glimpseindex -H . /home/zwang/work/linux-2.6.18/ #索引生成的文件存放在当前目录下,视文件多寡可能需要花费一些时间
#chmod +r ./.glimpse* #增加索引文件的读权限


重新启动apache2服务后,再访问就可以进行搜索操作了!

进入到web界面后,可以发现有几种搜索链接,其意义是:

(1) source navigation: 用户查看页面的界面
(2) identifier search: 查找某个变量名、结构名、函数名
(3) freetext search: 查找任何字符串
(4) file search: 查找某个文件

现在可以很方便快捷的阅读Linux源代码了(补充一点,我的系统是ubuntu6.06,如果有不一致的地方,请根据实际情况酌情更改)!
文章评论

共有 4 条评论

  1. primerprimer 于 2009-08-06 12:32:42发表:

    受教了,学习中……谢谢

  2. lyf08hw 于 2009-08-05 15:24:09发表:

    漂亮哦

  3. l460618498 于 2009-08-02 21:41:29发表:

    VI就可以了啊

  4. deepwhite 于 2009-08-02 21:26:48发表:

    VI, cscope, ctag,这就足够了。