Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1401492
  • 博文数量: 244
  • 博客积分: 3321
  • 博客等级: 中校
  • 技术积分: 2704
  • 用 户 组: 普通用户
  • 注册时间: 2009-04-26 08:17
个人简介

微信公众号:杰夫弹弹看

文章分类

全部博文(244)

文章存档

2018年(4)

2017年(32)

2016年(25)

2015年(28)

2014年(27)

2013年(34)

2012年(25)

2011年(30)

2010年(39)

分类: LINUX

2010-01-15 22:20:47

关于LXRglimpse配置实现方便阅读Linux源代码的过程

注:本文主要参考下面的资料                            时间:2010-1-15

参考资料1 http://hi.baidu.com/fanzier/blog/item/3ad7d7546f58a55dd009066b.html

    资料2http://blog.csdn.net/zjujoe/archive/2009/05/18/4199025.aspx

其中的相同部分没有做修改,在此声明,有“注意:”的地方是结合自己的情况进行的修改。

(本人机器的OS---Ubuntu 9.10)


1.安装apache2
$sudo apt-get install apache2

2.安装lxr
$sudo apt-get install lxr

编辑修改lxr.conf文件

$sudo vi /usr/share/lxr/http/lxr.conf

修改glimpse的路径

找到 glimpsebin这一行,修改成你机器上glimpse的位置(自己查看使用$whereis glimpse


glimpsebin: /usr/local/bin/glimpse  

注:红色部分是我机器上的glimpse的位置
3. /etc/apache2/httpd.conf 末尾加上以下内容:
Alias /lxr /usr/share/lxr

Options All
AllowOverride All

这样可以达到

4. /usr/share/lxr/http下创建文件 .htaccess, 

$sudo vi /usr/share/lxr/http/.htaccess

添加下面的内容:

SetHandler cgi-script


5.
$sudo /etc/init.d/apache2 restart

6. 创建/usr/share/lxr/source/XX目录 (XX为版本号)
$mkdir /usr/share/lxr/source/2.6.30.10
然后在/usr/share/lxr/source/2.6.30.10 下创建linux符号连接
$ln -s   /home/my/linux-2.6.30.10 /usr/share/lxr/source/2.6.30.10/linux


注:这里的黄色部分改成你目前的源代码的所在目录,比如 /home/you/linux-2.6.30.10


7. 创建/usr/share/lxr/source/versions,这里记录所有要看的版本

sudo vi /usr/share/lxr/source/versions

将下面的版本号(自己的源代码版本号)添加到versions
2.6.30.10
2.6.32.3

创建/usr/share/lxr/source/defversion,这里记录缺省要看的版本,

$sudo vi /usr/share/lxr/source/defversion

添加缺省查看的版本号:

2.6.30.10

这里为什么是这两个文件,/usr/share/lxr/http/lxr.conf里的相关设置

8. 建立索引
$cd /usr/share/lxr/source/2.6.30.10/

$sudo glimpseindex -H  ../  ./linux 
$sudo genxref  ./linux  

    上面的两个命令运行时间稍微长一些,主要是生成freetext交叉索引数据库(glimpseindex关键字交叉索引数据库(genxref),上面两个命令不可颠倒顺序,见下面的注

1. 资料1原文中的顺序是:

$sudo glimpseindex -H /usr/share/lxr/source/2.6.22/ /usr/share/lxr/source/2.6.22/linux  

$sudo genxref 2.6.22

自己按照上面实验顺序后,发现最后的源码不能很好的链接上,不可以实现符号跳转,仅仅是显示代码

2. 这里如果没有安装glimpse,运行sudo glimpseindex -H  ../  ./linux 会提示没有相关的命令glimpseindex

于是安装glimpse,需要到下载

$

$

$

$



8.修改属性
$sudo chmod +r -R /usr/share/lxr/source/2.6.30.10/*


9.
$sudo /etc/init.d/apache restart
启动浏览器输入下面的URL即可查看,很方便呀!!

10.  如果还要添加其他的版本源代码,只需要按照顺序从第6步执行一直到第9步,这样就可以查看多个版本的源代码了,比较方便。

11. 附加心得:

最初在网上的找linux下的源代码查看工具,介绍好几种,最初实验的kscope,有个问题就是他需要依赖下面的软件:

Qt4 version 4.4.0 and above

QScintilla2 ()

Standard build tools

安装上面的软件之后,make还是出错,发现提示一些cpp文件中未定义的符号,这个要一个个修改比较麻烦了。

    所以后来又试了一下 deb包,安装提示需要libqscintilla2-3,好下载先安装这个libqscintilla2-3,然后安装kscope deb包,成功了!!后来发现根本启动不了,提示segmentation fault,这个郁闷坏了,网上有的说的是个bug,然后试着安装低版本的kscope—1.6.2,还是出现同样的segmentation fault,唉,暂时想不出解决反感,只好放弃kscope了。

    接着实验global,发现好像是命令行的东西,要是命令行熟悉的话,就用vim+ctags了,只是想找稍微简单一点,我只是想浏览源代码,不想提前记好多命令,呵呵,有点懒啦,只好作罢

     最后选择据说比较难安装的LXR,网上这方面的资料很多,一步一步接着做,然后修改了其中的一些叙说不完善的地方,发现竟然成功了,很好,原来这个复杂的东西不是这么夸张,比前面的要好点,还是幸亏这么完备的网上共享的资料呀,感谢那么多对这些资料做出过补充完善的作者!!

    最后的一点缺憾是不能像LXR主站上的服务器上的源代码的那种链接跳转,可能是哪里没有配置正确,不过还是迈出了一大步,下面在继续研究吧!!!----已经解决,就是前面的glimpseindexgenxref运行顺序问题,

12.将来问题

    目前发现查看源代码跳转有时还是比较慢,我感觉是数据库查找效率问题,这是算法的问题吧,应该不牵涉浏览器的问题吧??

    欢迎大家提出自己的看法。

阅读(3378) | 评论(2) | 转发(0) |
给主人留下些什么吧!~~

wkq53252010-05-11 17:35:02

你说的sudo glimpseindex -H ./ ./linux ——在当前目录创建fileidx和xref,以及.glimpse_* 系列文件 是针对一个版本的吧,要是想添加不同的版本比如2.6.32.*等,具体忘了,呵呵 第二个问题,因为我是自己看的,需要权限再sudo(自己浏览好像没有权限限制)没考虑为其他普通用户提供查看,你的说的这个很好,谢谢!

zhouxiao_822010-04-22 15:59:31

非常感谢楼主~~~ 不过经过实践要纠正你文中的两个地方 1、步骤8 $cd /usr/share/lxr/source/2.6.30.10/ 之后 $sudo glimpseindex -H ../ ./linux 应该纠正为 sudo glimpseindex -H ./ ./linux ——在当前目录创建fileidx和xref,以及.glimpse_* 系列文件 2、需要将 .glimpse_* 系列文件得读写属性全部变为666,即让非root用户能够读写,否则在file_search功能调用http/find脚本得时候打开.glimpse_filenames 文件会报错