`
Beaver's
  • 浏览: 390904 次
  • 性别: Icon_minigender_2
  • 来自: 天津
社区版块
存档分类
最新评论

Ubuntu环境下安装LXR

    博客分类:
  • lxr
 
阅读更多
由于项目需求,需要搭建一套代码索引环境,经过网上查找,了解可以使用LXR (the Linux Cross Referencer)来做,同时网上有很多搭建方法,我尝试学习,一步一步搭建环境,在这个过程中,遇到一些问题,记录下来,分享给大家,方便大家顺利完成LXR 搭建。

环境:Ubuntu 10.10,新安装的系统,具体搭建步骤如下(整个过程中基本都需要root权限):

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
# ./configure
# make

我在make 的时候报下面的错

make[1]: flex: Command not found

make[1]: *** [lex.yy.c] Error 127

make[1]: Leaving directory `/usr/local/src/glimpse-4.18.6/dynfilters’

make: *** [build-sub] Error 2

在编译之前,首先看看你的机器上是否已经安装了flex,因为编译glimpse的时候需要这个软件。如果没有的话,那么进行安装:
sudo apt-get install flex


执行

# make
# sudo 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.启动apache2
sudo /etc/init.d/apache2 restart

7. 下载linux 源代码
linux内核源码下载地址http://www.kernel.org/,我下载了2.6.39.4版本的linux 源码,默认下载到/home/beaver(beaver是我的用户名,根据大家的机器而定)/Downloads,解压后为linux-2.6.39.4

创建/usr/share/lxr/source/XX  目录 (XX为版本号)
mkdir /usr/share/lxr/source/2.6.39.4
然后在/usr/share/lxr/source/2.6.39.4下创建linux符号连接
ln -s /home/beaver/Downloads/linux-2.6.39.4 /usr/share/lxr/source/2.6.39.4/linux
                  (源码地址)

8. 创建/usr/share/lxr/source/versions 文件,这里记录所有要看的版本,内容是
2.6.39.4
2.6.22(可有可无)
要保证2.6.39.4 =>/usr/share/lxr/source/2.6.39.4
创建/usr/share/lxr/source/defversion 文件,这里记录缺省要看的版本,内容是
2.6.39.4
之所以是这两个文件,见/usr/share/lxr/http/lxr.conf里的相关设置

9. 建立索引
cd /usr/share/lxr/source/2.6.39.4/
生成关键字交叉索引数据库
sudo genxref linux
接下来要等待一段比较长的时间,因为它要扫描文件。这样会在当前目录生成fileidx和xref
接下来,生成freetext交叉索引数据库:
sudo glimpseindex -H /usr/share/lxr/source/2.6.39.4/ /usr/share/lxr/source/2.6.39.4/linux
(需要等待一段时间)
之所以是这个目录(/usr/share/lxr/source/2.6.39.4/),见/usr/share/lxr/http/lxr.conf里的相关设置(database项)

10.修改属性,使任何人都可以读取改文件
sudo chmod +r -R /usr/share/lxr/source/2.6.39.4/*
sudo chmod +r /usr/share/lxr/source/2.6.39.4/.glimpse*  (注意:这句命令必须执行,否则在 file search 的时候会出现警告:Warning: Could not open .glimpse_filenames)

11.启动apache,查看源码
sudo /etc/init.d/apache2 restart
http://localhost/lxr/http/blurb.html //成功查看源码
阅读的时候可以看到页面顶部有
~ [ source navigation ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~
source navigation是用户查看页面的界面
identifier search是查找某个变量名、结构名、函数名的界面
freetext search是查找任何字符串的界面
file search查找某个文件


参考文件:
http://blog.sina.com.cn/s/blog_6c6d405f0100oq6l.html
http://www.linuxsir.org/bbs/showthread.php?t=246594
http://linux.chinaunix.net/techdoc/system/2006/12/21/946450.shtml
http://yp.oss.org.cn/software/show_resource.php?resource_id=1044
http://wenku.baidu.com/view/7d3c0471f242336c1eb95e13.html
收藏:
http://blog.csdn.net/fengyanhui/article/details/6320117
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics