当前位置:Linux教程 - Linux文化 - EasyLXR 0.1发布下载

EasyLXR 0.1发布下载


摘要 ====

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,那么 通常需要类似这样的设置: Options Indexes FollowSymLinks MultiViews AllowOverride All 其中,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=

* 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} = '';# $easylxrconf->{srcversions} = [];# $easylxrconf->{srcdefaultversion} = '';# $easylxrconf->{swishdir} = '';# 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} = '';# $easylxrconf->{cvsmodule} = '';# $easylxrconf->{lxred_cvs_tags} = [];# $easylxrconf->{lxred_cvs_default_tag} = '';# $easylxrconf->{swishdir} = '';#

现介绍与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 即可