본문 바로가기

System/Linux

Linux/Kernel-analysis/LXR 개발환경 구축하기

반응형
1.펄 설치
- 버전확인
  • perl -v

2.exuberant ctags 설치
- 버전확인
  • ctags --version
- 설치 
  • sudo apt-get install exuberant-ctags

3.데이터베이스 설치
- mysql 설치
- 마리아DB 서버 설치
  • sudo apt-get install mariadb-server
- mysql 기본 보안설정 명령
  • mysql_secure_installation

4.DB 설정
- su 로 루트전환 후 mysql 루트 로그인 (우분투)
  • su
  • mysql -u root -p

- DB생성, 일반 사용자 생성, 권한 부여, 권한 적용
  • create database [이름];
  • create user '[이름]'@'[localhost 또는 호스트명]' identified by '[비밀번호]';
  • grant privileges on [DB이름].* to [이름]@[호스트명];
  • flush privileges;

5.웹서버 설치
- 설치
  • sudo apt-get install apache2
- mod_perl 설치
  • sudo apt-get install libapache2-mod-perl2

6.문자열 검색기능을 위한 glimpse 설치
- tar -xzf glimpse-latest.tar.gz
- make 실행
  • cd glimpse-4.18.6
  • ./configure
  • ./make
    • 의존성 문제 해결 ex) fle
  • ./make install
    • 설치가 완료되면  /usr/local/bin에 파일 생성됨

7.Perl DBI 및 File:MMagic 모듈 설치
- DBI >> 데이터베이스를 위한 인터페이스 제공
- File::MMagic >> Perl에서 파일의 타입을 찾기위한 라이브러리
- 설치
  • sudo apt-get install libdbd-mysql-perl libfile-mmagic-perl

8.lxr 설치
- lxr 압축 파일 다운로드
- lxr 루트 디렉토리 생성
  • 위치는 상관없음. 
  • mkdir ~/lxr
- lxr 파일 옮김
  • mv [압축푼 디렉토리].* ~/lxr
- 모듈 의존성과 라이브러리 요구사항 체크
  • cd ~/lxr
  • ./genxref --checkonly
    [아래 스크린샷과 맞는지 확인]
- lxr 설정 스크립트 동작
- 설정 값 넣어야하는것
  • LXR server: lxr
  • Directory for glimpse databases: ~/lxr/glimpse
  • Source directory: ~/lxr/lxr_src/[소스dir이름]
  • Database name: lxr_project
  • DB user name: lxr
  • DB password: lxrpw
  • DB table prefix: lxr_
> 주의사항 (아주 중요)
스크립트로 설정파일 생성시 소스경로와 버전명 디렉토리가 중요하다. 버전을 맞추지않아서 열댓번 넘게 스크립트를 돌렸고 결과적으로 /genxref가 인식하는 소스경로는 [소스경로]/[버전]이므로 예를들면 /home/hyeonbell/lxr/lxr_src/kernel/2.4.16 이렇게 인식한다는것이다. glimpse 경로도 마찬가지로 [glimpse경로]/[DB이름]/[버전]으로 인식한다.  이를 주의하면 설정하는데 다른문제는 없을 것같다.

ex) 소스경로 : /home/hyeonbell/lxr/lxr_src/kernel
glimpse 경로 : /home/hyeonbell/glimpse
DB 명 : lxr
버전명 : 2.4.16
실제적으로 /genxref 파일이 인식하는 경로
  • 소스경로 : /home/hyeonbell/lxr/lxr_src/kernel/2.4.16/[이부분에 소스가 존재해야함]
  • glimpse 경로 : /home/hyeonbell/lxr/glimpse/lxr/2.4.16/[이부분에 glimpse DB가 생성됨]
    • 주의할것은 glimpse는 자동적으로 버전 디렉토리가 생성 되지 않아 mkdir을 통해서 버전디렉토리를 만들어 주어야 한다.
    • mkdir ~/lxr/glimpse/lxr/2.4.16

- DB 초기화 (설정)
  • ./custom.d/initdb.sh
- 생성된 설정파일이동
  • mv ./custom.d/lxr.conf .
- 소스인덱싱
  • ./genxref --url=http://localhost/lxr --allversions
- httpd 설정
  • sudo cp custom.d/apache-lxrserver.conf /etc/apache2/conf-available
  • sudo a2enconf apache-lxrserver.conf
  • sudo service apache2 restart
- 확인



반응형