ibus hangul 어떻게 컴파일하나요?
글쓴이: 세벌 / 작성시간: 토, 2020/05/02 - 5:41오전
https://github.com/libhangul/ibus-hangul 내려받았는데, 컴파일 하는 방법을 모르겠네요.
./autogen.sh
실행했더니...
*** WARNING: I am going to run 'configure' with no arguments. *** If you wish to pass any to it, please specify them on the *** './autogen.sh' command line. autoreconf: Entering directory `.' autoreconf: running: autopoint --force autoreconf: running: aclocal --force -I m4 autoreconf: configure.ac: tracing autoreconf: running: libtoolize --copy --force autoreconf: running: /usr/bin/autoconf --force autoreconf: running: /usr/bin/autoheader --force autoreconf: running: automake --add-missing --copy --force-missing configure.ac:34: installing './compile' configure.ac:33: installing './missing' src/Makefile.am: installing './depcomp' tests/Makefile.am:45: warning: addsuffix .test, $(test_execs: non-POSIX variable name tests/Makefile.am:45: (probably a GNU make extension) autoreconf: Leaving directory `.' configure: error: Package requirements ( ibus-1.0 >= 1.5.4 ) were not met: No package 'ibus-1.0' found Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix. Alternatively, you may set the environment variables IBUS_CFLAGS and IBUS_LIBS to avoid the need to call pkg-config. See the pkg-config man page for more details.
Forums:
"아래 글 참고해서 다시 질문 하시면 여러 전문가가
"아래 글 참고해서 다시 질문 하시면 여러 전문가가 도와드릴 거 같네요.
http://oops.org/?t=lecture&sb=beginner&n=2"
핵심은 마지막 몇 줄에 있습니다. ibus 개발 패키지는 설치하셨나요?
libibus-1.0-dev 패키지 설치하세요
libibus-1.0-dev 패키지 설치하세요
No package 'libhangul' found
고맙습니다. 그런데 libibus-1.0-dev 설치 후 시도했더니...
아래 에러 메시지 나오네요.
libhangul 설치하면 되나 하고 시도했는데 다른 에러 나네요.
이번엔 어떻게 하면 되나요?
세벌 https://sebuls.blogspot.kr/
apt-cache search libhangul
apt-cache search libhangul 명령어로 설치할 패키지 이름을 검색해보세요.
Warning은 무시해도 될까요?
덕분에 libhangul-dev 설치했습니다. 고맙습니다.
그 다음에 ./autogen.sh 했더니 아래와 같이 경고가 좀 나오는데, 이건 무시해도 되나요?
세벌 https://sebuls.blogspot.kr/
GNU make 사용하시면 무시하시면 됩니다.
GNU make 사용하시면 무시하시면 됩니다.
./configure 에서 에러... expat
./configure 할 때 아래와 같은 에러가 납니다.
세벌 https://sebuls.blogspot.kr/
여기서 요구하는 https://github.com
여기서 요구하는 https://github.com/libhangul/ibus-hangul/blob/master/configure.ac 걸 보면 expat 는 없네요.
https://packages.debian.org/search?suite=bullseye&searchon=names&keywords=expat%20dev
이렇게 일일이 검색해야 되요.
https://packages.debian.org/bullseye/amd64/libexpat1-dev/filelist 보면
/usr/lib/x86_64-linux-gnu/pkgconfig/expat.pc 이 파일이 있습니다.
그게 설치되어 있어야 하고 그런 파일들은 packname-dev 패키지에 있습니다.
저걸 일일이 검색해서 확인하셔야 되는 겁니다.
PKG_CHECK_MODULES 이
pkg-config --cflags expat
pkg-config --libs expat
를 실행시키는데, expat.pc 파일이 없어서 에러나는 겁니다.
아마 debian 계열의 배포판에서 시도하고 계실텐데,
마찬가지로 아치 계열에서 시도하신다면,
https://www.archlinux.org/packages/ 에서 일일이 검색해서
https://www.archlinux.org/packages/core/x86_64/expat/
usr/lib/pkgconfig/expat.pc 이 있는걸 확인해야 하는 거죠.
그리고 데비안에서 ibus-hangul 을 컴파일하여
그리고 데비안에서 ibus-hangul 을 컴파일하여 사용/테스트하시길 원한다면
make, make install 방식으로 하지 마시길 바래요.
ibus 랑 뭔가가 매치되어야 실행할 때 에러 안 날 거 같네요.
아, 그리고 glib-compile-schemas 이런 명령도 해줘야할 것을 짐작되고,
데비안/우분투 계열은 libdir 설치 디렉토리를 이상하게 바꿔 놓아서 아마 골탕먹을 겁니다.
dpkg-architecture -qDEB_TARGET_MULTIARCH 에 대한 지식이 없으시면,
위에 이런거 할 줄 모르시면,
아래 ibus-hangul_1.5.1-1.debian.tar.xz 을 압축 풀어서 데비안 방식으로 컴파일/인스톨하는 게 좋습니다.
https://packages.debian.org/buster/ibus-hangul 보시면
http://deb.debian.org/debian/pool/main/i/ibus-hangul/ibus-hangul_1.5.1-1.debian.tar.xz
이걸 이용해서 deb 파일을 만들어서 설치하시는게 좋죠.
그리고,override_dh_auto
그리고,
이 코드는 제가 제작한 사유 소프트웨어에 있는 부분입니다. 다른 사람이 저 코드를 사용하는 건 괜찮은데, 자기네들이 작업한 걸 저더러 가로챘다고 주장하는 일은 재발해서는 안 될 것입니다.
괜히 올렸네. 자유/오픈소스 이쪽 세계 사람들 도와주면 나중에 뒤통수 치는데.
http://deb.debian.org/debian
http://deb.debian.org/debian/pool/main/i/ibus-hangul/ibus-hangul_1.5.3-2.debian.tar.xz
이거 압출 풀면 debian 디렉토리 나오는데,
cp -r debian ibus-hangul
명령 후,
sudo apt install devscripts build-essential debhelper
cd ibus-hangul
dpkg-checkbuilddeps
후, 없다는 패키지 설치해주시고,
configure: error: Package requirements (expat) were not met:
No package 'expat' found
이렇게 에러 나오면 expat.pc 파일이 없어서 그렇습니다.
*.pc 파일은 pkg-config 가 사용하는 파일이고 package-name-dev 패키지에 있습니다.
위에 말씀대로 packages.debian.org 에서 검색하셔서 해당 패키지 설치 후에,
debuild -b -uc -us 명령해주시면 됩니다.
http://deb.debian.org/debian/pool/main/i/ibus-hangul/ibus-hangul_1.5.3-2.debian.tar.xz
압출 풀면,
이런 파일들이 있고, debian/patches/ 에 패치 파일을이 있습니다.
데비안 방식으로 컴파일하면 위 패치들이 적용됩니다. 패치 적용을 원치 않으면 debian/patches/ 을 삭제하시면 됩니다.
debian/patches/series 파일에는 적용될 패치가 순서대로 들어 있습니다.
만약 세벌님이 패치를 만드시면, debian/patches/ 에 name.patch 파일을 넣고,
series 에 그 파일 이름을 넣으시면 됩니다.
패치 만드는 거는,
소스코드 수정 후에 git diff > name.patch 하면 diff 형식의 패치 파일이 만들어집니다.
주의할 점은, debian/* 파일들을 git 에 넣은후(add) diff 하면 debian/* 파일들도 name.patch 되어서 패치 적용에 문제가 발생하겠죠.
처음할 때는 일주일씩 걸리기도 하는데, 나중에 반복되다보면 노하우가 쌓여서 개발외 무관한 소스코드 관리 부분은 분 단위로 끝나게 됩니다.
건투를 빕니다~~~~~~~~~~~~~~~~~~
그리고 아래 debian/rules (makefile) 코드는 제가 작성한 코드이고, 나중에 이러쿵 저러쿵 문제되는게 싫어서 퍼블릭 도메인 선언합니다. 아래 debian/rules 코드는 저작권이 없습니다.
ibus-hangul 에 적용되는 코드는 아니며, autotools, automake 를 사용하지 않는 경우, dpkg-architecture -qDEB_TARGET_MULTIARCH 을 어떻게 써먹는지 교육용으로 보시라고 올립니다.
아래 코드(debian/rules)는 제가 저작권을 포기하여 저작권이 없습니다.
고맙습니다.
고맙습니다.
세벌 https://sebuls.blogspot.kr/
libhangul-dev 설치하세얘
libhangul-dev 설치하세얘
https://lists.debian.org
https://lists.debian.org/debian-l10n-korean/2020/03/msg00010.html
결국 자진 철회하셨지만 데비안 컨설턴트를 해 보겠다고 목록에까지 추가하는 소동이 있었는데 이 정도도 모르실 줄은 몰랐군요 :(
로그인 후 글 써 주세요.
여러 분의 익명사용자께서 도움 주시니 헷갈리네요.
어느 분께 고맙다고 해야할지...
세벌 https://sebuls.blogspot.kr/
세벌님같은 컨설턴트&코디네이터&커뮤니티관리자가
세벌님같은 컨설턴트&코디네이터&커뮤니티관리자가 아니라서 소심하게 익명으로만 남기고 갑니다.