Debian package basics
Ref: https://www.debian.org/doc/manuals/debmake-doc/
#
Pre-installationν°λ―Έλμμ bashλ₯Ό μ¬μ©νλ©΄ ~/.bashrc
, zshμ μ¬μ©νλ©΄ ~/.zshrc
μ λ§μ§λ§ μ€μ μλμ κ°μ μ½λλ₯Ό μ½μ
ν©λλ€.
#
Creating template filesμλ λͺ
λ Ήμ΄λ₯Ό ν΅ν΄ <package>
μ λμΌν λλ ν 리μ <package>-<version>
, <package>-<version>.tar.gz
, <package>_<version>.orig.tar.gz
μ΄ μμ±λ©λλ€.
μμ±λ template filesμ <package>-<version>
λλ ν 리μμ νμΈ κ°λ₯ν©λλ€.
<package>
λλ ν λ¦¬λ‘ μ΄λ ν μλ λͺ
λ Ήμ΄λ₯Ό μ€νν©λλ€.
#
Examples#
Required filesRef: https://www.debian.org/doc/manuals/maint-guide/dreq.en.html
#
controlRef: https://www.debian.org/doc/debian-policy/ch-controlfields.html
μμ κ°μ΄ controlμ μμ±νλ©΄ μλμ κ°μ λͺ λ Ήμ΄λ‘ μ€μΉκ° κ°λ₯ν©λλ€.
Source: μμ€ ν¨ν€μ§ λͺ (mandatory)
Maintainer: μ΄λ¦ <μ΄λ©μΌ> (mandatory)
Uploaders: μ΄λ¦ <μ΄λ©μΌ>
Section: (recommended)
- admin, cli-mono, comm, database, debug, devel, doc, editors, education, electronics, embedded, fonts, games, gnome, gnu-r, gnustep, graphics, hamradio, haskell, httpd, interpreters, introspection, java, javascript, kde, kernel, libdevel, libs, lisp, localization, mail, math, metapackages, misc, net, news, ocaml, oldlibs, otherosfs, perl, php, python, ruby, rust, science, shells, sound, tasks, tex, text, utils, vcs, video, web, x11, xfce, zope
Priority: λλΆλΆ optional (recommended)
Build-Depends: debhelper (>=10)
Standards-Version: 3.9.8 (mandatory)
Homepage: URL
Version Control System (VCS) fields
Package: ν¨ν€μ§ λͺ (mandatory)
Architecture (mandatory)
Section (recommended)
Priority (recommended)
Essential
Depends: μ€μΉμ νμν ν¨ν€μ§
${misc:Depends}
for all binary packages${misc:Pre-Depends}
for all multiarch packages${shlibs:Depends}
for all binary executable and library packages${python:Depends}
for all Python packages${python3:Depends}
for all Python3 packages${perl:Depends}
for all Perl packages${ruby:Depends}
for all Ruby packages
Recommends, Suggests et al
Description: μ€λͺ (mandatory)
Homepage: URL
#
copyrightRef: https://www.debian.org/doc/debian-policy/ch-docs.html#s-copyrightfile
#
changelogRef: https://www.debian.org/doc/debian-policy/ch-source.html#s-dpkgchangelog
changelogκ° μμΌλ©΄ μλ λͺ λ Ήμ΄λ‘ μμ±ν μ μμ΅λλ€.
changelogκ° μμΌλ©΄ μλ λͺ λ Ήμ΄λ‘ λ‘κ·Έλ₯Ό μΆκ°ν μ μμ΅λλ€. distribution μνκ° UNRELEASED μνλ©΄ change detailμ΄ μΆκ°λκ³ , λ€λ₯Έ μνλ©΄ λ€μ versionμ΄ μΆκ°λ©λλ€.
changelogλ νμμ΄ μ‘΄μ¬ν©λλ€. νμμ λ§μ§ μλ changelogλ₯Ό μ¬μ©νλ©΄ ν¨ν€μ§ λΉλ μ μ€λ₯κ° λ°μν μ μμ΅λλ€.
- package: ν¨ν€μ§ λͺ
- version
- distribution: unstable, experimental, stable, release
- urgency: low, medium, high, emergency, critical
- date: day-of-week, dd month yyyy hh:mm:ss +zzzz
- day-of-week: Mon, Tue, Wed, Thu, Fri, Sat, Sun
- month: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
- +zzzz or -zzzz is the time zone offset from Coordinated (UTC)
#
rulesdebhelperμ μν΄ ν¨ν€μ§κ° λΉλ λ λ, κ° λ¨κ³μ μ€νλλ λͺ λ Ήμ μμ ν μ μλ νμΌμ λλ€.
#
Miscellaneous filesRef: https://www.debian.org/doc/manuals/maint-guide/dother.en.html
#
<package>.cron.*- package.cron.hourly - Installed as /etc/cron.hourly/package; run once an hour.
- package.cron.daily - Installed as /etc/cron.daily/package; run once a day.
- package.cron.weekly - Installed as /etc/cron.weekly/package; run once a week.
- package.cron.monthly - Installed as /etc/cron.monthly/package: run once a month.
- package.cron.d - Installed as /etc/cron.d/package: for any other time.
#
install (<package>.install)νμ€ make install
μ΄ νμ§ μλ νμΌ μ€μΉ λͺ©λ‘ μ
λλ€. νμΌ λͺ
κ³Ό μ€μΉλμ΄μΌν μμΉλ₯Ό ν μ€μ νλμ© μ μΌλ©΄ λ©λλ€. ν¨ν€μ§ μμμ νμΌμ μλ κ²½λ‘μ μ€μΉλ κ²½λ‘κ° λμΌν κ²½μ° νμΌ λͺ
λ§ μμ±ν΄λ λ©λλ€.
μμ²λΌ μμ±ν κ²½μ° /usr/local/bin/A
, /usr/local/lib/B
κ° μ€μΉλ©λλ€.
#
Debian maintainer scriptsRef: https://www.debian.org/doc/debian-policy/ap-flowcharts.html