How does ubuntu manage packages?

A noob here. I really want to learn or at least have some ideas on how software is packaged in Ubuntu.

Is it compiled and packaged by the package author?

Or is it compiled by Ubuntu developers?

How do Ubuntu choose packages that could be installed directly via apt package manager.

I would very much appreciate ELI5 explanations

Thank you


I'd suggest picking a package and follow it's creation in Ubuntu, through to upstream. I'll use gcc-10 (https://packages.ubuntu.com/focal/gcc-10) as it was the last package I looked up. To the right of the details on the package you'll see homepage (upstream clues), maintainers, changelog & more. Compilations are done by infrastructure/builders (machines not people)...

Compilations are done locally; then uploaded often to PPAs for testing by ourselves, others in teams before committing to source for upload to Ubuntu etc.

Useful reference (but there are many more!)

  • https://packaging.ubuntu.com/ubuntu-packaging-guide.pdf or https://packaging.ubuntu.com/html/

but many guides exist, eg. Lubuntu's can be found at https://phab.lubuntu.me/w/packaging/

In comment you asked about paraview

A link may have been useful (https://packages.ubuntu.com/impish/paraview) shows me Ubuntu Developers maintain the package as you said; at the top I see it's a universe package (ie. community support only) with the upstream developers Debian Science Team (https://packages.debian.org/bookworm/paraview) so for example I maynext look up https://tracker.debian.org/pkg/paraview for more clues IF the Ubuntu changelog wasn't enough (https://changelogs.ubuntu.com/changelogs/pool/universe/p/paraview/paraview_5.9.0-2ubuntu1/changelog; look at changes; names/emails etc).

Debian is upstream, ie. the source.

A large percentage of Ubuntu packages come from upstream. I'm involved with Lubuntu (thus my providing that link as I knew it earlier); our LXQt we provide has been newer in Ubuntu than Debian has for last few releases, as Debian were often in freezes & it was easier to package only for Ubuntu/Lubuntu. Debian isn't in freeze anymore so the Lubuntu devs/packagers were discussing only recently packaging the next version upstream in Debian, so it'll flow back to us (thus Debian benefit from the packaging too... Many devs (but not all) have @debian and @ubuntu emails.. you'll discover, so don't be surprised if the one name appears using both!)


Ubuntu currently has two software packaging systems, the traditional APT system, and a novel system SNAP. The former continues to be used for core system components and many application software. The latter is used for application software.

The software in the APT repositories is compiled from source and packaged into .deb package files by the Ubuntu developpers and the Ubuntu community. There is a quality control process packages undergo before they make it into the official Ubuntu software sources. For applications that are not core packages, it depends to an extend on the contributors whether and how fast they make it to the official software sources.

The Ubuntu packaging guide introduces people wishing to be involved in the packaging in how it technically works.

Software published in Snap is compiled and published by the software developer. That, together with Snap being distribution independent, makes it much easier and quicker to push newer versions of software to the users.