맨위로가기

Deb (파일 형식)

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

1. 개요

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

더 읽어볼만한 페이지

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

2. 디자인

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

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

.deb 패키지를 설치하는 gdebi


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

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

2. 1. 구현

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

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


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





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

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

2. 1. 1. Control 아카이브


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

3. 서명된 패키지

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

4. 적용 및 호환성

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


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

참조

[1] 웹사이트 Media Type Registration for vnd.debian.binary-package https://www.iana.org[...] Internet Assigned Numbers Authority 2014-05-21
[2] 웹사이트 How to create Debian packages with alternative compression methods https://raphaelhertz[...] 2016-08-26
[3] 웹사이트 Debian Courses/Maintaining Packages/Packages Management https://wiki.debian.[...] 2016-08-26
[4] 웹사이트 Overview of Debian Maintainer Tools / Alien https://www.debian.o[...] 2016-08-26
[5] 웹사이트 Chapter 3. D-I components or udebs http://d-i.alioth.de[...] 2016-08-26
[6] 웹사이트 deb-old(5) man page: Debian old binary package format https://manpages.deb[...] 2017-04-23
[7] 웹사이트 Debian Packaging Tutorial https://www.debian.o[...] 2016-08-26
[8] 웹사이트 deb(5) man page: Debian binary package format https://manpages.deb[...] 2017-04-23
[9] 웹사이트 Debian Binary Package Building HOWTO/3. Package Structure https://www.tldp.org[...] 2016-08-26
[10] 웹사이트 deb-control(5) man page: Debian packages' master control file format https://manpages.deb[...] 2017-04-23
[11] 웹사이트 Debian Policy Manual Chapter 5 - Control files and their fields https://www.debian.o[...] 2016-08-26
[12] 웹사이트 Debian New Maintainers' Guide - Ch4 Required files under the debian directory https://www.debian.o[...] 2016-08-26
[13] 웹사이트 Debian Policy Manual Ch7 - Declaring relationships between packages https://www.debian.o[...] 2016-08-26
[14] 웹사이트 The Debian Administrator's Handbook - Package Meta-Information https://debian-handb[...] 2016-08-26
[15] 웹사이트 Chapter 7. Basics of the Debian package management system https://www.debian.o[...] 2021-05-27
[16] 웹사이트 Debian Maintainer Scripts https://wiki.debian.[...] 2016-08-26
[17] 웹사이트 The Debconf Programmer's Tutorial - The Config Script https://www.fifi.org[...] 2016-08-26
[18] 웹사이트 dpkg-shlibdeps(1) man page https://manpages.deb[...] 2017-04-23
[19] 웹사이트 Debian Policy - 8.6 Dependencies between the library and other packages https://www.debian.o[...] 2016-08-26
[20] 웹사이트 HOWTO: GPG sign and verify deb packages and APT repositories https://blog.package[...] 2016-08-26
[21] 웹사이트 APT repository internals https://blog.package[...] 2016-08-26
[22] 웹사이트 SecureApt - All about secure apt https://wiki.debian.[...] 2016-08-26
[23] 웹사이트 debsig-verify(1) man page https://manpages.deb[...] 2017-04-23
[24] 웹사이트 debsigs(1) man page https://manpages.deb[...] 2017-04-23
[25] 웹사이트 Integrating signatures into Debian archive files http://dpkg-sig.turm[...] 2003-12-29
[26] 웹사이트 policy for debsigs http://dpkg-sig.turm[...] 2004-02-01
[27] 웹사이트 The Debian Administrator's Handbook - Ch5. Packaging System: Tools and Fundamental Principles https://www.debian.o[...] 2016-08-26
[28] 웹사이트 Linux Mint 20 "Ulyana" Review: The Most Complete OS For Everyone https://fossbytes.co[...] 2024-05-15
[29] 웹사이트 3 Ways to Install Deb Packages in Ubuntu, Mint & Debian https://www.ubuntumi[...] 2024-05-15
[30] 웹사이트 Fink FAQ - General Questions https://www.finkproj[...] 2016-08-26
[31] 웹사이트 Fink FAQ - Installing, Using and Maintaining Fink https://www.finkproj[...] 2016-08-26
[32] 웹사이트 Bringing Debian APT to the iPhone https://www.saurik.c[...] 2016-08-26
[33] 웹사이트 Debian-style installation arrives on iPhone https://www.engadget[...] 2016-08-26
[34] 문서 deb(5) manpage http://manpages.debi[...]
[35] 웹인용 Media Type Registration for vnd.debian.binary-package http://www.iana.org/[...] 2014-05-21
[36] 웹인용 Chapter 3. D-I components or udebs https://web.archive.[...] 2014-08-16



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com