-
Notifications
You must be signed in to change notification settings - Fork 295
설치 위치에 관하여
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 모듈은 설치할 수 있습니다.
/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
- 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 .