BLOG main image
전체 (70)
글-음악 (12)
리눅스 (51)
기타 (1)
그림-사진 (6)
125369 Visitors up to today!
Today 3 hit, Yesterday 8 hit
daisy rss
tistory 티스토리 가입하기!
2008/09/13 08:11

4번째 컴파일을 해보자 4 (네이트온 : knateon) 입니다.

네이트온은 KDE(QT) 기반 프로그램입니다.
인트레피드 8.10부터는 저장소에 포함되어 apt-get으로 설치가 가능 할 것입니다.

knateon 설치와 컴파일은 컴파일에 필요한 의존 라이브러리만 설치 된다면
우분투에서 컴파일이 그리 어렵지는 않습니다.

우선 네이트온 프로젝트 홈피는 http://kldp.net/projects/nateon 이며
다운로드는 http://kldp.net/frs/?group_id=1143 인데 source 는 nateon-1.0-20080814 (리비전 183) 을 받으셔도 되지만
svn 을 이용하면 더욱 쉽고 편하게 최신 상태로 받을 수가 있습니다.
참고 : http://kldp.net/scm/?group_id=1143

subversion 설치 와 소스 다운
$ sudo apt-get install subversion
$ svn checkout   svn://kldp.net/svnroot/nateon  (소스를 프로젝트 저장소에서 직접 다운로드)

다운 끝에 체크아웃된 리비전 186이라고 나오는 군요
이 경우 네이트온 소스는 3가지가 종류로 다운 됩니다. $ cd nateon && ls
* trunk : 계속해서 수정 중인 최신 소스가 있는 곳
* tags : 외부로 릴리즈 된 안정 버전들이 존재하는 곳
* branches : "bug fix"용 버전, "테스트용 코드" 혹은 "기능추가 코드"들이 있는 곳
.
머 대충 위와 같이 볼 수 있는데 우리는 무엇을 컴파일 해야 할까요?
tags 겠죠?
아래 지우고 디렉토리이름 바꾸는 건 '그놈노틸러스'에서 해도 됩니다.
$ rm -rf branches trunk
$ mv tags/1.0.175 nateon-1.0-186 (tag/1.0.175디렉을 nateon-1.0-186 으로 변경 했습니다.)
위와같이 nateon-1.0-186 로 디렉을 만들면 앞에는 프로그램네임 다음 숫자는 버전 그다음 숫자는 리비전 을 나타내며
dh_make 가 인식하여 파일 생성이 됩니다.

$ rm -rf tags
$ cd nateon-1.0-186

dh_make
$ dh_make -e  bundo@bundo.biz (이제 gpg키도 만들었으니 자신의 이메일로 해보십시요)
s (singie) 선택 그리고 엔터
어떤 메세지가 나오나요?
Could not find nateon-1.0_186.orig.tar.gz
Either specify an alternate file to use with -f,
or add --createorig to create one.
네 그냥은 안되고 옵션을 더 주라고 하는 군요
-f 는 소스 압축 파일이 있어야 하니
-- --createorig 인 -r 을 주고 하겠습니다.
$ dh_make -e bundo@bundo.biz -r
네 잘 만들어 지는 군요 위와 같이 -r (--createorig) 옵션을 주면 nateon-1.0-186.orig 디렉이 만들어 지며
본 디렉에는 debian과 파일들이 생성 됩니다.

리드미 파일과 인스텔파일 ( README & INSTALL)

프로그램 설치와 컴파일 시엔 리드미파일과 인스텔 파일을 읽어 보시기 바랍니다.
$ gedit README (흠 그렇군)
제가 README 를 다칠까요? 여러분은 이글 보고 복사해서 명령어 라인에 붙여도 되지만 전 그냥 bash 쉘의 자동완성기능을 이용 합니다.
gedit 치고 R치고 탭키로 ^^ 한번 해보세요. 위에 명령들도 마찬가지랍니다. 잘 모르시는 분들은 연습해보세요!
$ gedit INSTALL
요구사항을 보면
* 요구사항 (kubuntu 기준)
- cmake
- kdelibs4-dev (3.5.7-0ubuntu1)
- libsqlite3-dev (3.3.13-0ubuntu)
- xorg-dev (7.2-0ubuntu11)
- libarts1-dev (1.5.7-0ubuntu1)
- libartsc0 (1.5.7-0ubuntu1)
- libartsc0-dev (1.5.7-0ubuntu1)
- kdebase

와 같이 나오는데 이게 컴파일시 의존 패키지입니다.
$ fakeroot debian/rules binary 해보십시오. 컴파일 의존 패키지로 때문에 컴파일이 멈출 것입니다.
의존 패키지 설치 $ sudo apt-get install cmake kdelibs4-dev libsqlite3-dev xorg-dev libarts1-dev libartsc0 libartsc0-dev kdebase
위와 같이 한 줄로 의존패키지를 써주면 동시에 전부 설치 안 된 것들은 몽땅 설치가 됩니다.

이런 후에 fakeroot debian/rules binary 하여 패키지 만들고 설치하면 본인은 잘 쓸수 있습니다.
그러나 다른이에게 주면 다른 이는 설치 해도 실행이 안됩니다.
이유는 뭘까요? 네 설치 시에 의존 패키지가 설치되지 않기 때문입니다.

/debian 에 control 파일의 편집
$ gedit debian/control
Section: unknown 을 Section: net 로
Build-Depends: debhelper (>= 5) 를
Build-Depends: debhelper (>= 5), cmake, kdelibs4-dev, libsqlite3-dev, xorg-dev, libarts1-dev, libartsc0, libartsc0-dev 와 같이 변경한 후
INSTALL 문서에 근거하여 버전을 넣어 보겠습니다.
kdelibs4-dev (3.5.7-0ubuntu1) 이라고 했으니  kdelibs4-dev (>=3.5.7), 이렇게 변경합니다. 3.5.7 과 같거나 그 이상 이라고 적은 것입니다.
그렇게 해서
Build-Depends: debhelper (>= 5), cmake, kdelibs4-dev  (>=3.5.7), libsqlite3-dev (>=3.3.13), xorg-dev (>=7.2), libarts1-dev (>=1.5.7), libartsc0 (>=1.5.7), libartsc0-dev (>=1.5.7)
가 되는 군요 흐 길다... 사실 다 적을 필요는 없는데 Build-Depend가 이런 거다 하고 알리려고요 ^^

위와 같이 Build-Depends를 명시 해주면
Depends: ${shlibs:Depends}, ${misc:Depends} 이 줄이 위 컴파일 의존 라이브러리를 참고 하여 INFO 파일을 만들고
패키지 설치시에 의존 파일들이 같이 설치됩니다.
INFO 파일 내용 스샷 (만들어진 DEB 파일을 MC 로 엔터 쳐서 그 안에 INFO 파일을 F4로 열기 한 상태의 일부분 입니다.)
[##_1C|ik8.png|width="600" height="94" alt="사용자 삽입 이미지"|_##]

컴파일
$ fakeroot debian/rules binary 로 컴파일 해보십시오
어때요 컴파일되나요?
"make[1]: *** 타겟이 지정되지 않았고 메이크파일이 없습니다. 멈춤." 이라고 나오죠?
왜 그럴까요?
다시 INSTALL 문서를 볼까요! 문서 중간 컴파일에 보면
$ cmake -DCMAKE_INSTALL_PREFIX=[설치할 디렉토리] 있군요
타겟으르 지정해야 쏘는 모양입니다.
그럼 음
$ cmake -DCMAKE_INSTALL_PREFIX=/usr 로 하고 명령어 내려 보세요 그런 후 다시 fakeroot 를 ....
잘되죠 ^^

설치
$ cd .. && sudo dpkg -i nate*.deb
따끈따끈한 네이트온이 설치되겠군요!

이번 글에 중요한 건
    1. svn 에서 소스 다운 법
    2. dh_make 옵션
    3. control 파일에서 의존 패키지 편집 입니다.

추가 참고 링크 : http://www.debian.org/doc/manuals/maint ... #s-control
진보블로그 공감 버튼트위터로 리트윗하기페이스북에 공유하기딜리셔스에 북마크
2008/09/13 08:11 2008/09/13 08:11
Trackback Address :: http://blog.jinbo.net/bundo/trackback/87
조디악 | 2008/09/30 11:40 | PERMALINK | EDIT/DEL | REPLY
cmake -DCMAKE_INSTALL_PREFIX=/usr 시에 이런 오류를 내뿜는 군요~ ㅠ.ㅠ
-- Didn't find KDE3 headers
-- Didn't find KDE3 core library
-- Didn't find the KDE3 dcopidl preprocessor
-- Didn't find the KDE3 dcopidl2cpp preprocessor
-- Didn't find the KDE3 kconfig_compiler preprocessor
CMake Error: Could NOT find everything required for compiling KDE 3 programs
-- Configuring done

그래서 당연히 fakeroot 도 안됩니다. 현재 188리비전으로 작업 중.
Name
Password
Homepage
Secret
prev"" #1 #2 #3 #4 #5 #6 #7 ... #70 next