史上最详细的LXR安装介绍

来源:互联网 发布:java 依赖打包 编辑:程序博客网 时间:2024/06/05 15:20

史上最详细的LXR安装介绍(Ubuntu14.04+Apache2.4.7)

简介:

LXR (Linux Cross Reference)是一个通过交叉索引方便用户查看项目源代码的工具。项目地址:http://sourceforge.net/projects/lxr/

依赖工具:

LXR依赖的工具包括:

  • Apache和Apache modules:

    mod_version(Ubuntu 默认安装安装)mod_perl(LXR基于perl脚本开发)
  • perl和依赖perl模块:DBD::mysql,File::Magic,Digest::SHA

  • ctags
  • glimpse(http://webglimpse.net)和swish-e(http://swish-e.org/),建立索引数据的工具,安装一个即可。

安装配置过程:

一、安装Apache和需要的modules:

1.apache的安装安装网上的攻略即可。

2.mod_version在ubuntu14.04上默认安装。

3.安装mod_perl:

sudo apt-get install libapache2-mod-perl2

4.安装mod_mpm

sudo a2dismod mpm*sudo apt-get install apache2-mpm-worker

5.使以上模块生效:

sudo a2enmod versionsudo a2enmod mpm_worker

6.检查模块是否生效:

apache2ctl -MLoaded Modules:……version_module (static)mpm_prefork_module (shared)perl_module (shared)……

有以上模块即可。

二、安装perl和依赖的perl模块:

Perl 到了第五版增加了模块的概念,用来提供面向对象编程的能力。这是 Perl 语言发展史上的一个里程碑。此后,广大自由软件爱好者开发了大量功能强大、构思精巧的 Perl 模块,极大地扩展了 Perl 语言的功能。CPAN(Comprehensive Perl Archive Network)是 Perl 模块最大的集散地,包含了现今公布的几乎所有的 perl 模块。

配置perl的库文件安装工具CPAN(http://search.cpan.org/)

sudo perl -MCPAN -e shell (需要root权限执行)

ubuntu下一些模块也可以用apt安装。

  1. 安装perl。

  2. 安装DBD::mysql (由于ubuntu 14.04在cpan,install DBD::mysql 不管用)

    sudo apt-get install libdbd-mysql-perl
  3. 安装File::Magic和Digest::SHA:

    sudo perl -MCPAN -e shelinstall File::Magicinstall Digest::SHA

三、安装ctags:

  1. 安装所需的库

    sudo apt-get install build-essential subversion autoconf
  2. 下载ctags安装文件(下载地址:http://jaist.dl.sourceforge.net/project/ctags/ctags/5.8/ctags-5.8.tar.gz)

  3. 编译安装:

    ./configuration --prefix=/usr/local/sudo makesudo make install 

四、 glimpse和swish-e安装,(装一个就行)

安装web glimpse(http://webglimpse.net)

  1. 下载地址:(http://webglimpse.net/trial/glimpse-latest.tar.gz)

  2. 安装依赖库:ubuntu

    sudo apt-get install flex

  3. 安装

    ./configuration –prefix=/usr/local/
    sudo make
    sudo make install

安装swish-e

  1. 下载地址:(http://swish-e.org/distribution/swish-e-2.4.7.tar.gz)

  2. 安装

    ./configuration –prefix=/usr/local/
    sudo make
    sudo make install

五、LXR安装:

  1. 下载地址(2.0.3版本):(http://jaist.dl.sourceforge.net/project/lxr/stable/lxr-2.0.3.tgz)

  2. 解压并移动文件夹:

    为了让lxr能够被正常访问,最好将lxr安装在/usr/local/share

    $ cd /usr/local/share$ tar -zxf ~/Download/lxr-x.y.z.tgz
  3. 检查执行环境:
    在lxr安装目录下执行:

    $./genxref --checkonly[  OK  ]     Perl     version ... 5.18.2[  OK  ]     ctags    version ... 5.8Checked:    glimpse   version ... 4.18.5Checked: glimpseindex version ... 4.18.5Parameter 'swishbin' not defined - trying to find swish-eswish-e found at /usr/local/bin/swish-eManually update lxr.conf for permanent setting if needed[  OK  ]    swish-e   version ... 2.4.7genxref stopped without indexing by --checkonly option

    所需要的perl,ctags,glimpse或swish-e能够检测到版本即可,glimpse前面没有输出[ok]没关系,是因为配置参数的原因。
    genxref检查通过标志着使用lxr能够生成代码的索引文件。

六、LXR配置:

LXR的配置包括LXR服务器的配置、数据库配置等。

  1. 启动lxr配置:

    $ ./scripts/configure-lxr.pl -vv

按照官方配置说明(http://lxr.sourceforge.net/en/1-0-InstallSteps/1-0-install3config.php)配置即可。

配置完成后,在lxr文件夹内生成一个custom.d/文件夹,里面有lxr的网站和服务器的配置文件。

  1. 初始化数据库。

    $ ./custom.d/initdb.sh

会根据第1步配置的数据库信息,在数据库中创建所需要的表。

  1. 拷贝lxr.conf到lxr根目录

    $ cp custom.d/lxr.conf .

lxr是产生索引和网站所需的配置文件,产生索引指定的源代码地址、索引创建的目录等信息都在这里指定。

  1. 生成索引文件。

将源代码拷贝到第1步指定的目录内。lxr是根据文件夹管理版本的,源代码里的目录结构是一个文件夹对应一个版本。比如在文件夹内建立“610”文件夹,将6.1.0的代码拷贝到这个文件夹内。
执行命令:

 $ ./genxref --url=http://test.mosenyang.net:8113/cgi-bin --version=610

如果以上没有报错,lxr配置和建立索引数据的工作就完成了,在数据库(http://test.mosenyang.net:8111)中可以看到建立的索引数据。

七、服务端配置。

LXR使用perl脚本实现,通过apache的CGI接口动态的生成页面。ubuntu14.04的apache是2.4.7版,和LXR文档的版本有很大出入,以下文档是摸索出来的,仅保证在apache2.4以上版本能够使用。

如果服务端80或8080端口被占用,需要使用其他端口,检查lxr服务器的配置文件apache-lxrserver.conf是否有

Listen port_num
  1. 使lxr的配置生效:

    sudocpcustom.d/apachelxrserver.conf/etc/apache2/confavailable sudo a2enconf apache-lxrserver.conf

  2. 修改cgi的配置,把cgi-bin路径指向到lxr的安装路径。

    ScriptAlias /cgi-bin/ /usr/local/share/lxr/

八、维护问题:

1.如何生成一个新版本的索引并在前端展示:

1)生成新版本的索引文件:

./genxref --url=http://test.mosenyang.net/lxr --version=610

2)将新版本的version加入lxd.conf文件中:

'range' => [qw(610)]

第一位的版本是默认显示的版本。

1 0
原创粉丝点击