前言

Lxr 对指定的源代码文件建立索引数据库,利用 perl 脚本 CGI 动态生成包含源码的 web 页面,可以用任一浏览器查阅。在此 web 页中,所有的变量、常量、函数都以超连接的形式给出,十分方便查阅。

步骤 1 :安装软件

1)   安装 apache2: sudo apt-get install apache2

2)   安装 lxr, sudo apt-get install lxr

3)   安装 glimpse, 下载最新版本:

tar -xvzf glimpse-latest.tar.gz

cd glimpse- 4.18.5

./configure

make

sudo make install

步骤 2 :设置 lxr

4)   编辑: /usr/share/lxr/http/lxr.conf

baseurl: http://localhost/lxr/http/

其中 localhost 改为您的电脑的 IP 地址。

/lxr/http/ 对应后面在 apache 配置文件中的设置路径。

修改 glimpse 路径:

glimpsebin: /usr/local/bin/glimpse

5)   /usr/share/lxr/http/ 下添加文件 .htaccess, 内容为:

<Files ~ (search|source|ident|diff|find)$>

SetHandler cgi-script

</Files>

步骤 3 :建立源码仓库

6)   /usr/share/lxr/source 下建立两个文件:

/usr/share/lxr/source/versions,
/usr/share/lxr/source/defversion

很明显, versions 表示所有内核版本的集合, 而 defversion 表示缺省使用的版本。 我们目前使用 2.6.21 , 所以这两个文件里都写上 2.6.21

7)   将内核源代码拷贝到 /usr/share/lxr/source/2.6.21/linux 下。

8)   /usr/share/lxr/source/2.6.21 下运行: ( 生成 freetext 交叉索引数据库 )

glimpseindex -H . ./linux

9)   /usr/share/lxr/source/2.6.21 下运行:(生成关键字交叉索引数据库)

genxref ./linux

10)            /usr/share/lxr/source/2.6.21 下运行:

chmod a+x *

chmod a+x .*

步骤 4 :设置浏览器

11)            编辑, /etc/apache2/sites-available/default , 添加:

Alias /lxr /usr/share/lxr

<Directory /usr/share/lxr>

Options All

AllowOverride All

</Directory>

12)            重启 apache2:

service apache2 restart

13)            现在可以浏览代码了:

http://192.168.0.137/lxr/http/blurb.html

更进一步:

Lxr 支持多个内核版本, 您只需要在 /usr/share/source 下添加相应的目录, 并将该版本添加到 /usr/share/lxr/source/versions, 然后按照以上目录生成数据库文件即可。

另外, http://lxr.linux.no/linux+v2.6.27/ 有现成做好的交叉索引。

====

http://blog.csdn.net/zjujoe/article/details/4199025

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

LXR安装详解-ubuntu环境下测试

1.安装apache2
sudo apt-get install apache2

2.安装Glimplse
.Glimplse
# wget http://webglimpse.net/trial/glimpse-latest.tar.gz
# tar xvzf glimpse-latest.tar.gz
# cd glimpse-4.18.6/cd ctags-5.8
# ./configure
# make
# make install

3.安装lxr
sudo apt-get install lxr

4. 在/etc/apache2/httpd.conf 末尾加上以下内容:
Alias /lxr /usr/share/lxr
<Directory /usr/share/lxr>
Options All
AllowOverride All
</Directory>
这样可以达到http://localhost/lxr/ =>/usr/share/lxr

5. 在/usr/share/lxr/http下创建文件 .htaccess, 并写入一下内容:
<Files ~(search|source|ident|diff|find)$>
SetHandler cgi-script
</Files>

6.
sudo /etc/init.d/apache2 restart

7.

linux内核源码下载地址http://www.kernel.org/ 默认下载到/home/louis/下载解压后为linux-2.6.37.2

创建 /usr/share/lxr/source/XX 目录   (XX为版本号)
mkdir /usr/share/lxr/source/2.6.37.2
然后在 /usr/share/lxr/source/2.6.37.2下创建linux符号连接
ln -s /home/louis/下载/linux-2.6.37.2/usr/share/lxr/source/2.6.22/linux
               (源码地址)
8. 创建 /usr/share/lxr/source/versions,这里记录所有要看的版本,内容是
2.6.37.2
2.6.22(可有可无)
要保证2.6.37.2 => /usr/share/lxr/source/2.6.37.2
创建 /usr/share/lxr/source/defversion,这里记录缺省要看的版本,内容是
2.6.37.2
之所以是这两个文件,见 /usr/share/lxr/http/lxr.conf里的相关设置

9. 建立索引
cd  /usr/share/lxr/source/2.6.37.2 /
sudogenxref 2.6.37.2 //这样会在当前目录生成fileidx和xref
sudo glimpseindex-H  /usr/share/lxr/source/2.6.37.2 / /usr/share/lxr/source/2.6.37.2/linux
(需要等待一段时间)
之所以是这个目录( /usr/share/lxr/source/2.6.37.2 / ), 见 /usr/share/lxr/http/lxr.conf里的相关设置(database项)

10.修改属性
sudo chmod +r -R /usr/share/lxr/source/2.6.37.2/*

11.
sudo /etc/init.d/apache2 restart
http://localhost/lxr/http/blurb.html //成功查看源码

====

http://blog.sina.com.cn/s/blog_6c6d405f0100oq6l.html

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

关于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
Options All
AllowOverride All
这样可以达到http://localhost/lxr/ =>/usr/share/lxr
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

(Should be $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.将来问题
    目前发现查看源代码跳转有时还是比较慢,我感觉是数据库查找效率问题,这是算法的问题吧,应该不牵涉浏览器的问题吧??

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

====

http://bbs.chinaunix.net/thread-1940161-1-1.html

Ubuntu 8.10 下安装 lxr 与 glimpse相关推荐

  1. linux交叉编译出现的问题,,Ubuntu 14.10下安装GCC交叉编译器遇到问题及解决方法

    Ubuntu 14.10下安装GCC交叉编译器遇到问题及解决方法 一.下载gcc-arm-none-eabi-4_9 安装成功后上报错误: ./gcc-arm-none-linux-gnueabi-g ...

  2. Ubuntu 15.10下安装broadcom无线网卡驱动

    更新:我在这篇文章中加入了离线安装网卡驱动的方法. 众所周知,NOI竞赛使用的是noi linux系统,为了提前适应比赛环境,我选择了安装ubuntu 15.10(安装最新版是为了能在生活学习中更多的 ...

  3. lazarus 编译linux,Ubuntu 15.10下安装Lazarus IDE 1.6

    Lazaurs编辑器是很强大的,支持代码补全,自动完成,模板编辑,多行缩进注释,选定代码后批量更改里面的单词! Lazarus 支持多种操作系统,Windows,以及几种 Linux 发行版,当然包括 ...

  4. Ubuntu 13.10下安装ns2 2.35遇到的小问题

    前面下载安装的环节我就不多说了,网上已经有很多的例子,最全的是一个新浪网友写的博客:http://blog.sina.com.cn/s/blog_785a23ae0100xraq.html.他使用的是 ...

  5. linux18.2安装界面,Ubuntu 18.10下安装Grub Customizer 5.1.0配置grub2图形化界面

    配置Grub2/burg引导装载程序Grub Customizer 5.1.0新增加对Ubuntu 18.10的支持,我们可以用PPA源来安装,同时还支持Ubuntu 18.04.16.04.14.0 ...

  6. 如何在Ubuntu 11.10下安装Java

    升级到ubuntu 11.10之后,由于库里没有sun-java6-jdk,需要自行安装.因此,到Oracle网站下载了Java 6u27(为什么不下java7呢?因为目前支持的软件不多,另外如果真要 ...

  7. linux编码安装mysql_在Ubuntu 15.10下安装mysql设置数据库编码

    在从windows 10 的开发环境换到Ubuntu 15.10 后,发现原来的项目竟然不能正常地对数据库进行初始化,后来在控制台查看后,发现是数据库编码的问题. 1.在Ubuntu中安装mysql可 ...

  8. Ubuntu 14.10 下安装java反编译工具 jd-gui

    系统环境,Ubuntu 14.10 ,64位 1 下载JD-GUI,网址http://221.3.153.126/1Q2W3E4R5T6Y7U8I9O0P1Z2X3C4V5B/jd.benow.ca/ ...

  9. 在Ubuntu 13.10 下安装支持SSL的Apache

    通过这个简短的教程,让我来指导你如何安装支持SSL的Apache.以下是我的试验机的详细说明: 系统信息 root@ubuntu-unixmen:~# ifconfig eth0 Link encap ...

最新文章

  1. 【运筹学】运输规划求最大值 ( 运输规划求最大值问题示例 | 转为运输规划求最小值的方式 )
  2. 参加MS CRM2011深度培训课程第二天
  3. java filter函数的用法_5分钟掌握Python | Map、Reduce和Filter如何运用?
  4. Hibernate二级/查询缓存的陷阱
  5. Java 发起http GET POST请求实例
  6. 查询php copy函数源码,PHP copy函数使用案例代码解析
  7. 华为鸿蒙系统适合机型,华为鸿蒙os2.0系统适用哪些机型
  8. 夸奖对方代码写的好_我写出这样干净的代码,老板直夸我
  9. idea 自动生成mybaits_如何让idea自动创建mybatis配置文件?
  10. bootstrap java web_JavaWEB开发05_Bootstrap
  11. oracle数据文件管理,数据文件管理—oracle管理指南
  12. 翻译:MySQL Got an Error Reading Communication Packet Errors
  13. java-ActiveXComponent调用com组件
  14. pda扫描枪屏幕_PDA扫描枪的介绍
  15. 微信网页授权 Vue
  16. Docker 入门教程-----supervisor(进程管家)配置与Docker使用
  17. 事件冒泡、捕获?如何阻止
  18. 连接Oracle报错 ORA-00257
  19. 玩转树莓派---详解树莓派的系统烧录,基础使用及基于树莓派制作手势控制的小车(附详细代码及演示效果)
  20. Appium-Screenshot(截图)

热门文章

  1. 优酷 iOS 插件化页面架构方法
  2. QTextEdit详解(设置显示内容的两种方式(setPlainText/insertPlainText、滚动条自动(往下、往上)滚动……)
  3. python 逻辑回归 复杂抽样_【课程笔记】《Udacity数据分析(入门)》「纳米学位」——第 4 部分:统计学 ——By Tensor麻麻麻...
  4. 如何办好每周技术周刊?
  5. Oracle创建表空间/用户及导入导出
  6. 太震撼了!!!高手是酱紫创业滴,你中枪了吗?
  7. C++中动态分配多维数组
  8. 蓝桥杯 算法提高 夺宝奇兵
  9. (不正当关机)笔记本开机循环修复解决方案(删除bootsafe64_ev.sys文件)
  10. “想去夏威夷?公司请你去!” 在硅谷工作也太太太太爽爽爽了吧!​