컴퓨터 연구/Linux

우분투 패키지 생성

이재만박사 2021. 4. 2. 22:49

윈도우즈에는 .msi 설치 파일 또는 .exe 설치 파일이 있는데

 

우분투는 deb 파일이 있다

 

 

우분투에서는 패키지를 생성하기 위한 명령어를 dpkg 명령어를 이용한다

 

패키지를 생성하기 위해서는 다음과 같은 과정을 따른다

 

1. 기본 디렉토리 생성

 

패키지를 만들기 위한 디렉토리를 생성한다

 

예) mkdir mypack

 

이 폴더 안에는 다음과 같은 폴더가 존재해야 한다

 

- 한 개는 폴더이고 -- 두 개는 파일이다

mypack

    - DEBIAN

        -- control

        -- preinst

        -- postinst

        -- prerm

        -- postrm

    - usr

        - include

        - lib

   

DEBIAN 폴더는 필수 폴더이고

* control

    - 설치나 업로드 파일을 제어하기 위한 데이터를 가지고 있는 파일

    - 하나 또는 그 이상의 문단으로 구성

        문단은 빈 줄로 구성

        각 문단은 보통 다른 패키지를 언급

        (예 - 첫 번째 패키지 - 소스 패키지

               두 번째 패키지 - 소스로부터 생성된 바이너리 패키지)

        문단의 순서는 중요

    - 문단은 일련의 데이터 필드로 구성

    - Package : libc6   (Package - 필드 이름, libc6 - 필드 값)

        빈 필드 값은 오직 소스 패키지 control 파일에서만 허용됨

 

    바이너리 패키지에 관한 control 파일은 다음과 같은 속성을 가진다

 

  1. Package (필수) 

 

  2. Source

 

  3. Version (필수)

 

  4. Section (추천)

  

  5. Priority (추천)

 

  6. Architecture (필수)

 

  7. Essential

 

  8. Depends et al

 

  9. Installed-Size

 

  10. Maintainer (필수)

 

  11. Description (필수)

 

  12. Homepage

 

  13. Built-Using

 

위의 필드 목록은 다음 글에서 다룬다

 

* preinst

    - 패키지 내에 포함된 파일을 설치하기 전에 실행되는 스크립트

 

* post inst

 

    - 패키지 내 포함된 파일을 설치한 후에 실행되는 스크립트

 

* prerm

    - 패키지 설치 이전 삭제해야 할 리스트

 

* postrm

    - 패키지 설치 이후 삭제해야 할 리스트

 

 

Control File에서 Section 항목에 들어갈 수 있는 목록은 다음 사이트를 참조한다

 

packages.debian.org/unstable/

 

Debian -- List of sections in "sid"

List of sections in "sid" Administration Utilities Utilities to administer system resources, manage user accounts, etc. Mono/CLI Everything about Mono and the Common Language Infrastructure. Communication Programs Software to use your modem in the old fash

packages.debian.org