Debian Packaging 101 (Part 2) ============================= In previous part of this series, I talked about the structure of Debian packages. Today, I will present the different tools used and suggest an environment setup for packaging. Most users of Debian-based distributions, like Ubuntu, are familiar with the package management utilities. If you aren't, well I wonder why you reading this. The main purposes of these utilities are, handling the packages' dependencies and providing a mechanism for installing, removing and upgrading packages. These two things are done by APT (i.e., ``apt-get``) and ``dpkg``, respectively. Your job, as a packager, is to give to these tools enough information, so they can do theirs correctly. That's why packaging is not simply compiling the program and making an archive with the resulting binaries. The most basic tool you will need, to create a package, is the ``make`` utility. So if you aren't comfortable using ``make``, start by learning how to use it before jumping into packaging. A good starting point is the [GNU Make Manual](http://www.gnu.org/software/make/manual/). ``Make`` is used to specify the build process of packages, into a set of rules. Each rule describes a specific task to be done in the process, such as the compiling, or applying patches. These rules are then used, by other tools, to create the package archive (usually ending with the .deb extension). You will also need to learn the specific rules you need to define, and what they are supposed to do.