우분투 꾸러미 만들기(Build), PPA 올리기 정리.

이글루스에 있던 글을 옮겨왔다.


자주, 매번 하는 것이 아니니 할 때마다 까먹는다.
정리를 해놨지만, 여기 저기 정리되어 있어서 찾는 것도 시간이 걸린다.

종합해서 여기에 다시 정리한다.
먼저, 다음 꾸러미들이 기본으로 설치되어 있어야 한다.

  • build-essential
  • devscripts

우분투 꾸러미를 만들기 위해선 debian/ 디렉토리에 있는 control changelog 파일등을 손봐(?)줘야 한다.
이 파일들은 제작자가 제공해주는 경우도 있고, 그렇지 않을 때도 있다. 허나, 무에서 유를 만들 필요는 거의 없고, 이전 판이라든가, 비슷한 다른 프로그램이라든가 소스를 뒤져보면 필요한 것을 거의 구할 수 있다. 이 내용은 아래 글 참고.

다 됐다면, 빌드하기 위한 의존성이 다 충족되는지 확인을 해야 한다. 아래 있는 모든 명령은 소스가 풀린 디렉토리에서 실행한다.

$ dpkg-checkbuilddeps 

Unmet 이 나온다면 해당 꾸러미를 설치하고 다시 실행해본다. dpkg-checkbuilddeps 는 control 파일에 근거하여 의존성을 찾아주는 것이므로, 여기서 충족이 됐다고 해도 실제 컴파일에선 필요한 라이브러리가 없어서 오류가 날 수도 있다.

또는 제작자가 제공한 configure 파일을 실행해서 의존성을 확인할 수도 있다.

이 작업이 무사히 끝났다면 컴파일/빌드(실행파일 생성) 또는 소스 빌드를 할 차례다.
배포하지 않을 목적이면, OpenPGP 로 서명하지 않고 그냥 빌드하면 된다.

실행파일 꾸러미 :

$ dpkg-buildpackage -b -us -uc

또는

$ debuild -us -uc

오류없이 빌드가 끝나면 소스가 있는, 즉 위 명령을 실행한 디렉토리 하나 위에 꾸러미가 생성된다.

** 여기서 한가지 주의!

  • 만약 위와 같이 실행파일 빌드를 하고, 거기에서 바로 아래처럼 소스 빌드를 하면, 보미를 빌드 할 때처럼 PPA 빌드시 뭔가 문제가 발생할 소지가 있다.
    따라서 소스 빌드를 할 때는, make clean 으로 찌꺼기(?)를 삭제하거나, 아니면 빌드를 하지 않은 깨끗한(Pristine~) 소스에서 작업하는 편이 좋겠다.

소스 꾸러미

# 이전에 바이너리 빌드를 했다면,
$ make clean

$ debuild -S #(대문자 S)

소스 꾸러미를 만든다는 것은 PPA 에 올린다는 뜻이므로, 위 명령을 실행하면 OpenPGP 암호를 물어오므로 넣어줘야 한다. (Gnome 계열에선 한번만 넣어주면 그 다음부터는 자동으로 입력이 된다. KDE 에서 마지막으로 했을 땐 자동으로 Pass Phrase 를 기억하지 못했었다. 방법이 있을 듯은 한데..?)
이때 물어오는 OpenPGP 암호 계정은 changelog 가장 상단에 있는 이메일 주소를 기준으로 한다.

만약, 다른 이가 만들어놓은(다른 이의 PPA 에서 내려받은 소스를 내 PPA 에 올릴 경우) 소스를 패키지하여 올릴 경우엔 다음과 같이 서명을 해줘야 한다. PGPid 는 OpenPGP 에 사용한 이메일 주소이다.

$ debuild -S -kPGPid

실행파일 꾸러미와 마찬가지로 하나 상위 디렉토리에 소스 꾸러미가 생성된다.
만든 꾸러미를 PPA 에 올리기 위해 다음 명령을 실행한다.

dput ppa:your-lp-id/ppa xxx.source.changes

ppa:your-lp-id/ppa 는 내 PPA 주소를 말함이고, 그 뒤는 debuild 로 생성된 .changes 파일이다.

Author: 아무도안

안녕하세요. 글 남겨주셔서 고맙습니다.