Intro to Debian Packages

From FreekiWiki
Jump to navigation Jump to search

(very) Basic Debian Package Introduction

Note from Ben: I do not claim to be an expert packaging programs fro Debian / Ubuntu. I am putting what I know here because I think it is enough to get a handle on what we need to do for the release of Xubuntu 12.04. As interns our job in the packaging process is not all that complicated, and this should help...


Debian Packages, the Essentials

Debian packages are pretty much just like any other package format out there. Inside they contain files which are copied to the appropriate folders in the filesystem upon install.

But How Are The Files Copied?

It's actually very simple. When creating a package, a very specific directory structure is created, it looks like this:

my-package-1.0/
DEBIAN/
DEBIAN/control
etc/
etc/foo
usr/
usr/share/
usr/share/doo

It's creating a ghost version of the real / filesystem, with just the files that need to be installed. So, if we created a package from the above example and installed it, file "foo" would appear in /etc/ and "doo" would appear in /usr/share/. The DEBIAN folder is not installed, it contains files that described the package and how it relates to the repository.

How does this relate?

The package for our customizations of Xfce looks little bit like this:

freegeek-default-settings/
DEBIAN/
etc/
etc/xdg/
etc/xdg/xdg-freegeek/
...
usr/
usr/share/
usr/share/xsessions/
usr/share/xsessions/freegeek-session.desktop

All we care about is the folder xdg-freegeek. We makes changes its files. Test them with a simply built package, send the files on to be built into the final packages. Piece of cake.