[펌질] 소스를 데비안 패키지로 컴파일 해 보자 - 우분투

두번째 컴파일을 해보자 2 (소스다운 컴파일:dh_make) 입니다.

nmap은 네트워크 검사 & 스케닝 툴로 아주 유명한 프로그램입니다.
물론 우분투도 패키지로 가지고 있기에 apt-get 으로 설치 가능 합니다.

NMAP은 port Scanning 툴로서 호스트나 네트워크를 스캐닝 할 때,아주 유용한 시스템 보안툴인 동시에,
해커에게는 강력한 해킹툴로 사용될 수 있습니다. 참고 : http://coffeenix.net/doc/security/nmap.html


ubuntu nmap
Ubuntu Package nmap (net) =======
Package Versions: 4.03-3 (dapper) / 4.20-1~dapper1 (dapper-backports) / 4.20-1 (feisty) / 4.20-2 (gutsy) / 4.53-1~gutsy1 (gutsy-backports) / 4.53-3 (hardy) / 4.62-1ubuntu1 (intrepid)
Description: The Network Mapper

그런데 nmap 의 최신 버전은 4.75 입니다. 최신 버전을 다운 받아 패키지로 만들어 볼까요
이번 글에서 핵심은 dh_make 입니다.
$ sudo apt-get install dh-make

※ 언더빠 아니고 패키지는 하이픈 입니다. - (jhlee0324님 질문에 삽입 함)

다운로드 : http://nmap.org/download.html
보통 소스 다운시에 다운 링크주소를 오른마우스로 속성 복사후 wget 를 이용 하여 받아 보시기 바랍니다.
$ mkdir nmap && cd nmap
$ wget http://download.insecure.org/nmap/dist/ ... 75.tar.bz2 (wget 이 없을시엔 설치 요망 sudo spt-get install wget )
$ tar xvjf nmap-4.75.tar.bz2 (보통 tgz, tar.gz 은 xvzf 로 bz2 는 xvjf 로 풉니다 . z 와 j )
$ cd nmap-4.75

$ dh_make -r (원본 소스파일 복사 하며 debian 디렉에 필요 파일 생성)

엔터치시면 dh_make는 만들고자 하는 패키지가 어떤 종류인지 물어 보는데 nmap 는 한개의 이진 패키지이므로 s (싱글)을 치고 내용 보고 엔터 치시기 바랍니다.
dh_make 에 대한 자세한 참고 링크 https://help.ubuntu.com/ubuntu/packagin ... elper.html
dh_make 주의점은 한번 실행 한 후엔 또하면 패키지가 온전하게 만들어 질수 없다는 겁니다. 한번 만 실행 하십시요

dh_make 로 만들어진 파일을 좀 보겠습니다.
$ gedit debian/changelog

Code:
nmap (4.75-1) unstable; urgency=low

  * Initial release (Closes: #nnnn)  <nnnn is the bug number of your ITP>

-- bundo <bundo@maria-9>  Tue, 09 Sep 2008 17:19:10 +0900


위와 같은데 아래 처럼 수정 했습니다.
Code:
nmap (4.75-1) hardy; urgency=low

  * Initial release

-- bundo <bundo@bundo.biz>  Tue, 09 Sep 2008 17:19:10 +0900


처음줄에 hardy 패키징 임을 명시 하고 중간 설명 부분인데 좀 지우고 아래 이메일 수정 했습니다. 그옆은 생성 시간 입니다. +9는 UTC +9시간 (한국)
이메일은 처음 dh_make 할때에 dh_make -e bundo@bundo.biz -r 하여 미리 올바른 이메일 입력이 가능 합니다.
위 changelog 파일 참고 주소 : http://www.debian.org/doc/manuals/maint ... -changelog

파일 하나 더 보겠습니다.
$ gedit debian/control

Code:
Source: nmap
Section: unknown
Priority: extra
Maintainer: bundo <bundo@maria-9>
Build-Depends: debhelper (>= 5), autotools-dev
Standards-Version: 3.7.2

Package: nmap
Architecture: any
Depends: ${shlibs:Depends}, ${misc:Depends}
Description: <insert up to 60 chars description>
<insert long description, indented with spaces>

위와 같은데.. Section: net 로 하고 이메일 수정 하고.. Build-Depends 와 Depend를 보시기 바랍니다.
Build-Depends 는 컴파일시 의존 패키지를 Depend는 설치시 에 같이 설치되야 할 의존 패키지를 명시 하는 곳 입니다.
그럼 nmap의 빌드와 의존 패키지는 무엇 일까요?
기존 패키지 소스를 다운 받아 control 파일을 열어 보십시요

Code:
Build-Depends: debhelper (>=5), libgtk2.0-dev, autoconf, flex, bison, libssl-dev, libpcap0.8-dev, libpcre3-dev, binutils-dev, python (>=2.3.5-7), python-all-dev, python-central


Depends: ${shlibs:Depends} 설치시 의존 패지키는 없고 컴파일시 의존 패키지는 많군요
Build-Depends 를 위와 같이 고치시기 바랍니다.
그리고 한김에 Description: 이하 줄도 복사하여 어떤 패키지 인지 명시 하여 보시기 바랍니다. IPAQ. 까지
위 control 파일 참고 주소 : http://www.debian.org/doc/manuals/maint ... eq.ko.html

※ 위수정 없이 컴파일 해도 컴파일은 됩니다. 단 저장소에 업하여 다른이가 사용 가능한 패키지가 되려면
  제대로 두 파일 수정과 다음에 쓸 GPG키 사인이 있어야 합니다.

컴파일과 설치

저번에 했던 changelog에서 버전업은 왜 필요 없을까요?
이번에 하는 nmap 버전이 윌등 높기 때문입니다. ^^

$ fakeroot debian/rules binary

컴파일시 오류나는 분은 $ dpkg-buildpackage -rfakeroot 로 설치 안된 컴파일 의존 패키지 있나 확인 바랍니다.
$ cd .. && sudo dpkg -i nmap*.deb


최신 버전 nmap 잘 활용 해 보시기 바랍니다. (타 네트웍 포트 스캔 하지는 마세요!)
$ namp -A bundo.biz
80포트에 무엇이 설치 되어 있나요? WIndows가 운영체제 라는데요? 사실 리눅데탑이며 속임수 입니다.
본인 확인은 nmap localhost 또는 nmap -A localhsot

다음엔 업스트립 패키지에 필요한 GPG 키 만들기와 인증을 해보겠습니다.


Powered by ScribeFire.