分类: LINUX
2011-12-21 16:37:52
安装glimpse:(其中会用到flex 安装下就行了)
$ ./configure
$ make
$ sudo make install
b。pacman -S apache php php-apache mysql
c。pacman -s ctags perl-dbi perl-dbd-mysql
d。安装完mysql 以root用户身份运行设置脚本
# rc.d start mysqld && mysql_secure_installation
然后重启 Mysql
# rc.d restart mysqld
本文需要设置密码为空(后面有说明)
用mysql -p -u root
登陆mysql,然后执行下面语句: set password for 'root'@'localhost' =password('');flush privileges;e.安装Perl的Magic模块
下载地址
[root@localhost File-MMagic-1.27]# ls
ChangeLog COPYING MANIFEST MMagic.pm README.ja
contrib Makefile.PL META.yml README.en t
[root@localhost File-MMagic-1.27]# perl Makefile.PL
Checking if your kit is complete...
Looks good
Writing Makefile for File::MMagic
[root@localhost File-MMagic-1.27]# ls
ChangeLog COPYING Makefile.PL META.yml README.en t
contrib Makefile MANIFEST MMagic.pm
README.ja
[root@localhost File-MMagic-1.27]# make
cp MMagic.pm blib/lib/File/MMagic.pm
Manifying blib/man3/File::MMagic.3pm
[root@localhost File-MMagic-1.27]# make install
Installing /usr/lib/perl5/site_perl/5.8.8/File/MMagic.pm
Installing /usr/share/man/man3/File::MMagic.3pm
Writing
/usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi/auto/File/MMagic/.packlist
Appending installation info to
/usr/lib/perl5/5.8.8/i386-linux-thread-multi/perllocal.pod
尽管lxr源码里有一个INSTALL文件,但不详,这里写下来我自己配置的步骤。
1)位置规划
LXR除了数据库那一部分不需要考虑存放位置以外,还有CGI/HTML部分、索引生成工具部分和
所需要索引的源代码部分需要考虑,我的实践中使用的与INSTALL缺省的不同,最大的一点不同在于我
将WEB部分和工具部分分离开,只允许WEB部分暴露给浏览器——主要是基于也许会更安全一些的考虑。
另一个不同是用符号链接而不是真正的源代码目录作为源代码部分,因为LXR索引的Linux Kernel是最常用的,
而Kernel本身还被用来重编内核和升级,所以不适合完全拷贝过来。 #mv Local.pm diff ident search source templates #将web相关部分移到templates下 #mv templates http #http目录,用于存放WEB部分 #ln -s /usr/local/lxr/http/Local.pm /usr/lib/perl5/site_perl/ #ln -s http/lxr.conf #为web部分和工具部分都需要用的文件建符号连接
本例中使用的是/usr/local/lxr目录作为LXR的根目录。
#tar zxvf lxr-0.9.1.tar.gz -C /usr/local ;将lxr解压到/usr/local/lxr下
#cd /usr/local/
#mv lib /usr/lib/perl5/site_perl/LXR #将自定义的perl库文件拷贝
到perl/mod_perl使用的缺省库文件目录中
#ln -s /usr/lib/perl5 /usr/local/lib #否则在运行时会出现Can't locate LXR/Files.pm等错误
建立源代码根目录,(当前在lxr目录)
#mkdir src ;源代码部分的根
并将 linux-2.6.39的源码链接到此目录下。
#cd src
mkdir glimpse
ln -s ../../../../src/linux-2.6.39 2.6.39
#vi versions ;编辑/usr/local/lxr/src/versions文件,内容为2.6.39,表示让lxr索引2.6.39
#cd ../../ ;回到/usr/local/lxr
2)修改lxr.conf
准备好了目录结构,下一步就是改写lxr.conf文件。缺省的lxr.conf已经从templates拷贝到/usr/local/lxr/http/下了,
并在/usr/local/lxr/下有个连接。 注释掉所有与swish-e相关的变量定义,其余设置如下
'glimpsebin' => '/usr/local/bin/glimpse', |
'glimpseindex' => '/usr/local/bin/glimpseindex', |
'ectagsbin' => '/usr/bin/ctags', |
'genericconf' => '/usr/lib/perl5/site_perl/LXR/Lang/generic.conf' |
'ectagsconf' => '/usr/lib/perl5/site_perl/LXR/Lang/ectags.conf' |
'baseurl' => '' #主机的IP地址 |
'range' => [ readfile('/usr/local/lxr/src/versions') ] |
'default' => '2.6.39' #缺省的代码树名 |
# Templates used for headers and footers 下所有路径均设置为绝对路径,如 |
'htmlhead' => '/usr/local/lxr/http/html-head.html' |
|
'sourceroot' => '/usr/local/lxr/src' #源码根目录 (注意,最后无/) |
'sourcerootname' => 'Linux-$v' #它将显示在缺省的最高级源码目录上 |
'glimpsedir' => '/usr/local/lxr/src/glimpse' #(注意,最后无/) |
3)apache的httpd.conf (/etc/httpd/conf/httpd.conf) Alias /lxr/ /usr/local/lxr/http/ AllowOverride None Options FollowSymLinks SetHandler perl-script PerlHandler ModPerl::Registry #注意这里不是Apache::Registry Options +ExecCGI PerlOptions +ParseHeaders
保证装了mod_perl的时候,在httpd.conf中添加以下几行:
表示访问/lxr就相当于访问/usr/local/lxr/http,且用perl解释search、source、ident、diff和find几个脚本,
而其他的仍然当成html来使用。
如果没有mod_perl,可以用SetHandler cgi-script代替perl-script,一样可以用,PerlHandler就不用了。
4.initialize
1)初始化MySQL数据库 (mysql) :
进入lxr目录/usr/local/lxr
# mysql
\. initdb-mysql
2).建glimpse索引
在/usr/local/lxr/src/2.6.39/下运行'find . -name "*.[chS]" -follow | glimpseindex -H . -o -F',索引所有.c、.h、.S(汇编)文件。这个过程比较耗时,但比起下一个过程来,就小巫见大巫了。[内核分析]LXR安装心得(0.9.3版)---RH8.0测试通过http://www.cnblogs.com/huqingyu/archive/2005/02/19/106080.html
利用LXR建立源代码交叉索引 【原】http://hi.baidu.com/kissdev/blog/item/6e493daf15cf33c77cd92af9.html
LXR安装过程简介(0.3版) http://blog.chinaunix.net/u1/46901/showart_397299.html
高亮LXR的代码
mysql wiki:(%E7%AE%80%E4%BD%93%E4%B8%AD%E6%96%87
附:部分软件版本
File-MMagic-1.27.tar.gz
perl-dbi-1.616-2-i686.pkg.tar.xz
perl-dbd-mysql-4.020-1-i686.pkg.tar.xz
lxr-0.9.10.tgz
glimpse-4.18.6