仓酷云

标题: Linux制作之安拆卸置LXR仓酷云 [打印本页]

作者: 小妖女    时间: 2015-1-18 11:29
标题: Linux制作之安拆卸置LXR仓酷云
要多动手,不要怕什么搞坏了怎么办,你不搞坏,不去动手,就永远不会有收获,既然你在linux中是自由的,那就发挥自己的权利;
专业课进修操纵体系,满心欢乐地觉得能够是Linux代码导读,了局选用了一本八十年月的课本,先容UNIXv6的。因而本人从藏书楼借来了内核开辟的进门读物《Linux内核计划与完成》。既然是先容内核的书,天然少不了代码,可是书中又不成能将每一个提到的代码的相干信息全体写出来,这时候就得本人往检察代码。检察代码的话,固然Linux的代码能够很简单地失掉,但那来看终回有些贫苦,各类挪用必要查找半天。因而想起了很着名的一个网站LXR:http://lxr.linux.no,Linux交织援用。这个网站好是好,就是收集缘故原由速率太慢,因而就想本人装一个。
先说一句,上面的安装情况都是64位Gentoo。
最入手下手找到了LXRCrossReferencer这个项目,一看最初更新工夫还挺新,看起来是一向都还在保护的。然后在Gentoo的网站上查到LXR是能够间接用portage安装的,因而安装,安装相干的包,最初保持了。出于甚么缘故原由我也不记得了,最初一个缘故原由一定是欠好看,一定达不到下面谁人网站的效果,以是就保持了,到谁人网站上往下载LXR分出来的版本LXRng。(话说这个ng不会是暗示nextgeneration吧?)
安装撑持库

起首从LXR的网站上用git把代码下载上去,
  1. 1
复制代码
  1. gitclonegit://lxr.linux.no/git/lxrng.git
复制代码
然后我翻开了内里的INSTALL文件,内里写着很多多少很多多少库。先说结论吧,在Gentoo的官方源内里,有两个库是没有的,分离是Search-Xapian和CGI-Ajax,这两个最初安装。
最主要的是先安装PostgreSQL,因为LXR是用Perl写成的,以是在USE内里到场了Perl,然后安装。安装完成今后,安装PostgreSQL的Perl库DBD-Pg。接下往安装Cgi-Simple、HTML-Parser、HTML-Entities、Term-ProgressBar、Devel-Size、Template-Toolkit,这些都很简单,间接安装就能够了。(固然我断定这些包的称号还费了些工夫)
然后是Apache和它的mod_perl,由于之前安装了,并没有太年夜坚苦,这里也不胪陈了。
最贫苦的成绩来了,关于源里没有的Search-Xapian和CGI-Ajax怎样办呢?先把Xapian的次要部分给安装了吧。
安装xapian和xapian-bindings这两个包。由于这两个包的最新版本对amd64平台都是unstable的,以是要在/etc/portage/package.keywords内里到场
  1. 12
复制代码
  1. =dev-libs/xapian-1.2.7-r1~amd64=dev-libs/xapian-bindings-1.2.7-r2~amd64
复制代码
(是的,在Gentoo的查询体系上显现,xapian的1.2.5是不乱版本,我也已经试图安装谁人版本,然后仅安装非不乱版的-bindings,可是以后安装的Search-Xapian仍是会请求新的1.2.7,以是就如许吧。别的一样平常情况下,最后面是写>=的,可是我出于团体喜欢和完善主义,写了=。)接下往间接安装这两个包便可。记得反省已在USE内里到场了perl。
接下往安装那两个包。
Gentoo有个很奇妙的工具,也是我此次才发明的,叫做g-cpan,能够把CPAN下面的包主动打包安装为portage的包。不外假如是第一次利用必需要先设置一下,在/etc/make.conf最初加上
  1. 12
复制代码
  1. ACCEPT_KEYWORDS="amd64"PORTDIR_OVERLAY="/usr/local/portage"
复制代码
(固然这个设置看已往很复杂,不外由于一入手下手疏忽了这件事变,以是纠结了很长工夫……)
接下往用g-cpan安装就能够了
  1. 12
复制代码
  1. sudog-cpan-gCGI::AjaxSearch::XapiansudoemergeCGI-AjaxSearch-Xapian
复制代码
至此必要安装的工具就已全体装完了,上面进进第二阶段~
设置数据库

这个很复杂了,不外在设置之前要先把本人将会用到的用户到场到postgres组里以包管能够会见。最主要的是要把以后的apache用户到场到postgres组里,不然前面会呈现一些情况。
然后su到postgres用户里,增加用户root,并把root设置为办理员(由于以后天生的时分必要用到)
  1. 1
复制代码
  1. createuserroot
复制代码
然后创立LXR的数据库
  1. 1
复制代码
  1. gitclonegit://lxr.linux.no/git/lxrng.git1
复制代码
大致上如许就没成绩了。
调剂设置文件并创建事情目次

我出于完善主义的缘故原由,将LXR的事情目次放在了/var/lib/lxrng内里,假如你没有那些奇异的嗜好,完整能够间接在本人的文件夹上面安排这些工具。
起首要设置设置文件,将LXR根目次下的lxrng.conf-dist复制为lxrng.conf,然后翻开修正。内里大致上仍是对照明晰的,假如只是要做一个Linux代码的交织援用的话,大致上依照内里的设置,修正第10行
  1. gitclonegit://lxr.linux.no/git/lxrng.git2
复制代码
  1. gitclonegit://lxr.linux.no/git/lxrng.git3
复制代码
内里的谁人路径,使其指向你安排代码的git源(通常为代码文件夹下的.git)。
假如你没有利用git来抓代替码,而是间接下载某个版本的代码,如v3.1,能够安排到好比/var/lib/lxrng/repos/linux/v3.1,那末这个部分就修正为
  1. gitclonegit://lxr.linux.no/git/lxrng.git4
复制代码
  1. gitclonegit://lxr.linux.no/git/lxrng.git5
复制代码
便可。(注重下面的$gitrepo鄙人面另有利用过一次,假如修正的话必要一并修正)
接下往是第19行
  1. gitclonegit://lxr.linux.no/git/lxrng.git6
复制代码
  1. gitclonegit://lxr.linux.no/git/lxrng.git7
复制代码
必要在某个地位创建一个text-db文件夹,然后将下面的路径修正为你创建的谁人文件夹的路径便可。一样的操纵也产生在第29行
  1. gitclonegit://lxr.linux.no/git/lxrng.git8
复制代码
  1. gitclonegit://lxr.linux.no/git/lxrng.git9
复制代码
注重这个文件夹必要对apache:apache可写。我的做法是把这个文件夹的组设置为apache,然后设置权限为0775,固然也能够间接把一切者设置为apache然后保存本来权限。
正文失落上面这行
  1. 120
复制代码
  1. 121
复制代码
不要问我为何,这个我真不晓得,总之假如部正文失落一会儿会堕落。
最初是要天生援用的版本和默许显现的版本:
  1. 122
复制代码
  1. 123
复制代码
我激烈倡议你将$gitrepo->allversions修正为你想看的几个版本,乃至于只要一个版本也是没有成绩的即便你有完全的汗青纪录,由于每一个版本都必要天生很长工夫,并且仿佛历程很不不乱,假如没有出格的缘故原由,最好不要天生太多版本。假如是不必git源的话,只需把你放在谁人文件夹里的对应版本号填出来就能够了,最初修正默许显现的版本。
假如还想增加其他的代码,只需把代码最初return的年夜括号内里的部分复制一遍,依据必要修正就能够了。
初始化数据库及天生交织援用

起首要增加一个标记链接
  1. 1
复制代码
  1. 125
复制代码
接下往没甚么太年夜的不同,就是进进程序地点目次,然后
  1. 12
复制代码
  1. 127
复制代码
值得一说的是,这个历程十分十分十分冗长,在我的i7本上的假造机里,一跑最少三四个小时,并且看起来还很不不乱,不时会主动强迫加入,并且加入今后大概会呈现一些成绩招致没法持续。这个成绩对照严峻,碰到这个成绩怎样办理放到以后的部分再来讲吧。
设置Apache

最初来设置Apache。间接把文件夹下的apache2-site.conf-dist-mod_perl复制到/etc/apache/vhosts.d/10_lxrng.con,然后翻开这个文件,将内里的一切@@LXRROOT@@和@@LXRURL@@依据本人的情形交换为响应的路径就能够了。然后从头启动Apache
  1. 1
复制代码
  1. 129
复制代码
成绩办理

因为本来的版本在我这里基础上没甚么但愿能天生停止,以是我对这个程序做了一些修正,这个修正后的版本能够间接在我的GitHub下面找到:upsuper/lxrng。假如必要的话,能够不利用本来官方的代码而间接利用我修正过的代码。次要的不同有几点:一是打消了天生交织援用时过大批的输入信息;二是增添了交织援用天生时刷写Xapian索引的频次,以削减加入重做时大概呈现的毛病;三是修改了一些最初扫瞄时大概碰到的成绩。
固然天生的时分仍是大概会堕落,这我也没举措。假如天生时被不测中止,从头实行又呈现毛病,能够将我修正的谁人程序内里的lxr-genref第336行
  1. =dev-libs/xapian-1.2.7-r1~amd64=dev-libs/xapian-bindings-1.2.7-r2~amd640
复制代码
  1. =dev-libs/xapian-1.2.7-r1~amd64=dev-libs/xapian-bindings-1.2.7-r2~amd641
复制代码
的正文符往失落,从头运转lxr-genref,然后检察当程序报错时中断的谁人编号,好比12345。然后实行psqllxrng进进lxrng数据库,实行
  1. 1
复制代码
  1. =dev-libs/xapian-1.2.7-r1~amd64=dev-libs/xapian-bindings-1.2.7-r2~amd643
复制代码
然后再次实行lxr-genref。这个历程大概重复一两次,直到不会报错地位。
假如用原始版本的话,最初在扫瞄的时分利用搜刮,有大概会呈现500毛病和没法显现出来的情形,假如呈现,能够参考我做的修正。
跋文

设置这个LXR真是折腾逝世我了,费了好年夜工夫,最初也总算是乐成了。
别的真是好久好久没有在这里写工具了。也正由于这个历程其实太贫苦了,以是来写一写,权当一个纪录。不外如今有GitHub这类工具,却是好很多了。
参考文档