安装与配置LXR

viktor's lab & notes


转载自http://blog.csdn.net/xulai1001/article/details/6936056

我参考了上面的文章,加了一些内容。整理了一下原作者的配置顺序

我的环境:

ubuntu 10.10 kernel 是 2。6。35

配置步骤:
(1)安装lxr。我直接用apt-get

安装glimpse
去这里下载glimpse: http://webglimpse.net/trial/glimpse-latest.tar.gz
下载后按下面方式安装

tar zxvf glimpse-latest.tar.gz
cd glimpse-4.18.6/
./configure
make
make install
[plain]
  1. note:lxr会安装apache2,perl,和PostgreSql。这些都会自动配置好。  
  2. 不过还得自己安装这下面两个东西:  
  3. libapache2-mod-perl2:让apache能运行perl脚本的插件,装好后在/etc/apache2/mods-*目录里  (用apt-get installlibapache2-mod-perl2安装)
  4. glimpse:需要先装flex。(用apt-get)或者在http://webglimpse.net/download.php 下载以后安装。  

(2)lxr的安装目录为 /usr/share/lxr/,我们把需要索引的源代码放到(链接到)/usr/share/lxr/source/下,目录名字为版本号,如2.6.35

然后新建文件/usr/share/lxr/source/versions,文件中写入2.6.35。

创建文件/usr/share/lxr/source/defversion,意思为默认版本,我们写入2.6.35

[plain] view
  1. note:目录名字可以任取,然后写入versions 即可。  

(3)建立索引目录,新建目录/usr/share/lxr/databases,然后在databases目录下创建目录2.6.35(这个有什么用?)

(4) 生成数据文件xref和glimpse索引文件

[plain] view
  1. cd /usr/share/lxr/source/  
  2. sudo genxref 2.6.35/  
  3. sudo glimpseindex -H . 2.6.35  
  1. note: 长时间等待,因为要扫描文本处理。数据和索引加起来差不多上G 最后还要把生成的所有文件(xref, fileidx, .g**的隐藏文件)挪到database文件夹去,修改权限,让所有用户可读。**  

(4.5) 实际使用中 发现lxr在查找源码时使用的相对路径,但是我的glimpseindex 4.1版本 生成的.glimpse-filenames索引是按绝对路径来的。结果就成了这样
[plain] view plain copy
  1. . 查询:viktor-Linux/arch/x86/aaaaa.c  
  2. .warning: can' t find /usr/share/lxr/source/2.6.35/usr/src/linux-source-2.6.35/arch/x86/aaaaa.c  


一大串,而且把代码的真实路径(不是链接的路径)爆出来了

解决:

[plain] view plain copy
  1. sudo sed -i 's/\/usr\/src\/linux-source-2.6.35\///' .glimpse_filenames  

用sed把.glimpse-filenames这个文件编辑一下,把绝对路径去掉就行了

sed的正则里面一堆转义字符看起来好别扭……虽然一般的shell脚本,用单引号就可以避免转义,但是sed有自己的特殊字符,比如斜杠,所以还得转义一次。调了好半天

(5)配置LXR,主要修改的文件是/usr/share/lxr/http/lxr.conf

这一步很关键。配不好各种出错 要修改的5处:

[plain] view plain copy
  1. # Define the base url for the LXR files.  
  2. baseurl: http://localhost/lxr/http/  
  3. # The source is here. 源码目录
  4. sourceroot: /usr/share/lxr/source/$v  (v是个变量,这个配置文件的头部有定义)一定是源码的根目录。这里如果什么都不填,网站上source页面就会把你的根目录爆出来  
  5. srcrootname: bwcpn-Linux 这个随便填。  
  6. # The database files go here.  
  7. dbdir: /usr/share/lxr/databases/$v db文件的路径。这里把g文件和xref文件放在一起了  
  8. # Glimpse can be found here.  
  9. glimpsebin: usr/local/bin/glimpse glimpse程序的路径。自己安装的时候在usr/local/bin中,不在默认的bin/glimpse中


后面的正则表达式不用管

(6)配置apache2,新建文件 /etc/apache2/sites-available/lxr,写入以下代码

  1. Alias /lxr /usr/share/lxr  
  2. <Directory /usr/share/lxr>  
  3. Options All  
  4. AllowOverride All  
  5. </Directory>  
  6. 注:这是让client访问apache2下localhost/时直接访问到/usr/share/lxr,以隐藏lxr的真实目录。  ?我的没有效果


然后执行 sudo ln /etc/apache2/sites-available/lxr -s /etc/apache2/sites-enabled/lxr 把它链过去

创建文件/usr/share/lxr/http/.htaccess ,写入以下代码:

  1. <Files ~ (search|source|ident|diff|find)$>;  
  2. SetHandler cgi-script  
  3. </Files>  
  4. 注:这是为了让perl起作用,让apache2的mod_perl来执行http目录下的perl文件,而不是下载这个文件。  


(6.5)修改apache主页。 想让localhost一打开就进入identifier search页面,修改/etc/apache2/sites-enabled/000-default文件。


[plain] view plain copy
  1. DocumentRoot /usr/share/lxr/http/ident  DocumentRoot 不是根么?这里不行提示不存在这个根?ident
  2. DirectoryIndex blurb.html  


就可以了

(7)重启apache2

[plain] view plain copy
  1. sudo /etc/init.d/apache2 restart  


打开localhost,大功告成。


note:最常用的identifier search和file search很好用,不过diff markup和freetext search还是有些问题。也许是glimpse的使用不当。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值