Translation(s): English - Español - Português (Brasil) - Italiano - Svenska - Русский


Portal/IDB/icon-wiki-portal.png

This is the packaging portal, for people who want to create new packages. For commonly-installed packages, see Software. Or to install and remove packages, see package management.

General guides

There are no shortcuts to learning good packaging practices - you can't just throw a trivial packager like equivs at the problem and hope for the best.

The links in this section will help you gain a deep understanding of the problems you need to solve if you want to create or maintain a package.

Find your feet

The first step is to find a basic approach that works for you. The Debian mentors FAQ advises you to re-consider, clarifies why and how to start, and provides a short overview of the process.

New tools are invented every few years, and the best way to use them depends on the specific projects you want to package and the way you like to work. Here are some guides you can get inspiration from:

{i} Debian packaging works by example as much as by theory. Find well-maintained packages, and see how they do it!

Further reading

Once you've found a workflow you can live with, you can optimise it for your personal requirements. These pages might give you some ideas:

These advanced pages explain how packaging works under the hood:

Finally, if you'd like to see the development process for the packaging system itself:

More granular guides

Once you're comfortable creating packages generally, you'll need to learn the tools and techniques for your particular problem.

Language-specific guides

Each of Debian's language-specific teams have their own policies and tools:

{i} see also a comparison of tools that create Debian packages

Topic-specific guides

If your package addresses a specific topic, you may need to read information from people who have been there before:

Tool guides

You will probably need to use some of these:

You might also want to use some of these:

Job guides

If you're trying to achieve a particular outcome:

Working with other developers

If you want to get involved with the Debian community:

Training Sessions

DebianWomen organise training sessions.

External links

See also

Wiki pages

All pages related to packaging in Debian:

  1. AdvancedBuildingTips
  2. Alioth
  3. AndroidTools
  4. AutomaticPackagingTools
  5. BuildingFormalBackports
  6. BuildingWithoutFakeroot
  7. BzrBuildpackage/DesignIdeas
  8. CheckInstall
  9. ConfigPackages
  10. CopyrightReviewTools
  11. Courses2005/BuildingWithoutHelper
  12. CreatePackageFromPPA
  13. Creating signed GitHub releases
  14. CrossBuildPackagingGuidelines
  15. DDPO
  16. DEX
  17. DataPackages
  18. Debhelper
  19. DebianAstro/AstropyPackagingTutorial/Packaging
  20. DebianAstro/AstropyPackagingTutorial/Preparation
  21. DebianChangelog
  22. DebianDevelopment
  23. DebianGNUstep/TODO
  24. DebianMentorsFaq
  25. DebianMultimedia/DevelopPackaging
  26. DebianPackageManagement
  27. DebianRepository/Setup
  28. DebugPackage
  29. DevelopersCorner
  30. Diagrams
  31. Distcc
  32. DkmsPackaging
  33. DpkgConffileHandling
  34. DpkgDiversions
  35. EmacspeakTestingGuide
  36. FTBFS
  37. FastTrack
  38. Fonts/PackagingPolicy
  39. GettingPorted
  40. GitPackaging
  41. GitPackagingSurvey
  42. GitPackagingSurvey/bare debian
  43. GitPackagingSurvey/bare debian monorepo
  44. GitPackagingSurvey/bare template
  45. GitPackagingSurvey/git-debcherry
  46. GitPackagingSurvey/git-debrebase
  47. GitPackagingSurvey/git-dpm
  48. GitPackagingSurvey/manually maintained applied
  49. GitPackagingSurvey/merging
  50. GitPackagingSurvey/modified orig plus further unapplied patches
  51. GitPackagingSurvey/rebasing
  52. GitPackagingSurvey/unapplied
  53. GitPackagingWorkflow
  54. GitPackagingWorkflow/DebConf11BOF
  55. GitSrc
  56. HardeningWalkthrough
  57. HowToPackageForDebian
  58. Java/Packaging
  59. Javascript/Forwading-Patches
  60. Javascript/Policy
  61. Javascript/Repacking
  62. Maintainers
  63. MakeAPrivatePackage
  64. ManageUpstreamDifferences
  65. Mentors
  66. Mingw-W64
  67. NonMaintainerUpload
  68. OpenSuseBuildService
  69. PackageConfigUpgrade
  70. PackageSalvaging
  71. PackageTransition
  72. Packaging
  73. Packaging/HackingDependencies
  74. Packaging/Intro
  75. Packaging/Learn
  76. Packaging/Pre-Requisites
  77. Packaging/Pre-Requisites/nspawn
  78. Packaging/Variables
  79. Packaging/ruby-team-meta-build
  80. Packaging/sbuild
  81. PackagingFAQ
  82. PackagingTools
  83. PackagingWithDarcs
  84. PackagingWithDocker
  85. PackagingWithGit
  86. PbuilderTricks
  87. PkgQtKde/BookwormReleasePlans
  88. PkgQtKde/TrixieReleasePlans
  89. Projects/DebSrc3.0
  90. Python/DbgBuilds
  91. Python/LibraryStyleGuide
  92. Python/Policy
  93. RPM
  94. RenamingPackages
  95. Repackage_srcrpm
  96. Repacking
  97. ReproducibleBuilds
  98. Salsa
  99. Salsa/support
  100. ServiceSandboxing
  101. Services/wnpp-by-tags.debian.net
  102. SimpleBackportCreation
  103. SimplePackagingTutorial
  104. Software that can't be packaged
  105. SoftwarePackaging
  106. SponsorChecklist
  107. Teams
  108. Teams/DebianHaskellGroup
  109. Teams/DebianMonoGroup/NewPackage
  110. Teams/Dpkg/Spec/DeclarativePackaging
  111. Teams/Foo2zjs
  112. Teams/Games
  113. Teams/Games/Sponsors/Queue
  114. Teams/MySQL
  115. Teams/MySQL/MySQL-wsrep
  116. Teams/OCamlTaskForce
  117. Teams/Printing
  118. Teams/Ruby/Packaging
  119. UntrustedDebs
  120. UpstreamGuide
  121. UscanEnhancements
  122. UsingQuilt
  123. WNPP
  124. WritingDebianPackageDescriptions
  125. binNMU
  126. debian/patches
  127. debian/upstream
  128. debian/upstream/edam
  129. debian/watch
  130. pbuilder
  131. piuparts
  132. pt_BR/AdvancedBuildingTips
  133. pt_PT/Teams
  134. sbuild
  135. tag2upload
  136. udeb
  137. zh_CN/DebianRepository/Setup


CategoryPackaging | CategoryPortal