[list:3soqnlz6]1. [url=http://ubuntu.or.kr/viewtopic.php?f=9&t=1527:3soqnlz6][color=#4000FF:3soqnlz6]기존 패키지 컴파일 (MC)[/color:3soqnlz6][/url:3soqnlz6]
2. [url=http://ubuntu.or.kr/viewtopic.php?f=9&t=1538:3soqnlz6][color=#4000FF:3soqnlz6]다운 받은 소스 컴파일 (dh_make)[/color:3soqnlz6][/url:3soqnlz6]
3. [url=http://ubuntu.or.kr/viewtopic.php?f=9&t=1543:3soqnlz6][color=#4000FF:3soqnlz6]GPG키 (개인키)[/color:3soqnlz6][/url:3soqnlz6]
4. [url=http://ubuntu.or.kr/viewtopic.php?f=9&t=1550:3soqnlz6][color=#4000FF:3soqnlz6]다운 받은 소스 컴파일 (네이트온)[/color:3soqnlz6][/url:3soqnlz6]
5. 재미로 하는 컴파일 1 (
6. 재미로 하는 컴파일 2
7. 커널 컴파일 1
8. 커널 컴파일 2 (커널 설치 후 설정들)
9. 개인 저장소와 우분투코리아 저장소 이용하기[/list:u:3soqnlz6]
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
[color=#400080:3soqnlz6][b:3soqnlz6]subversion 설치 와 소스 다운[/b:3soqnlz6][/color:3soqnlz6]
$ 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
[color=#404080:3soqnlz6][b:3soqnlz6]dh_make[/b:3soqnlz6][/color:3soqnlz6]
$ 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과 파일들이 생성 됩니다.
[color=#404080:3soqnlz6]
[b:3soqnlz6]리드미 파일과 인스텔파일 ( README & INSTALL)[/b:3soqnlz6][/color:3soqnlz6]
프로그램 설치와 컴파일 시엔 리드미파일과 인스텔 파일을 읽어 보시기 바랍니다.
$ gedit README (흠 그렇군)
제가 README 를 다칠까요? 여러분은 이글 보고 복사해서 명령어 라인에 붙여도 되지만 전 그냥 bash 쉘의 자동완성기능을 이용 합니다.
gedit 치고 R치고 탭키로 ^^ 한번 해보세요. 위에 명령들도 마찬가지랍니다. 잘 모르시는 분들은 연습해보세요!
$ gedit INSTALL
요구사항을 보면
[code:3soqnlz6]* 요구사항 (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 [/code:3soqnlz6]
와 같이 나오는데 이게 컴파일시 의존 패키지입니다.
$ 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
[code:3soqnlz6]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가 이런 거다 하고 알리려고요 ^^[/code:3soqnlz6]
위와 같이 Build-Depends를 명시 해주면
Depends: ${shlibs:Depends}, ${misc:Depends} 이 줄이 위 컴파일 의존 라이브러리를 참고 하여 INFO 파일을 만들고
패키지 설치시에 의존 파일들이 같이 설치됩니다.
INFO 파일 내용 스샷 (만들어진 DEB 파일을 MC 로 엔터 쳐서 그 안에 INFO 파일을 F4로 열기 한 상태의 일부분 입니다.)
[attachment=0:3soqnlz6]nateon-nateon-1.0_186-1_i386.deb#deb.png[/attachment:3soqnlz6]
[color=#404080:3soqnlz6][b:3soqnlz6]컴파일[/b:3soqnlz6][/color:3soqnlz6]
$ fakeroot debian/rules binary 로 컴파일 해보십시오
어때요 컴파일되나요?
"make[1]: *** 타겟이 지정되지 않았고 메이크파일이 없습니다. 멈춤." 이라고 나오죠?
왜 그럴까요?
다시 INSTALL 문서를 볼까요! 문서 중간 컴파일에 보면
$ cmake -DCMAKE_INSTALL_PREFIX=[설치할 디렉토리] 있군요
타겟으르 지정해야 쏘는 모양입니다.
그럼 음
$ cmake -DCMAKE_INSTALL_PREFIX=/usr 로 하고 명령어 내려 보세요 그런 후 다시 fakeroot 를 …
잘되죠 ^^
[color=#404080:3soqnlz6][b:3soqnlz6]설치[/b:3soqnlz6] [/color:3soqnlz6]
$ cd … && sudo dpkg -i nate*.deb
따끈따끈한 네이트온이 설치되겠군요!
[color=#404080:3soqnlz6][b:3soqnlz6]이번 글에 중요한 건 [/b:3soqnlz6][/color:3soqnlz6]
[list:3soqnlz6]1. svn 에서 소스 다운 법
2. dh_make 옵션
3. control 파일에서 의존 패키지 편집 입니다.[/list:u:3soqnlz6]
추가 참고 링크 : http://www.debian.org/doc/manuals/maint … #s-control