关于LXR和glimpse配置实现方便阅读Linux源代码的过程
2013-10-14 11:37
155 查看
关于LXR和glimpse配置实现方便阅读Linux源代码的过程
注:本文主要参考下面的资料 时间:2010-1-15
参考资料1: http://hi.baidu.com/fanzier/blog/item/3ad7d7546f58a55dd009066b.html
资料2:http://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
<Directory /usr/share/lxr>
Options All
AllowOverride All
</Directory>
这样可以达到http://localhost/lxr/ =>/usr/share/lxr
4. 在/usr/share/lxr/http下创建文件 .htaccess,
$sudo vi /usr/share/lxr/http/.htaccess
并添加下面的内容:
<Files ~ (search|source|ident|diff|find)$>
SetHandler cgi-script
</Files>
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,需要到http://webglimpse.net/download.php下载glimpse-latest.tar.gz
然后在下载文件所在的目录执行
$tar -zxvf glimpse-latest.tar.gz
$./configure
$make //注意这里会提示没有flex命令,需要安装flex ,直接sudo apt-get install flex
$sudo make install
8.修改属性
$sudo chmod +r -R /usr/share/lxr/source/2.6.30.10/*
9.
$sudo /etc/init.d/apache restart
启动浏览器输入下面的URL即可查看,很方便呀!!
http://localhost/lxr/http/blurb.html
10. 如果还要添加其他的版本源代码,只需要按照顺序从第6步执行一直到第9步,这样就可以查看多个版本的源代码了,比较方便。
11. 附加心得:
最初在网上的找linux下的源代码查看工具,介绍的好几种,最初实验的kscope,有个问题就是他需要依赖下面的软件:
Qt4 version 4.4.0 and above
QScintilla2 (http://www.riverbankcomputing.co.uk/software/qscintilla/download)
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主站上的服务器上的源代码的那种链接跳转,可能是哪里没有配置正确,不过还是迈出了一大步,下面在继续研究吧!!!----已经解决,就是前面的glimpseindex和genxref运行顺序问题,
12.将来问题
目前发现查看源代码跳转有时还是比较慢,我感觉是数据库查找效率问题,这是算法的问题吧,应该不牵涉浏览器的问题吧??
欢迎大家提出自己的看法。
注:本文主要参考下面的资料 时间:2010-1-15
参考资料1: http://hi.baidu.com/fanzier/blog/item/3ad7d7546f58a55dd009066b.html
资料2:http://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
<Directory /usr/share/lxr>
Options All
AllowOverride All
</Directory>
这样可以达到http://localhost/lxr/ =>/usr/share/lxr
4. 在/usr/share/lxr/http下创建文件 .htaccess,
$sudo vi /usr/share/lxr/http/.htaccess
并添加下面的内容:
<Files ~ (search|source|ident|diff|find)$>
SetHandler cgi-script
</Files>
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,需要到http://webglimpse.net/download.php下载glimpse-latest.tar.gz
然后在下载文件所在的目录执行
$tar -zxvf glimpse-latest.tar.gz
$./configure
$make //注意这里会提示没有flex命令,需要安装flex ,直接sudo apt-get install flex
$sudo make install
8.修改属性
$sudo chmod +r -R /usr/share/lxr/source/2.6.30.10/*
9.
$sudo /etc/init.d/apache restart
启动浏览器输入下面的URL即可查看,很方便呀!!
http://localhost/lxr/http/blurb.html
10. 如果还要添加其他的版本源代码,只需要按照顺序从第6步执行一直到第9步,这样就可以查看多个版本的源代码了,比较方便。
11. 附加心得:
最初在网上的找linux下的源代码查看工具,介绍的好几种,最初实验的kscope,有个问题就是他需要依赖下面的软件:
Qt4 version 4.4.0 and above
QScintilla2 (http://www.riverbankcomputing.co.uk/software/qscintilla/download)
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主站上的服务器上的源代码的那种链接跳转,可能是哪里没有配置正确,不过还是迈出了一大步,下面在继续研究吧!!!----已经解决,就是前面的glimpseindex和genxref运行顺序问题,
12.将来问题
目前发现查看源代码跳转有时还是比较慢,我感觉是数据库查找效率问题,这是算法的问题吧,应该不牵涉浏览器的问题吧??
欢迎大家提出自己的看法。
相关文章推荐
- MySQL主从复制原理及配置详细过程以及主从复制集群自动化部署的实现
- 关于多线程实现的一般过程。
- Android实训案例(四)——关于Game,2048方块的设计,逻辑,实现,编写,加上色彩,分数等深度剖析开发过程!
- 关于Apache mod_rewrite的中文配置、使用和语法介绍(实现URL重写和防盗链功能
- 关于c++多态性实现的理解过程(给自己看的总结,比较跳跃)
- 用PHPINFO来实现PHP的配置统计过程
- 关于VS与opencv安装配置过程中遇到的问题
- DSHOW 中关于FILTER的连接内部实现过程
- 关于C++读取Lua配置文件实现案例
- Spring关于使用注解@Configuration去配置FormattingConversionServiceFactoryBean来实现自定义格式字符串处理无效的问题(未找到是什么原因造成的)
- 架设wordpress,,,,说明什么是插件?什么是主题?背后的实现原理是什么?试用至少10个插件及三个主题,并说明其用途与配置过程
- 疑问:关于组合查询时候的方法实现?能在存储过程中综合一下吗?
- 关于BlazeDS的配置 flex+java的实现
- 小试牛刀,学习PHP过程中关于环境配置的一个问题
- Nginx 配置实现web解析php代码 过程记录
- 使用OpenCV 实现多摄像头图像处理笔记(1):DirectShow的配置过程可能出现的问题
- 关于工作流引擎取回审批的设计方案与实现过程
- 关于共享程序集延迟签名的技术实现的具体过程
- AOP实现之配置文件解析过程(二)
- 关于Apache mod_rewrite的中文配置、使用和语法介绍(实现URL重写和防盗链功能)