当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 18 篇帖子 ]  前往页数 1, 2  下一页
作者 内容
1 楼 
 文章标题 : 在自己的计算机上建立lxr源代码检索服务器
帖子发表于 : 2008-12-06 14:24 
头像

注册: 2006-09-14 10:57
帖子: 27
地址: http://szmicrotiger.blogspot.com/
送出感谢: 0 次
接收感谢: 0 次
SourceInsight固然在windows下面分析源代码很但方便,但是我的工作平台是linux,linux下面也需要经常对代码进行分析和检索,我试用过多种分析工具,最后还是确定使用lxr,通过参考一位台湾朋友t@c发表的一篇名为
Technical Writing's Rule Of Thumb + Local Web based Code Cross Reference (eg. LXR clone)
的文章得以在我的工作计算机ubuntu 8.04和家用计算机ubuntu 8.10上搭建成功,谨在此向t@c仁兄致敬。

现在我把原文略加修改(原文为繁体中文,若干专有名词与大陆不同,作者使用的内核代码为2.6.24,我自己的是2.6.26)后转述如下:

01) LXRng依赖许多package,因此需要安装相关软件,使用如下命令:
$ sudo aptitude install git-core postgresql-8.3 postgresql-client-8.3 libxapian15 libsearch-xapian-perl apache2 libapache2-mod-perl2 libcgi-simple-perl libcgi-ajax-perl libhtml-parser-perl libtemplate-perl libterm-progressbar-perl libdevel-size-perl libdbd-pg-perl ctags

2) 数据库增加有用最大权限的使用者帐号,指令为:
$ sudo -i
$ su - postgres
$ createuser user # Answer "yes" when asked about superprivileged access
$ exit
$ exit

3) 建立数据库,并将http服务器使用者设定为数据库的一般使用者,因此在建立www-data帐号遇到的问题全部回答"N",指令为:
$ createdb lxrng
$ createuser www-data

4) 由LXR的repository取得LXRng,指令为:
$ cd ~
$ git-clone git://lxr.linux.no/git/lxrng.git

5) 启动LXRng设定,指令为:
$ cd ~/lxrng
$ cp lxrng.conf-dist lxrng.conf
$ vim lxrng.conf

6) 将以下字符串注释掉
use LXRng::Repo::Git;
my $gitrepo = LXRng::Repo::Git
->new('/var/lib/lxrng/repos/linux-2.6/.git',
release_re => qr/^v[^-]*$/,
author_timestamp => 0);
my $search = LXRng::Search::Xapian->new('/var/lib/lxrng/text-db/linux-2.6');

7) 新增加以下新的字符串,指令为:
use LXRng::Repo::Plain;
my $plainrepo = LXRng::Repo::Plain->new('/home/user/src/linux-source');
my $search = LXRng::Search::Xapian->new('/home/user/src/linux-source-2.6.26-textdb');

8) 修改下列字符串:postgresq
'repository' => $gitrepo, --改为--> 'repository' => $plainrepo,
'base_url' => 'http://lxr-test.linpro.no/lxr', --改为--> 'base_url' => 'http://localhost/lxr',
'cache' => '/var/lib/lxrng/cache', --改为--> 'cache' => '/home/user/lxrng/cache',
'ver_list' => [$gitrepo->allversions], --改为--> 'ver_list' => ['v2.6.26'],
'ver_default' => 'v2.6.20.3', --改为--> 'ver_default' => 'v2.6.26',

9) save&quite(emacs or vim in this example)

10) 下载Linux kernel source code并将目录设置为7)8)中设定好的目录相符合
$ mkdir ~/src
$ cp linux-2.6.26.tar.gz ~/src
$ cd ~/src
$ tar -xzvf linux-2.6.26.tar.gz
$ mkdir linux-source
$ mkdir linux-source/v2.6.26
$ mv linux-source-2.6.26/* linux-source/v2.6.26
$ mkdir linux-source-2.6.26-textdb
$ mkdir ~/lxrng/cache
$ chmod 777 ~/lxrng/cache -R
$ chmod 777 ~/lxrng/webroot -R
$ make -C ~/lxrng/webroot/.static/gfx

11) 生成Linux-2.6.26的XR,指令为:
$ cd ~/lxrng
$ ./lxr-db-admin linux --init
$ ./lxr-genxref linux

12) 设置Apache2
$ cp apache2-site.conf-dist-mod_perl apache2-site.conf
$ sudo ln -s ~/lxrng/apache2-site.conf /etc/apache2/sites-enabled/010-lxrng
$ vim apache2-site.conf
将所有"@@LXRROOT@@"替换成"/home/user/lxrng"
将"@@LXRURL@@"替换成"lxr"

13) 重新启动Apache2
$ sudo /etc/init.d/apache2 reload

14) 使用浏览器打开http://localhost/lxr即可进行代码检索。

如果要更换domain name,可将现有的"localhost"改为"somewhere.com",只需要将"lxrng.conf"中的"base_url"替换之后再执行./lxr-genxref linux即可,这次的执行时间十分短,因为XR都已经存在,现在即可使用浏览器打开新的网址"http://somewhere.com/lxr"检索代码。至此,配置完毕,希望对大家有用。


最后由 microtiger 编辑于 2009-10-28 16:32,总共编辑了 1 次

页首
 用户资料  
 
2 楼 
 文章标题 : Re: 在自己的计算机上建立lxr源代码检索服务器
帖子发表于 : 2009-03-24 4:32 
头像

注册: 2007-04-14 0:41
帖子: 146
地址: 武汉
送出感谢: 0 次
接收感谢: 0 次
谢谢,我正在为设置不好lxr而发愁,快放弃的时候看到你的帖子!!!
我差点被下面这行中最后的[11]迷惑了,以为是原文件应该有的,后来google了一下,知道了是楼主引用的文章的解释标号,在实际文件中没有像[11]这样的字符,因该把[11]去掉,不然会出错
my $plainrepo = LXRng::Repo::Plain->new('/home/user/src/linux-source'); [11]

在此给出引用文章连接:
http://memyselfandtaco.blogspot.com/200 ... local.html


页首
 用户资料  
 
3 楼 
 文章标题 : Re: 在自己的计算机上建立lxr源代码检索服务器
帖子发表于 : 2009-03-24 9:29 
头像

注册: 2007-11-29 9:41
帖子: 8455
送出感谢: 0 次
接收感谢: 0 次
好复杂,先收藏吧


页首
 用户资料  
 
4 楼 
 文章标题 : 两个截图
帖子发表于 : 2009-03-24 18:39 
头像

注册: 2007-04-14 0:41
帖子: 146
地址: 武汉
送出感谢: 0 次
接收感谢: 0 次
v2.6.26 截图
附件:
LXR linux2.6.26.png
LXR linux2.6.26.png [ 104.61 KiB | 被浏览 2792 次 ]


v2.6.24 截图
附件:
LXR linux2.6.24.png
LXR linux2.6.24.png [ 174.73 KiB | 被浏览 2794 次 ]



页首
 用户资料  
 
5 楼 
 文章标题 : Re: 在自己的计算机上建立lxr源代码检索服务器
帖子发表于 : 2009-03-24 19:11 

注册: 2007-10-14 0:11
帖子: 274
送出感谢: 0 次
接收感谢: 0 次
我在自己机器上假设了blog,这样会不会对他有影响?
还有如何卸载?


页首
 用户资料  
 
6 楼 
 文章标题 : Re: 在自己的计算机上建立lxr源代码检索服务器
帖子发表于 : 2009-03-24 19:45 

注册: 2007-10-14 0:11
帖子: 274
送出感谢: 0 次
接收感谢: 0 次
$ createuser user # Answer "yes" when asked about superprivileged access

在这一步的时候,提示:
createdb: 无法联接到数据库 postgres: 致命错误: 用户 "boluor" Ident 认证失败

我的系统是8.10.在安装上述软件包时提示,安装的时候提示:
注意:选择 “exuberant-ctags”而不是虚拟软件包 “ctags”

遇到这个问题该怎么解决阿?
谢谢!


页首
 用户资料  
 
7 楼 
 文章标题 : Re: 在自己的计算机上建立lxr源代码检索服务器
帖子发表于 : 2009-03-24 21:40 
头像

注册: 2007-04-14 0:41
帖子: 146
地址: 武汉
送出感谢: 0 次
接收感谢: 0 次
$ createuser user 中的"user"最好是你的用户名,即你当前登录的用户名,因为接下来要设置的内容都是用你当前用户的设置的

注意要先切换到postgres用户才执行createdb lexrng和createuser username


页首
 用户资料  
 
8 楼 
 文章标题 : Re: 在自己的计算机上建立lxr源代码检索服务器
帖子发表于 : 2009-03-24 22:00 
头像

注册: 2007-04-14 0:41
帖子: 146
地址: 武汉
送出感谢: 0 次
接收感谢: 0 次
boluor 写道:
我在自己机器上假设了blog,这样会不会对他有影响?
还有如何卸载?

不会有影响

lxr-db-admin 有三个选项: --init (初始化)、--reset(重置)、 --drop(删除)
我一开始出错了,所以执行删除 ./lxr-db-admin linux --drop, 然后再执行初始化./lxr-db-admin linux --init,在执行以后的操作
卸载的方法:
./lxr-db-admin linux --drop #本例中的linux在lxrng.conf中指定的linux,也可以是lxrng.cong中的其它选项
sudo rm /etc/apache2/sites-enabled/010-lxrng #这样apache2就不会打开http://localhost/lxr了
然后删除其它设置的内容


页首
 用户资料  
 
9 楼 
 文章标题 : Re: 在自己的计算机上建立lxr源代码检索服务器
帖子发表于 : 2009-03-25 14:36 

注册: 2007-10-14 0:11
帖子: 274
送出感谢: 0 次
接收感谢: 0 次
mv linux-source-2.6.26/* linux-source/v2.6.26

这一步应该是mv linux-2.6.26/* linux-source/v2.6.26吧.是把下载的源文件下的所有文件都移动到linux-source/v2.6.26中去。


页首
 用户资料  
 
10 楼 
 文章标题 : Re: 在自己的计算机上建立lxr源代码检索服务器
帖子发表于 : 2009-03-25 14:43 

注册: 2007-10-14 0:11
帖子: 274
送出感谢: 0 次
接收感谢: 0 次
继续遇到问题。
代码:
boluor@boluor-laptop:~/lxrng$ ./lxr-db-admin linux --init
注意:  CREATE TABLE 将为 serial 字段 "charsets.id" 创建隐含序列 "charsets_id_seq"
注意:  CREATE TABLE / PRIMARY KEY 将要为表 "charsets" 创建隐含索引 "charsets_pkey"
注意:  CREATE TABLE / PRIMARY KEY 将要为表 "trees" 创建隐含索引 "trees_pkey"
注意:  CREATE TABLE / PRIMARY KEY 将要为表 "releases" 创建隐含索引 "releases_pkey"
注意:  CREATE TABLE / PRIMARY KEY 将要为表 "files" 创建隐含索引 "files_pkey"
注意:  CREATE TABLE / UNIQUE 将要为表 "files" 创建隐含索引 "files_path_key"
注意:  CREATE TABLE / PRIMARY KEY 将要为表 "revisions" 创建隐含索引 "revisions_pkey"
注意:  CREATE TABLE / UNIQUE 将要为表 "revisions" 创建隐含索引 "revisions_id_file_key"
注意:  CREATE TABLE / PRIMARY KEY 将要为表 "filestatus" 创建隐含索引 "filestatus_pkey"
注意:  CREATE TABLE / PRIMARY KEY 将要为表 "hashed_documents" 创建隐含索引 "hashed_documents_pkey"
注意:  CREATE TABLE / PRIMARY KEY 将要为表 "filereleases" 创建隐含索引 "filereleases_pkey"
注意:  CREATE TABLE / PRIMARY KEY 将要为表 "symbols" 创建隐含索引 "symbols_pkey"
注意:  CREATE TABLE / UNIQUE 将要为表 "symbols" 创建隐含索引 "symbols_name_key"
注意:  CREATE TABLE / PRIMARY KEY 将要为表 "identifiers" 创建隐含索引 "identifiers_pkey"
boluor@boluor-laptop:~/lxrng$ ./lxr-genxref linux
--- recording all files for                                                  
Recording:   0% [                                                    ]Can't call method "contents" on an undefined value at /home/boluor/lxrng/lib/LXRng/Repo/Plain/Iterator.pm line 28.


而在前面一步$ make -C ~/lxrng/webroot/.static/gfx时,提示:
boluor@boluor-laptop:~/lxrng$ make -C ~/lxrng/webroot/.static/gfx
make:进入目录'/home/boluor/lxrng/webroot/.static/gfx'
make: 没有什么可以做的为 `all'。
make:离开目录“/home/boluor/lxrng/webroot/.static/gfx”


我使用的是2.6.28.在那个conf文件中已经按照对应的改了。


页首
 用户资料  
 
11 楼 
 文章标题 : Re: 在自己的计算机上建立lxr源代码检索服务器
帖子发表于 : 2009-03-25 14:54 

注册: 2007-10-14 0:11
帖子: 274
送出感谢: 0 次
接收感谢: 0 次
这个是我现在声称的界面,估计是上一步的提示中出问题的缘故。现在是使用不了的。


附件:
文件注释: 由于发生上述错误,我继续设置了apche2后,输入http://localhost/lxr看到的界面。
Screenshot.png
Screenshot.png [ 93.11 KiB | 被浏览 2779 次 ]

页首
 用户资料  
 
12 楼 
 文章标题 : Re: 在自己的计算机上建立lxr源代码检索服务器
帖子发表于 : 2009-03-25 17:30 

注册: 2007-10-14 0:11
帖子: 274
送出感谢: 0 次
接收感谢: 0 次
哈哈,我搞定了。现在可以了。谢谢LZ和 天浩 兄弟,我用了一下午终于搞定了。那个./lxr-genxref linux过程整整耗了2个小时12分钟。
贴张图show下:


附件:
文件注释: 在我的机器上终于架起了Lxr。
Screenshot.png
Screenshot.png [ 133.28 KiB | 被浏览 2768 次 ]

页首
 用户资料  
 
13 楼 
 文章标题 : Re: 在自己的计算机上建立lxr源代码检索服务器
帖子发表于 : 2009-03-25 20:46 

注册: 2007-10-14 0:11
帖子: 274
送出感谢: 0 次
接收感谢: 0 次
我结合上面的和自己装的经历,写了篇总结。欢迎大家查看。
附件提供pdf和doc版本。大家喜欢那个格式就下哪个吧。


附件:
lxr源代码检索服务器.doc [245.5 KiB]
被下载 60 次
lxr源代码检索服务器.pdf [214.52 KiB]
被下载 87 次
页首
 用户资料  
 
14 楼 
 文章标题 : Re: 在自己的计算机上建立lxr源代码检索服务器
帖子发表于 : 2009-03-26 1:27 
头像

注册: 2007-04-14 0:41
帖子: 146
地址: 武汉
送出感谢: 0 次
接收感谢: 0 次
:em50 很不错! 继续加油啊!


页首
 用户资料  
 
15 楼 
 文章标题 : Re: 在自己的计算机上建立lxr源代码检索服务器
帖子发表于 : 2009-03-26 8:53 

注册: 2007-10-14 0:11
帖子: 274
送出感谢: 0 次
接收感谢: 0 次
:em02 thank you! 以后多多交流。


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 18 篇帖子 ]  前往页数 1, 2  下一页

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:cnkilior 和 3 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译