ot Boyan Kehayov(28-02-2007)

reiting (25)   [ dobre ]  [ zle ]

Printer Friendly Variant za otpechatvane

Kakvo e tova LXR?
Tova e programa (nabor ot skriptove) napisana na Perl za pokazvane na sorsove prez ueb.
Ima vuzmozhnosti za tursene na funktsii, failove i proizvolen tekst. Vsichko rezultati se
pokazva kato linkove i sled tova mozhe da gi razgledate v lyubimiia si brauzur.
Mozhe da slozhite proizvolen broi programi i tehnite versii.

Izpolzva se stabilnata versiia na lxr-0.3.1, koiato mozhe da svalite ot tuk:
http://sourceforge.net/projects/lxr

Svaliame si sorsa i po traditsiia go slagame v /usr/src/lxr-0.3.1.tar.gz.

Za da proraboti LXR se nuzhdaem oshte ot:

- Perl versiia 5 ili po-nova.
- Ueb survur s cgi-script poddruzhda.

i kato dopulnenie, za da imame tursene na proizvolen tekst:

- Glimpse ot http://glimpse.cs.arizona.edu, koeto e bezplatno za ne komersialna upotreba.

Zabelezhka: V novata versiia se izpolzva GPL programa za proizvolnoto tursene.

Razarhivirame i vlizame s direktoriiata sus sorsa:

# tar -xzvf lxr-0.3.1.tar.gz
# cd lxr-0.3

Kakto pishe v INSTALL faila, triabva da redaktirame Makefile kato promenim slednite 2 reda
ot nego

# Makefile for installation and configuration of LXR

# The location of your perl5 binary
# Put do purl interpretatora, koito si e tam v povecheto distributsii
PERLBIN=/usr/bin/perl  
# LXR will be installed here
# Miasto, kudeto iskame da instalirame LXR
# V nashiia sluchai tova e /var/www/lxr
INSTALLPREFIX=/var/www/lxr

Sled tova instalirame programata.

# make install

Otivame v direktoriiata, koiato sme zadali i Makefile.

# cd /var/www/lxr
# ls
bin  http  source
#

V bin e skriptut za indeksirane.
V http sa skriptovete i konfiguratsionnite failove, a source e papkata, koiato
se izpolzva za dannite ot indeksiraneto i sorsovete (ako iskate da gi slozhite tam).

Triabva da se napravi fail, koito ukazva Apache da izpulniava skriptovete,
a ne da gi pokazva kato tekst.

#cd http
#touch .htaccess

Redaktirame faila s lyubimiia tekstov redaktor i zapisvame vutre:

<Files ~ (search|source|ident|diff|find)$>
SetHandler cgi-script
</Files>

Za moite nuzhdi az sum razarhiviral sorsovere na dve versii na virtualizatora xen v

/home/user1/xen_3.0.x/xen-3.0.3_0-src  i  /home/user1/xen_3.0.x/xen-3.0.4_1-src

Suzdavam dva faila i dve direktorii v /var/www/lxr/source

# cd ../source
# touch versions
# touch defversion
# mkdir xen-3.0.3_0-src
# mkdir xen-3.0.4_1-src

Vuv versions zapisvame vsichki versii ili programi, koito iskame da indeksirame.
Vsiaka e na otdelen red.
Eto moite:

# cat versions
xen-3.0.3_0-src
xen-3.0.4_1-src

Vuv defversion zapisvame versiiata, koiato iskame da se pokazva po podrazbirane
pri izvikvane na LXR.

# cat defversion
xen-3.0.3_0-src

Zabelezhka: Ako imate podchertavashto tire v imenata na direktoriite ili drugi simvoli
razlichni ot [a-z],[A-Z],[0-9] "." "-" triabva da napravite
malka promiana v edin ot skriptovete na programata:

# cd ../http/lib/LXR/
# vim Config.pm    

Namirate chastta:

sub varexpand {
   my ($self, $exp) = @_;
   $exp =~ s{${?(w+)}?}{
      $self->{variable}->{$1} =~ /^([a-zA-Z0-9.-_]*)$/ ? $1 : ''
      }ge;
   return($exp);
}

i promeniate [a-zA-Z0-9.-] na [a-zA-Z0-9.-_], za da se dobavi podchertavashtoto tire.
Mozhe da dobavite i drugi simvoli, koito izpolzvate pri imenuvaneto na vashite programi
ako gi niama v opisanite po gore po analogichen nachin.

Direktoriite izpolzvam, za da suhraniavam v tiah indeksnte failove, suzdadeni ot
/var/www/lxr/bin/genxref  skriptut i tezi ot glimpseindex programata.
Ako sa v obshtata direktoriia se poluchava prepokrivane ot razlichnite indeksiraniia i
ostava validen samo posledno indeksiraniiat sors.

Sledvashtata stupka e da redaktirame konfiguratsionniia fail lxr.conf

Eto kak izglezhda moiat:

# cat /var/www/lxr/http/lxr.conf
# Configuration file.

# Define typed variable "v", read valueset from file.

# v se chete ot faila versions, koito suzdadohme v direktoriiata source,
# i priema stoinostite za razlichnite versii
# defversion e fail, otnovo suzdaden ot nas v direktoriiata source i sudurzha versiiata,
# koiato da se pokazva pri purvoto izvikvane na programata.
# Mozhe da se vidi na http://lxr.linux.no/source/ , che versiiata po podrazbirane e 2.6.17.13
variable: v, Version, [/var/www/lxr/source/versions], [/var/www/lxr/source/defversion]

# Define typed variable "a".  First value is default.
variable: a, Architecture, (i386, alpha, m68k, mips, ppc, sparc, sparc64)

# Define the base url for the LXR files.
# Tuk triabva da zadadem putia do papkata http sled glavnata papka na Apache
# V www (DocumentRoot na Apacha)nie imame /lxr/http i redaktirame
baseurl: http://81.161.245.2/lxr/http/

# These are the templates for the HTML heading, directory listing and
# footer, respectively.
htmlhead: /var/www/lxr/http/template-head
htmltail: /var/www/lxr/http/template-tail
htmldir:  /var/www/lxr/http/template-dir

# The source is here.
# Tova e papkata sus sorsovete. Mozhe da si zadadem koiato i da,
# no da imame prava za chetene i vlizane v papkite t.e x-r  
# Promenlivata $v priema stoinostite opisani v versions faila
sourceroot: /home/user1/xen_3.0.x/$v/
# Zadavame proizvolno ime
srcrootname: xensource

# "#include <foo.h>" is mapped to this directory (in the LXR source
# tree)
# put do osnovnite biblioteki
incprefix: /usr/include

# The database files go here.
# Direktoriiata za indeksnite failove.
#Promenlivata $v priema stoinostite opisani v versions faila
# i taka za vsiaka versiia sa v razlichna direktoriia.
dbdir: /var/www/lxr/source/$v/

# Glimpse can be found here.
glimpsebin: /usr/local/bin/glimpse

# The power of regexps.  This is pretty Linux-specific, but quite
# useful.  Tinker with it and see what it does.  (How's that for
# documentation?)
map: /include/asm[^/]*/ /include/asm-$a/
map: /arch/[^/]+/ /arch/$a/

Sledvashtata stupka e da indeksirame sorsovete.
Tova stava chrez izpolzvane na skripra v /var/www/lxr/bin/genxref i
glimpseindex.

# cd /var/www/lxr/source/xen-3.0.3_0-src
# /var/www/lxr/bin/genxref /home/user1/xen_3.0.x/xen-3.0.3_0-src/

Tuk vremeto za chakane e pravo proportsionalno na goleminata na sorsa
i obratno proportsionalno na izchislitelnata mosht, s koiato razpolagate :)

# glimpseindex -H . /home/user1/xen_3.0.x/xen-3.0.3_0-src/
# cd ../xen-3.0.4_1-src
# /var/www/lxr/bin/genxref /home/user1/xen_3.0.x/xen-3.0.4_1-src/
# glimpseindex -H . /home/user1/xen_3.0.x/xen-3.0.4_1-src/

Zabelezhka: Pri izvikvaneto na genxref izpolzvaite pulniia (absolyutniia) put,
a ne ../../bin/genxref. Ako napravite vtoroto pri opit da tursite neshto shte
poluchite suobshtenie ot vida:

"Can't find xref file in .../source/xen-3.0.3_0-src///xref",

koeto pri provedenite opiti ne se sluchva pri purviia nachin na vikane na
genxref. Qvno niakude se izpolzva PWD ili podobna komanda na Perl, i rezultatut
e razlichen pri vikane ot razlichni direktorii. Tova mogat da kazhat horata, koito
znaiat Perl.

Poslednoto neshto, koeto triabva da napravite e da dadete prava na Apache vurhu
suzdadenite direktorii i faillove:

# cd /var/www/
# chown -R www-data:www-data lxr/

Sled tova ostava da otvorite lyubimiia si brauzur i da napishete:

http://localhost/lxr/http

Uspeh !

Izpolzvani dokumenti:
1. http://mia.ece.uic.edu/~papers/WWW/lxr....
2. http://lxr.linux.no/New-INSTALL




<< Prevod na Potrebitelsko rukovodstvo za Wine | Delegirane na access politiki v Postfix >>