Skip to content

설치 위치에 관하여

krikit edited this page Jun 24, 2021 · 3 revisions

빌드 위치

khaiii 소스 코드를 내려받은 위치를 편의상 /home/user/khaiii라고 가정하면 아래와 같이 빌드를 수행할 것입니다.

mkdir build
cd build
cmake ..
make -j
make resource

이렇게 하면 /home/user/khaiii/build 아래에는 다음과 같은 파일이 생성됩니다.

  • bin/khaiii --> 실행 프로그램
  • lib/libkhaiii.so --> 라이브러리
  • share/khaiii --> 리소스

그러면 bin/khaiii 프로그램을 이용해 다음과 같이 실행할 수 있습니다.

./bin/khaiii --rsc-dir=./share/khaiii

여기까지 성공적으로 진행되었다면 일단 실행 프로그램을 설치하기위한 준비는 다 되었습니다.

빌드 및 설치에 관한 자세한 사항은 빌드 및 설치 문서를 참고하시기 바랍니다.

프로그램 및 라이브러리 설치

/home/user/khaiii/build 디렉터리에서 make install 명령을 통해 설치할 수 있습니다.

그러면 /usr/local 디렉터리 아래에 다음 파일들을 설치합니다.

  • bin/khaiii
  • include/khaiii --> API 헤더
  • lib/libkhaiii.so
  • share/khaiii

/usr/local 디렉터리는 일반적으로 root 권한이 필요하므로 다음과 같이 sudo 명령을 이용해야 합니다.

sudo make install

여기까지 성공적으로 설치하였다면 이제 어느 디렉터리에서도 khaiii 명령을 실행할 수 있습니다. --rsc-dir 옵션을 지정하지 않으면 default 값이 바로 /usr/local/share/khaiii입니다.

그리고 C/C++ 소스 코드에서 다음과 같이 헤더를 include 하실 수 있으며,

// my_src_using_khaiii.c

#include <khaiii_api.h>

int handle = khaiii_open("/usr/local/share/khaiii", "");
// 첫번째 argument를 ""로 주면 default 값으로 "/usr/local/share/khaiii"를 사용합니다.

라이브러리를 링크 하실 수 있습니다.

gcc my_src_using_khaiii.c -lkhaiii

그러나 아직은 Python 프로그램에서 모듈을 불러올 수 없습니다.

설치 제거

서치한 파일들을 제거하시려면 번거롭지만 아래와 같이 수작업으로 삭제해야 합니다.

cd /usr/local
rm bin/khaiii
rm -r include/khaiii
rm lib/libkhaiii*
rm -r share/khaiii

Python 모듈 설치

Python 모듈은 프로그램 및 라이브러리의 설치 위치와 완전히 별개입니다. 즉, 프로그램 및 라이브러리를 설치하지 않아도 Python 모듈은 설치할 수 있습니다.

/home/user/khaiii/build 디렉터리에서 아래와 같이 설치를 수행할 것입니다.

make package_python
cd package_python
pip3 install .

설치가 성공했다면 아래 명령을 통해 확인할 수 있습니다.

$ pip3 freeze | grep khaiii
> khaiii-0.4

그러면 각자의 Python3 실행 환경의 site-packages 디렉터리 아래에 khaiii라는 디렉터리가 생기고 다음과 같은 파일이 생성됩니다.

  • khaiii.py --> Python 모듈
  • lib/libkhaiii.so --> 라이브러리
  • share/khaiii --> 리소스

여기까지 성공했다면 /home/user/khaiii/build/package_python 디렉터리를 벗어나서 아래와 같이 Python 코드에서 khaiii 모듈을 사용하실 수 있습니다.

from khaiii import KhaiiiApi

api = KhaiiiApi('/path/to/site-packages/khaiii/lib/libkhaiii.so', '/path/to/site-packages/khaiii/share/khaiii')
# 첫번째 argument를 ""로 주면 default 값으로 site-packages 아래에 설치된 라이브러리 libkhaiii.so의 경로를 자동으로 찾습니다.
# 두번째 argument를 ""로 주면 default 값으로 site-packages 아래에 설치된 리소스 share/khaiii의 경로를 자동으로 찾습니다.

/home/user/khaiii/build/package_python 디렉터리에서는 오류가 나는데, 그 이유는 설치를 위해 필요한 파일인 /home/user/khaiii/build/package_python/khaiii/khaiii.py이 설치된 site-packages 아래의 khaiii.py보다 우선하여 import 되어 라이브러리 및 리소스 경로를 찾지 못하기 때문입니다.

설치된 Python 모듈을 제거하려면 다음 명령을 이용하면 됩니다.

pip3 uninstall kaiiii

site-packages 위치

  • 2019년 7월 15일 현재까지 대부분의 리눅스 및 맥 시스템의 기본 Python은 2.x 버전입니다. 따라서 site-packages 디렉터리는 /usr 디렉터리에서 다음 명령으로 찾을 수 있는데요,
$ cd /usr
$ find . -name site-packages
> ./lib/python2.7/site-packages
> ./lib64/python2.7/site-packages

khaiii는 Python 3 이상의 버전에서 설치되고 동작하므로 이 디렉터리들과는 상관이 없습니다. 만약 Python 3 소스코드를 받아서 PREFIX 값을 default인 /usr/local로 지정하여 설치하셨다면, /usr/local/lib/python3.5/site-packages와 같은 디렉터리를 살펴보시기 바랍니다.

앞서 make install 명령과 마찬가지로 /usr/local과 같은 디렉터리에 설치하려면 root 권한이 필요하므로 다음과 같이 sudo 명령으로 설치해야 합니다.

sudo pip3 install .