Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Debian Package Distribution And Component

I started experimenting with creating my own Debian package and repository. It's a bit unclear to me what is the difference between a package distribution and component. And more importantly, what are the appropriate values for custom debian packages.

Drawing from https://wiki.debian.org/RepositoryFormat and https://wiki.debian.org/SourcesList, it says:

distribution typically corresponds to Suite or Codename specified in the Release files

and component is just... well component names like main, free, contrib etc.

Some very common distribution I have seen are trusty, precise, stable, unstable, testing etc. Someone told me that distribution can represent the targeted platform (in the context of releasing my own software as a debian package). Conversely, the common components I have seen are main, free, contrib etc.

So it looks to me both are just arbitrary values that communicate something to the users. Are there any guidelines around what are appropriate for custom debian packages?

like image 609
ivan.sim Avatar asked Oct 20 '25 13:10

ivan.sim


1 Answers

The "distribution" should match the release of Debian (or whatever other OS) that your package is compatible with. For example, if you built a package on Debian Jessie, the distribution should be set to "jessie" to signal to users that it may contain packages that are not compatible with other releases of Debian or Ubuntu.

Avoid using "stable" and "unstable" as distribution names. Their meaning is unclear, and subject to change with time. (Stable what?)

The "component" can be used within a repository to provide multiple groups of packages. For example, the Debian project uses it to keep packages with incompletely free licenses separate from the rest. Your use of it is up to you; if you've only got a few packages, you can probably just use a single component and call it "main".