컴퓨터 연구/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