소스인사이트 처럼 소스코트 브라우징을 웹 기반에서 할 수 있는 프로그램인 LXR 에 대한 설치 및 사용법에 대해 설명한다.

준비 운동하기

설치 환경은 다음과 같다.

H/W IBM Thinkpad X40
S/W Ubuntu 11.10, lxr, apache, perl, mysql

설치 시에 참고할 경로는 다음과 같다.

lxr 설치경로 /usr/local/share/lxr
소스코드 경로 /opt/linux

LXR 의 최신버전은 http://sourceforge.net/projects/lxr/ 에서 다운로드 받을 수 있다. 여기서는 0.9.10 버전을 사용한다.
참고로 이 문서에서 사용할 소스코드는 linux kernel 이다.

lxr 설치 및 설정하기

LXR 은 웹서버와 연동하여 실행되기 때문에 사전에 이를 설치해야 한다.

#apt-get install apache2 mysql-server exuberant-ctags
#apt-get install libdbi-perl libdbd-mysql-perl libfile-mmagic-perl

lxr 설치 방법은 따로 컴파일 과정없이 설치할 곳에 옮겨놓으면 된다.

#cd /usr/local/share
#mv /home/aselsan/Desktop/LXR/lxr-0.9.10.tgz .
#tar -zxf lxr-0.9.10.tgz
#mv lxr-0.9.10 lxr
#cd lxr

lxr 의 최신 버전에서 달라진 점이 있다면, DB 를 사용한다는 점이다. 몇 가지 DB 를 지원하는데, 여기서는 mysql 를 사용한다.
아래 명령을 실행하기 전에 현재 경로가 /usr/local/share/lxr 디렉토리인지 확인한다.

#mysql -u root -p

접속한 후에 lxr 에서 사용할 계정과 비밀번호를 추가한다.

mysql> use mysql
mysql> CREATE USER 'lxr'@'localhost' identified by 'foo';  // id 는 lxr, password 는 foo 로 지정
mysql> \. initdb-mysql   // lxr 에 필요한 db 와 table 생성

이제 본격적인 lxr 설정을 해보자.

cp templates/lxr.conf .

모든 설정은 lxr.conf 에서 이루어 지는데, 아래와 같이 수정한다.

...
#, 'glimpsebin'   =>'/usr/local/bin/glimpse'               // 주석처리
#, 'glimpseindex'   => '/usr/local/bin/glimpseindex'       // 주석처리
...
, 'swishbin'   => '/usr/bin/swish-e'    
...
, 'ectagsconf' => '/usr/local/share/lxr/lib/LXR/Lang/ectags.conf'
, 'genericconf' => '/usr/local/share/lxr/lib/LXR/Lang/generic.conf'
...
,'baseurl' => '
http://localhost/lxr'
...
, 'baseurl_aliases' =>
                        [ 'http://192.168.100.21/lxr']
...
, 'encoding'    => 'utf-8'
, 'sourceroot' => '/opt/linux'      // linux 디렉토리 생성할 것
...
, 'range' => [qw(v1 v2)]
...
, 'default' => 'v1'
...
,'dbpass' =>'foo'
, 'dbuser' => 'lxr'
...
, 'swishdir' => '/opt/swish/'        // swish 디렉토리를 생성할 것

소스코드 저장하기

브라우징할 소스코드를 지정된 경로에 옮길 차례다.

#tar xzf linux-1.2.1.tar.gz
#cd linux
#mkdir -p /opt/linux/v1 /opt/swish
#cp -arf * /opt/linux/v1/

위에서 v1 은 lxr.conf 파일에 수정했던, 버전 v1 을 뜻한다.
이제 소스코드를 인덱싱 해야 한다.

#cd /usr/local/share/lxr
#./genxref --url=http://localhost/lxr --allversions

소스코드의 용량에 따라 시간이 걸릴 수 있다.

웹서버 설정하기

apache 2.x 를 기준으로 설명한다. lxr 을 위한 설정 파일을 별도로 생성한다.

#touch /etc/apache2/conf.d/lxrserver.conf
#vi /etc/apache2/conf.d/lxrserver.conf

아래와 같이 작성한다.

Alias /lxr /usr/local/share/lxr
<Directory /usr/local/share/lxr>
AllowOverride All
</Directory>

CGI 실행을 위한 .htaccess 파일을 복사한다.

#cd /usr/local/share/lxr
#cp .htaccess_cgi .htaccess

그리고 웹 서버를 재시작한다.
마지막으로 perl 프로그램을 수정해주어야 한다. 해당 파일은 'diff, genxref, ident, search, source' 이다.

#!/usr/bin/perl     // #!perl -T 를 수정

실행 확인하기

웹 브라우저를 열고, http://localhost/lxr/source 로 접속해보자. 탐색창과 함께 lxr 페이지가 뜬다면 성공이다.

/usr/local/share/lxr/templates/lxr.css 파일을 수정하면 기본 폰트 및 디자인을 변경할 수 있다.

  • computer/programming/lxr_사용하기.txt
  • Last modified: 3 years ago
  • by likewind