QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1703|回复: 0

EasyLXR 0.1 发布

[复制链接]
发表于 2006-4-27 08:48:20 | 显示全部楼层 |阅读模式
EasyLXR 0.1 发布

EasyLXR(LXR 0.95)

摘要
====


LXR(http://sourceforge.net/projects/lxr)是一个基于web的源代码交叉
索引工具。EasyLXR对LXR进行再包装,以使LXR的安装和部署更加简单。


准备工作
=======


在安装前,确保你已经安装有下列软件:
1、 新版本的exuberant ctag。可以从http://sf.net/projects/ctags上
获得。
2、 4.x以上的MySQL数据库服务器。
3、 web服务器,推荐使用apache。
4、 Swish-e自由文本查询工具,可以从http://swish-e.org上获得最新版本。
5、 Perl5语言环境,perl DBI模块和mysql的perl DBI模块。以及下列CPAN
模块:File::MMagic,Digest::SHA。
6、 cvs和rcs工具。


安装和设置
==========


1、安装文件
以root身份运行easylxr安装目录下的install.pl脚本:
#./install.pl
如果没有错误,运行完毕后你的系统中将增加下列文件和文件夹:
/usr/local/bin/easylxr-check
/usr/local/bin/easylxr-del
/usr/local/bin/easylxr-add
/usr/local/bin/easylxr-sync
/usr/local/share/easylxr/
/usr/local/share/doc/easylxr/
/etc/easylxr.conf
如果你不想安装在/usr/local下,你可以自行修改install.pl的
$install_prefix变量。
注:如果你不是第一次安装,那么/etc/easylxr.conf文件如果已经存在则
不会被覆盖掉。

2、 基本设置
用你最习惯的编辑器打开/etc/easylxr.conf文件,你会看到下列内容:

{
        basedir         => '/usr/local/share/easylxr/', #easylxr install dir
        lxrwwwdir       => '/data/lxr/',                #lxr's www root
        virtroot        => '/lxr/',                     #www virtual root
        tmpdir          => '/tmp/',
        baseurl         => 'http://172.16.4.225',
        baseurl_aliases => [ 'http://192.168.128.2', 'http://mojave' ],
        cssfile         => '/css/lxr.css', #it's part of url rather a unix path
        swishbin        => '/usr/bin/swish-e',
        ectagsbin       => '/usr/bin/ctags',
        templatesdir    => '/usr/local//share/easylxr/templates/', #customize your templates if you want
        genericconf     => '/usr/local//share/easylxr/configs/generic.conf',
        swishconf       => '/usr/local//share/easylxr/configs/swish-e.conf',
        ectagsconf      => '/usr/local//share/easylxr/configs/ectags.conf',
        cvspath         => '/bin:/usr/local/bin:/usr/bin:/usr/sbin',
        dsn             => 'dbi:mysql:dbname=lxr',
        dbuser          => 'lxr',
        dbpass          => 'lxr',
}

其中需要或者可以修改的变量是:
* lxrwwwdir: lxr所使用的本地web根目录。如果你使用的是apache,那么
通常需要类似这样的设置:
<Directory /data/lxr>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
</Directory>
其中,AllowOverride选项必须打开。
此值必须以'/'字符结尾。

* virtroot: lxr所在的web虚拟目录。比如这样的apache配置:
Alias /lxr /data/lxr
那么,virtroot的值就是'/lxr/'。
此值必须以'/'字符结尾。

* tmpdir: lxr所使用的临时文件目录。
此值必须以'/'字符结尾。

* baseurl: lxr所使用的web服务器的URL基地址。
此值不能以'/'字符结尾。

* baseurl_aliases: 如果你的web服务器绑定了多个地址,那么此变量可以
设置为其他URL基地址。变量类型是数组,格式为:
['URL1','URL2',...]
里面的值不能以'/'字符结尾。

* cssfile: lxr所使用的css样式表文件的HTTP地址
比如/css/lxr.css就是http://www.your.server/css/lxr.css
EasyLXR的默认安装下有一个
/usr/local/share/easylxr/templates/lxr.css
样式文件可供参考

* swishbin和ectagsbin: swish-e和ctags程序的路径

* templates: 模板目录,供自定义使用。

* genericconf, swishconf, ectagsconf: 默认的程序配置文件。

* cvspath: 保留默认设置。

* dsn: 数据库描述。目前只支持mysql的dbi接口,格式是:
dbi:mysql:dbname=<LXR所使用的数据库名称>

* dbuser,dbpass: 数据库的用户名和密码。
也因此,为了安全性,你需要给/etc/easylxr.conf设置适当的权限。

设置完毕后,你需要运行easylxr-check确保所有设置无误。

3、 添加一个程序的交叉索引
运行easylxr-add命令,你会看到下列帮助信息:
$easylxr-add
Usage: /usr/local/bin/easylxr-add [TYPE] [NAME]
    valid TYPE is: plain cvs

其中plain的意思是,源代码为普通文件的形式,每增加一个版本就解压一
个版本。cvs的意思是,源代码存储于本地cvs仓库中(只能是本地的)。

首先以plain类型的为例:
假设我们现在要索引gpaint的代码。那么首先用easylxr-add添加一个
gpaint的LXR目录:
$easylxr-add plain gpaint
ln -s /usr/local/share/easylxr/cgis/* .
ln -s /usr/local/share/easylxr/configs/Local.pm .
cp /usr/local/share/easylxr/configs/htaccess .htaccess
cp /usr/local/share/easylxr/configs/lxr.conf.plain lxr.conf
/usr/local/share/easylxr//utils/initdb-mysql.pl
touch .easylxr.plain
DO REMEMVER TO CONFIG YOUR /var/www/lxr/gpaint/easylxr.conf NOW!

最后它提醒我们,要配置一个文件/var/www/lxr/gpaint/easylxr.conf。
打开后,其内容为:
$easylxrconf->{name} = 'gpaint';
$easylxrconf->{longname} = 'gpaint';
$easylxrconf->{incprefix} = [];
$easylxrconf->{srcdir} = '';#<FIXME>
$easylxrconf->{srcversions} = [];#<FIXME>
$easylxrconf->{srcdefaultversion} = '';#<FIXME>
$easylxrconf->{swishdir} = '';#<FIXME>
die "CONFIG YOUR easylxr.conf first!";

其中:
* incprefix: c/c++语言中的include的本地搜索路径,比如源代码根
目录下有一个include目录,那么你可以设置
$easylxrconf->{incprefix} = ['include'];

* srcdir: 源代码的目录位置,可以是绝对地址,也可以是相对地址,
如果是相对地址,那么相对的目录就是本easylxr.conf所在目录。在
这里我们将其设置为'src'。也就是,我将我们的代码解压在
/var/www/lxr/gpaint/src下。

* srcversions: 源代码的所有版本,类型为数组。
每个版本的代码可以在上面配置的srcdir下找到,并且对应的目录名
就是版本名。比如我们有gpaint-0.2.1和gpaint-2-0.2.3,那么设置
$easylxrconf->{srcversions} = ['gpaint-0.2.1','gpaint-2-0.2.3'];

* srcdefaultversion: 默认的版本

* swishdir: swish-e索引文件的保存地址,也可以是相对或绝对地址。
在这里我们设置为'src/swishdir'。

设置完毕后把最后一行的die语句删除即可。
现在先访问http://yourserver/lxr/gpaint/测试一下情况,如果一切正常,
那么就可以开始更新索引了。
更新命令:
$easylxr-sync gpaint
一切顺利后,再访问http://yourserver/lxr/gpaint/,这时索引和自由
搜索功能就都可以正常工作了。

再简要介绍一下cvs类型的索引:
同样是使用easylxr-add添加,类型参数为cvs:
$easylxr-add cvs cvs_test
运行后得到的easylxr.conf如下:
$easylxrconf->{name} = 'cvs_test';
$easylxrconf->{longname} = 'cvs_test';
$easylxrconf->{incprefix} = [];
$easylxrconf->{cvsroot} = '';#<FIXME>
$easylxrconf->{cvsmodule} = '';#<FIXME>
$easylxrconf->{lxred_cvs_tags} = [];#<FIXME>
$easylxrconf->{lxred_cvs_default_tag} = '';#<FIXME>
$easylxrconf->{swishdir} = '';#<FIXME>

现介绍与plain类型不同的地方,其他不变:
*cvsroot: cvs的根仓库(包含有CVSROOT目录)

*cvsmodule: 需要索引的cvs模块。可以是'.',代表整个CVS根仓库。

*lxred_cvs_tags: 需要关注的cvs标签,数组类型。使用head或者
1.2这样的值作为这个数组的元素都不是好注意,因为如果你有些CVS概念
的话会知道head是一直在变化的,而每个文件都取1.2版本也不一定能配合
良好。所以正确的取值是一组有意义的cvs标签,比如REL_1,REL_1_FIX
之类的。

*lxred_cvs_default_tag: 默认关注的cvs标签。

配置完毕后。
更新索引的方法不变。

4、 删除一个程序的交叉索引
用easylxr-del命令,参数为已经建立过的LXR目录即可。
删除是不可逆的,切记。

卸载
====


运行
#./install uninstall
即可

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-16 16:29 , Processed in 0.060281 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表