转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> SyBase >> 正文
(转载)Linux下源代码阅读工具lxr安装使用说明         ★★★★

(转载)Linux下源代码阅读工具lxr安装使用说明

作者:闵涛 文章来源:闵涛的学习笔记 点击数:823 更新时间:2009/4/22 23:07:44

分析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

安装命令

[root@vmware RPMS]# rpm -ivh httpd-2.0.40-21.i386.rpm

[root@vmware RPMS]# rpm -ivh httpd-manual-2.0.40-21.i386.rpm

 启动apache服务器的命令是

[root@vmware RPMS]# service httpd start

关闭apache服务器的命令是

[root@vmware RPMS]# service httpd stop

 

要把apache设置成在linux系统启动时自动启动,

执行setup命令,进入System services,选择httpd

 

查看apache在线帮助手册,

[root@vmware RPMS]# man httpd

 

apache配置

apache配置文件位于/etc/httpd/conf/httpd.conf

找到ServerName配置部分,去掉ServerName前面的"#"号,写上自己的ip地址和端口

 

配置好以后,让apache重新启动使配置生效,命令是

[root@vmware RPMS]# 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内核源代码

 

安装命令也是

[root@vmware RPMS]# 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/目录,在这个目录下运行命令对源代码建立索引

[root@vmware dbdir]# /var/www/html/lxr/bin/genxref  /usr/src/linux-2.4.20-8/

因为linux 2.4.20源代码数量很大,执行这个命令需要花费一定的时间

 

执行完毕后,将dbdir目录下产生的fileidx和xref两个文件设置为任何人都可读

[root@vmware dbdir]# pwd

/var/www/html/lxr/dbdir

[root@vmware 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目录下,运行命令

[root@vmware 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

 

运行完毕以后也要将这些新产生的文件设置为任何人都可读,命令是

[root@vmware dbdir]# chmod +r .glimpse*

 

这时候用ls命令列出dbdir目录中的文件,会有类似下面的输出

[root@vmware 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查找某个文件

 

 


[操作系统]网络转载---64位操作系统与32位的区别  [系统软件](转载)Exploit,shellcode经验技巧杂谈
[Delphi程序]Self-Delete程序之Delphi版本,终于搞定了。 (转载…  [SyBase][Linux] Linux的一些Tips (转载)
[SyBase](转载)Linux内核漏洞浅析  [SyBase][转载] linux指令大全
[SyBase]教您如何安装使用Mplayer(转载www.linuxsir.org/b…  [Sql Server][转载] 编写安全的 Transact-SQL
[Sql Server]PostgreSQL 的昨天今天和明天 转载  
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台