小妖女 发表于 2015-1-18 11:29:03

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把代码下载上去,
1gitclonegit://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内里到场
12=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最初加上
12ACCEPT_KEYWORDS="amd64"PORTDIR_OVERLAY="/usr/local/portage"
(固然这个设置看已往很复杂,不外由于一入手下手疏忽了这件事变,以是纠结了很长工夫……)
接下往用g-cpan安装就能够了
12sudog-cpan-gCGI::AjaxSearch::XapiansudoemergeCGI-AjaxSearch-Xapian
至此必要安装的工具就已全体装完了,上面进进第二阶段~
设置数据库

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

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

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

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

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

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



[*]HowtosetupLXR–StepbyStepguide

乐观 发表于 2015-1-23 19:32:28

笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机

山那边是海 发表于 2015-1-24 06:02:08

你需要提供精确有效的信息。Linux这并不是要求你简单的把成吨的出错代码或者数据完全转储摘录到你的提问中。

灵魂腐蚀 发表于 2015-1-26 16:08:42

工具书对于学习者而言是相当重要的。一本错误观念的工具书却会让新手整个误入歧途。目前国内关于Linux的书籍有很多不过精品的不多。

爱飞 发表于 2015-2-4 15:50:42

学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。

分手快乐 发表于 2015-2-6 08:25:33

生成新的unispimsp.ksc。”另外得到回复后如果问题解决,向帮助过你的人发个说明,让他们知道问题是怎样解决的。

小妖女 发表于 2015-2-9 19:40:59

就这样,我们一边上OS理论课,一边上这个实验,这样挺互补的,老师讲课,一步一步地布置任务

只想知道 发表于 2015-2-27 19:14:44

随着实验课程的结束,理论课也该结束了,说实话教OS的这两位老师是我们遇到过的不错的老师(这话放这可能不太恰当).

金色的骷髅 发表于 2015-3-9 11:05:51

下面笔者在论坛看到的一个好问题: “安装红旗4.0后,系统紫光输入法自带的双拼方案和我的习惯不一样,如何自定义双拼方案解决?谢谢?”这个问题很简练。

谁可相欹 发表于 2015-3-9 21:48:37

任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。

莫相离 发表于 2015-3-17 01:26:48

笔者五分钟后就给出了解决方法: “首先备份原文件到其他目录,然后删掉/usr/local/unispim/unispimsp.ksc,编辑 /usr/local/unispim/unispimsp.ini,最后重启动计算机

若天明 发表于 2015-3-23 12:10:17

甚至目前许多应用软件都是基于它的。可是没有哪一个系统是十分完美的。
页: [1]
查看完整版本: Linux制作之安拆卸置LXR仓酷云