Deb (파일 형식)

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

.deb 파일은 데비안 패키지라고도 하며, 데비안 계열 운영 체제에서 소프트웨어 설치 및 관리에 사용되는 파일 형식이다. 이 파일은 표준 유닉스 ar 아카이브이며, 제어 정보와 설치 가능한 데이터를 포함하는 두 개의 tar 아카이브로 구성된다. dpkg는 .deb 패키지를 설치하고 조작하는 데 사용되며, APT, aptitude, Synaptic과 같은 APT 프론트 엔드를 통해 사용자가 더 쉽게 관리할 수 있다. .deb 파일은 압축 형식을 선택적으로 사용할 수 있으며, 다른 패키지 형식으로 변환하거나 소스 코드로부터 생성할 수도 있다. 또한, 데비안 설치 부팅에 사용되는 udeb 형식의 패키지도 존재한다. .deb 패키지는 OpenPGP 서명 검증을 지원하며, 데비안 기반 배포판 외에도 macOS, 넥센타 OS, iOS, 안드로이드 등 다양한 운영 체제에서 활용된다.

Deb (파일 형식) - [IT 관련 정보]에 관한 문서
파일 포맷 정보
이름데비안 패키지
파일 확장자.deb, .udeb
MIME 형식application/vnd.debian.binary-package
개발데비안
종류패키지 관리 시스템
표준ar 아카이브
tar볼
웹사이트deb 형식 사양
📚 더 읽어볼만한 페이지
  • Dpkg - 어드밴스트 패키징 툴
    어드밴스트 패키징 툴(APT)은 데비안 계열 리눅스 배포판에서 패키지를 관리하는 도구 모음으로, 패키지 설치, 삭제, 업데이트, 업그레이드 기능을 제공하며, 특히 패키지 간 의존성을 자동 관리하는 특징을 가진다.
  • Dpkg - 시디아
    시디아는 탈옥된 iOS 기기에서 앱 스토어에서 제공하지 않는 소프트웨어를 설치할 수 있도록 해주는 GUI이며, 어드밴스트 패키징 툴을 기반으로 저장소를 통해 패키지를 다운로드하며, 2008년 제이 프리먼에 의해 출시되었다.
  • 파일 확장자 - 스크래치 (프로그래밍 언어)
    스크래치는 MIT 미디어 연구소에서 개발한 어린이 및 입문자를 위한 시각적 프로그래밍 언어이며, 블록 기반 방식을 통해 애니메이션, 게임, 스토리 등을 만들 수 있도록 설계되었고, 코드 공유 및 재사용을 장려하며 다양한 교육 환경에서 활용된다.
  • 파일 확장자 - 매니페스트 파일
    매니페스트 파일은 소프트웨어 배포 시 포함되는 파일로, 배포 파일 목록과 추가 정보를 담아 소프트웨어 배포 용이, 버전 관리, 의존성 관리, 오프라인 실행 지원, 앱 설치 및 공유 간편화 등의 기능을 제공한다.
  • 데비안 - 캐노니컬
    캐노니컬은 우분투 리눅스 배포판 개발 및 지원으로 유명한 영국의 소프트웨어 회사로, 런치패드 웹사이트 운영과 더불어 클라우드 컴퓨팅, 사물 인터넷, 인공지능 등 오픈 소스 기반의 다양한 프로젝트를 진행한다.
  • 데비안 - 데비안 자유 소프트웨어 지침
    데비안 자유 소프트웨어 지침은 데비안 프로젝트에서 자유 소프트웨어의 정의를 명확히 하기 위해 만든 지침으로, 소프트웨어가 자유롭게 재배포되고 수정될 수 있도록 소스 코드 공개, 차별 금지, 라이선스 적용 범위 등의 조건을 규정한다.

2. 디자인

데비안 패키지는 표준 유닉스 ar 아카이브이며, 두 개의 Tar 아카이브로 구성된다. 하나의 아카이브는 제어 정보를, 다른 하나는 설치 가능한 데이터를 담고 있다. 압축 형식으로는 gzip, bzip2, Izma, xz 등을 선택적으로 사용할 수 있다.

기본 설치 프로그램은 dpkg이며, APT, 앱티튜드, 우분투 소프트웨어 센터, 시냅틱, gdebi 등의 프론트엔드를 주로 사용한다.

.deb 패키지를 설치하는 gdebi
.deb 패키지를 설치하는 gdebi


데비안 패키지는 에일리언 소프트웨어를 이용해 다른 패키지 형식으로 변환하거나, 체크인스톨과 데비안 패키지 매니저를 이용해 소스 코드로부터 생성할 수 있다.

일부 코어 데비안 패키지는 udeb ("마이크로 debs") 형식으로 존재하며, 데비안 설치판의 부트스트랩용으로만 사용된다. udeb 패키지는 일반적인 데비안 시스템에 설치할 수 없다.

2.1. 구현

데비안 버전 0.93 이후부터, deb 파일은 ar 보존 형식으로 구현된다. 캐노니컬의 아카이브 형식 적용은 다음과 같다.

* `debian-binary`: deb 포맷 버전으로, 현재 데비안 버전에서는 "2.0"이다.
* `control.tar`, `control.tar.gz`, `control.tar.xz`: 모든 패키지의 메타 정보. dpkg에게 패키지 설치 방법을 알려준다.
* `data.tar`, `data.tar.gz`, `data.tar.bz2`, `data.tar.lzma`, `data.tar.xz`: 실제 설치 파일.

`debian-binary` 파일은 보존 파일의 맨 앞에 있어야 하며, 그렇지 않으면 데비안 패키지로 인식되지 않는다.




Debian 0.93 이전에는 패키지가 파일 헤더와 두 개의 연결된 gzip 아카이브로 구성되었다.

control 아카이브에는 패키지 설명, 종속성, 관리 스크립트 등 패키지 설치에 필요한 다양한 정보가 포함되어 있으며, data 아카이브에는 실제 설치될 파일들이 압축되어 있다.

2.1.1. Control 아카이브

* control은 패키지에 대한 간략한 설명과 종속성 등 기타 정보를 포함하고 있다.
* md5sums는 손상되었거나 불완전한 파일을 감지하기 위해 패키지 내의 모든 파일의 MD5 체크섬을 포함하고 있다.
* conffiles는 구성 파일로 처리해야 하는 패키지 파일을 나열한다. 구성 파일은 지정하지 않는 한 업데이트 중에 덮어쓰지 않는다.
* preinst, postinst, prermpostrm은 패키지를 설치하거나 제거하기 전후에 실행되는 선택적 스크립트이다.
* config는 debconf 구성 메커니즘을 지원하는 선택적 스크립트이다.
* shlibs는 공유 라이브러리 종속성 목록이다.

3. 서명된 패키지

데비안 기반 배포판은 서명된 데비안 패키지에 대한 OpenPGP 서명 검증을 지원하지만, 대부분 이 기능은 기본적으로 비활성화되어 있다. 대신 패키지는 저장소 메타데이터(예: Release 파일)에 서명하여 검증된다. 메타데이터 파일은 파일의 진위를 확인하기 위한 수단으로 저장소 파일에 대한 체크섬을 포함한다. 현재 개별 패키지 서명을 위한 두 가지 구현이 있다. 첫 번째는 dpkg에서 지원하는 debsigs / debsig-verify 도구 세트를 통해 수행된다. 두 번째는 dpkg에서 지원하지 않는 dpkg-sig 프로그램을 통해 수행되므로, 패키지는 dpkg-sig 프로그램을 사용하여 수동으로 확인해야 한다. 두 형식 모두 서명 정보를 저장하기 위해 ar 아카이브에 새로운 섹션을 추가하지만, 형식은 서로 호환되지 않는다.

4. 적용 및 호환성

데비안 패키지는 데비안 기반 GNU/리눅스 배포판에서 사용된다. 예를 들어 우분투, 리눅스 민트 데비안 에디션(LMDE), KDE 네온 등이 있다.

* Fink는 dpkg와 APT를 macOS로 포팅하여 deb 패키지를 사용한다.
* 넥센타 OS (단종)는 오픈솔라리스 기반 운영체제로, 데비안 패키지 관리 소프트웨어와 deb 패키지를 사용했다.
* Debian GNU/kFreeBSD는 GNU 기반 userland와 FreeBSD 커널을 사용하는 운영 체제이다.
* Debian GNU/Hurd.
* 일부 탈옥된 iOS 기기 (아이폰, 아이패드 및 아이팟)에서 사용된다.
* Ipkg와 Opkg는 모두 Debian의 dpkg와 유사한 .ipk 패키지를 사용한다.
* Termux안드로이드GNU 환경이다.