您的位置:首页 > 运维架构 > Linux

Linux查看内可源代码环境的配置

2008-09-02 13:52 204 查看
Linux查看源代码工具的安装

目的:Linux操作系统中比较吸引人的一部分是系统内核,而如果不对系统内核源
代码文件进行索引,查看。就会感觉到源代码牵涉内容较多,结构相对松散,故应利用工
具查看代码,现在已经推出的比较好的是lxr工具配合perl,glimpse。
关键词:lxr glimpse 源代码
lxr(linux cross reference)就是一个解决这个问题的工具:他对你指定的源代码文
件建立索引数据库,利用perl脚本CGI动态生成包含源码的web页面,你可以用任何一种
浏览器查阅。在此web页中,所有的变量、常量、函数都以超连接的形式给出,十分方便
查阅。比如你在阅读/usr/src/linux/net/socket.c的源代码,发现函数get_empty_inode
不知道是如何以及在哪里定义的,这时候你只要点击get_empty_inode,lxr将返回此函数
的定义、实现以及各次引用是在什么文件的哪一行,注意,这些信息也是超连接,点击将
直接跳转到相应的文件相应的行。另外lxr还提供标识符搜索、文件搜索,结合程
glimpse还可以提供对所有的源码文件进行全文检索,甚至包括注释!
下面将结合实例介绍一下lxr和glimpse的基本安装和使用,由于glimpse比较简单,
就从它开始:
首先访问站点:http://glimpse.cs.arizona.edu/ 得到glimpse的源码,比如我得到的
是glimpse-4.12.5.tar.gz . 用root登录,在任一目录下用tar zxvf glimpse-4.12.5.tar.gz
解开压缩包,在当前目录下出现新目录glimpse-4.12.5 .进入该目录,执行make即可。进
入bin目录,将文件glimpse和glimpseindex拷贝到/bin或/usr/bin下即可。如果单独使
用glimpse,那么只要简单的执行glimpseindex foo即可,其中foo是你想要索引的目录,
比如说是/usr/src/linux .glimpseindex的执行结果是在你的起始目录下产生若干.limpse*
的索引文件。然后你只要执行glimpse yourstring即可查找/usr/src/linux下所有包含
字符串yourstring的文件。
对于lxr,你可以访问lxr.linux.no得到它的源代码解包后,遵循如下步骤:
1)修改Makefile中的变量PERLBIN和INSTALLPREFIX,使它们分别为perl程序的位置
和你想lxr安装的位置.(此种方式是源代码形式安装,版本是lxr-0.3)在我的机器上,
PERLBIN的值为/usr/bin/perl .至于INSTALLPREFIX,有如下原则,lxr的安装路径
必须是web服务器能有权限访问。因此它的值简单一点可取/var/www/html/lxr (对于
Apache web server)。
2)执行 make install
3)修改$INSTALLPREFIX/http/lxr.conf : 本实例中是
/var/www/html/lxr/http/lxr.conf
baseurl : http://yourIP/lxr/http/
htmlhead: /home/httpd/html/lxr/http/template-head
htmltail: /home/httpd/html/lxr/http/template-tail
htmldir: /home/httpd/html/lxr/http/template-dir
sourceroot : /usr/src/linux # 假如对linux核心代码索引
dbdir : /home/httpd/html/lxr/dbdir/ #dbdirk可任意起名,且位置任意
glimpsebin: /usr/bin/glimpse #可执行程序glimpse的位置
4)在$INSTALLPREFIX/http/下增加一个文件.htaccess 内容:
<Files ~ (source|search|ident|diff|find)$> ***
SetHandler cgi-script
</Files>
上面这个文件保证Apache server将几个perl文件作为cgi-script.
5)按照lxr.conf中的设置建立dbdir ,按照上例,建立目录
/home/httpd/html/lxr/dbdir
进入这个目录执行$INSTALLPREFIX/bin/genxref yourdir
此实例中为:/var/www/html/lxr/bin/genxref /usr/src/linux-2.6.21
其中yourdir是源码目录,比如/usr/src/linux
如果要结合glimpse,则执行glimpseindex -H . yourdir
6)修改 /etc/httpd/conf/access.conf ,加入
<Directory /home/httpd/html/lxr/http>
Options All
AllowOverride All
order allow,deny
allow from all
</Directory>
7)进入/etc/rc.d/init.d/ 执行
killall httpd
./httpd start
8)对生成的索引文件添加所有用户的读权限。
Chmod a+r fileidx
chmod a+x xref
9)启动浏览器进入刚才建立的页面文件夹,测试是否成功。
点击serach.html -> source navigation 观察源代码文件夹是否显示出来,继续测
试变量,函数等超链接是否生成。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: