Linux下源代码阅读工具lxr安装使用说明zz
时间: 2006-07-27 来自:zyj001et分析linux内核源代码,最好安装阅读源代码的工具,可以用来帮助阅读源代码的工具有lxr,SourceInsight,global,这里介绍lxr的用法。
lxr是linux下查看源码的软件,要使用lxr首先需要安装HTTP服务器apache
如果自己机器上装的是RedHat Linux 9.0,而且已经已经安装了apache服务器,可以往下直接看lxr的安装方法。如果装的RedHat Linux以前的版本,在安装lxr的时候可能需要自己做一些路径设置的调整。
如果没有安装HTTP服务器,则要先安装,linux下一般使用apache服务器,
下面以RedHat Linux 9.0为例,先介绍apache的安装方法
l apache的安装和使用方法
在RedHat Linux 9.0第一张盘cd1中/RedHat/RPMS/目录下可以中找到
apache服务器安装包 httpd-2.0.40-21.i386.rpm
apache服务器文档包 httpd-manual-2.0.40-21.i386.rpm
安装命令
# rpm -ivh httpd-2.0.40-21.i386.rpm
# rpm -ivh httpd-manual-2.0.40-21.i386.rpm
启动apache服务器的命令是
# service httpd start
关闭apache服务器的命令是
# service httpd stop
要把apache设置成在linux系统启动时自动启动,
执行setup命令,进入System services,选择httpd
查看apache在线帮助手册,
# man httpd
apache配置
apache配置文件位于/etc/httpd/conf/httpd.conf
找到ServerName配置部分,去掉ServerName前面的"#"号,写上自己的ip地址和端口
配置好以后,让apache重新启动使配置生效,命令是
# service httpd restart
l 安装linux源代码
如果你在以前安装系统的时候没有装linux源代码,需要首先安装linux源代码,
到 /usr/src/ 目录下看一看,如果没有类似 linux-2.4.20-8 这样的目录,表示你没有装源代码
linux源代码包在RedHat Linux 9.0的cd2中的RPMS目录中
其中的kernel-source-2.4.20-8.i386.rpm就是linux内核源代码
安装命令也是
# rpm -ivh kernel-source-2.4.20-8.i386.rpm
安装结束后在 /usr/src下会出现目录linux-2.4.20-8 和一个链接文件linux-2.4
linux内核源代码就在目录linux-2.4.20-8中
l lxr的安装和使用方法
安装perl语言解释器
lxr使用的时候要依靠perl语言解释器和perl的DB_File模块,
一般情况下,在安装linux系统时perl解释器已经安装好了,而DB_File不一定安装在系统中,需要安装DB_File模块。
perl语言解释器 在安装盘cd1的/RedHat/RPMS/perl-5.8.0-88.i386.rpm
perl DB_File在安装盘cd2 的/RPMS/perl-DB_File-1.804-88.i386.rpm
安装lxr
lxr下载到一个目录下,比如下载到/home/lxr/lxr-0.3.1.tar.gz
解压缩,tar zxvf lxr-0.3.1.tar.gz
进入lxr目录,cd lxr-0.3
修改Makefile文件
PERLBIN等于perl在linux系统中的位置
一般来说PERLBIN=/usr/bin/perl,可以用which perl命令看到
修改INSTALLPREFIX
INSTALLPREFIX=/var/www/html/lxr
执行make install
进入/var/www/html/lxr/http/,修改配置文件lxr.conf
编辑配置文件中涉及到具体目录的一些设置,
baseurl: http://192.168.0.70/lxr/http/ (假设linux系统的ip是192.168.0.70)
htmlhead: /var/www/html/lxr/http/template-head
htmltail: /var/www/html/lxr/http/template-tail
htmldir:/var/www/html/lxr/http/template-dir
sourceroot: /usr/src/linux-2.4.20-8/ (sourceroot表示linux内核源代码所在的目录)
dbdir: /var/www/html/lxr/dbdir
按照lxr.conf中的设置建立dbdir,在/var/www/html/lxr/下面建立目录 dbdir
在/var/www/html/lxr/http/目录下建立文件 .htaccess
文件内容只有三行(注意第一行 “~”和“(”之间有一个空格)
<Files ~ (source|search|ident|diff|find)$>
SetHandler cgi-script
</Files>
修改/etc/httpd/conf/httpd.conf,增加下面一项
<Directory /var/www/html/lxr/http>
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
进入/var/www/html/lxr/dbdir/目录,在这个目录下运行命令对源代码建立索引
# /var/www/html/lxr/bin/genxref/usr/src/linux-2.4.20-8/
因为linux 2.4.20源代码数量很大,执行这个命令需要花费一定的时间
执行完毕后,将dbdir目录下产生的fileidx和xref两个文件设置为任何人都可读
# pwd
/var/www/html/lxr/dbdir
# chmod +r *
安装并使用glimpse
glimpse是索引并查找的工具,和lxr一起使用
首先要得到glimpse源代码,我已经放在oslab主页这里了
也可以访问站点:http://glimpse.cs.arizona.edu/ 得到最新的glimpse源码,
现在我使用的是glimpse-4.17.tar.gz,
解压缩命令是tar zxvf glimpse-4.17.tar.gz
解开压缩包,在当前目录下出现新目录glimpse-4.17
进入该目录,看一看README.install,里面说明了编译的步骤,
先执行./configure,再执行make。
Make编译完以后进入bin目录,将文件glimpse和glimpseindex拷贝到 /bin下即可。
仍然在dbdir目录下,运行命令
# glimpseindex -H . /usr/src/linux-2.4.20-8/
也需要等待较长的时间,出现类似下面的提示,表示命令执行完毕,
Glimpse-files created here:
-rw------- 1 root root 642613 May 31 13:12 .glimpse_filenames
-rw------- 1 root root 50000 May 31 13:12 .glimpse_filenames_index
-rw------- 1 root root 0 May 31 13:05 .glimpse_filetimes
-rw------- 1 root root 8775632 May 31 13:12 .glimpse_index
-rw------- 1 root root 2373 May 31 13:12 .glimpse_messages
-rw------- 1 root root 936 May 31 13:12 .glimpse_partitions
-rw------- 1 root root 13315 May 31 13:12 .glimpse_statistics
运行完毕以后也要将这些新产生的文件设置为任何人都可读,命令是
# chmod +r .glimpse*
这时候用ls命令列出dbdir目录中的文件,会有类似下面的输出
# ls -al
total 61700
drwxr-xr-x 2 root root 4096 May 31 16:26 .
drwxr-xr-x 6 root root 4096 May 31 06:44 ..
-rw-r--r-- 1 root root 1335296 May 31 09:17 fileidx
-rw-r--r-- 1 root root 642613 May 31 16:20 .glimpse_filenames
-rw-r--r-- 1 root root 50000 May 31 16:20 .glimpse_filenames_index
-rw-r--r-- 1 root root 0 May 31 16:20 .glimpse_filetimes
-rw-r--r-- 1 root root 8775632 May 31 16:20 .glimpse_index
-rw-r--r-- 1 root root 2373 May 31 16:20 .glimpse_messages
-rw-r--r-- 1 root root 936 May 31 16:20 .glimpse_partitions
-rw-r--r-- 1 root root 13315 May 31 16:20 .glimpse_statistics
-rw-r--r-- 1 root root 61452288 May 31 09:17 xref
然后打开浏览器,访问服务器上lxr的位置,比如linux服务器的ip是192.168.0.70,
在浏览器中访问http://192.168.0.70/lxr/http/blurb.html,就可以开始阅读源代码
阅读源代码
阅读的时候可以看到页面顶部有
~ [ source navigation ] ~ [ identifier search ] ~ [ freetext search ] ~ [ file search ] ~
其中source navigation是用户查看页面的界面
identifier search是查找某个变量名、结构名、函数名的界面
freetext search是查找任何字符串的界面
file search查找某个文件
--
[m
页:
[1]