Start building Ubuntu/Debina packages
Hans asked a while ago about packaging software for Ubuntu/Debian. Here are some hints and good pointers, I hope.
I have for a long time build RPM-packages for various distributions. When I began to create .debs this was booth good and bad to have a good knowledge about RPMs. Debian has a lot of utilities that makes things very smoothly, there are a lot of these tools I miss when creating RPM:s now days. On the other hand when you are used to describe your package in one .spec-file you may be a bit scared of all files you got in your debian-directory. Briefly described, the debian directory and .spec file has the same goal. They describe how to build the package from the source. I would say that if you are building a very simple package RPM:s are easier but as soon as you want to do more complex things deb:s are easier. for instance one thing you get help with creating debs is restarting daemons correct after upgrades etc, this is a mes for RPMs.
I will not describe exactly what to do when creating a package, instead I want to point out good sources and give some hints from my own experience.
Debian New Maintainers' Guide as well as Debian Policy Manual are must to use as a references. Ubuntu also has its own The Ubuntu Packaging Guide.
One thing that made it hard for me in the beginning were that there are so may ways that you can create packages in. Today, I think the easiest way to get a kick start in packaging is to follow the Debian New Maintainers' Guide. Start the from the beginning and create your package when you read it. Remember, the first one is the hardest.
You may need to install some packages before you start:
You may also take advantage by look how other packages are done. Download the source for packages with apt-get source sourcepackage.
When you are ready and your package may be of interest for others, please upload it to REVU.
I have for a long time build RPM-packages for various distributions. When I began to create .debs this was booth good and bad to have a good knowledge about RPMs. Debian has a lot of utilities that makes things very smoothly, there are a lot of these tools I miss when creating RPM:s now days. On the other hand when you are used to describe your package in one .spec-file you may be a bit scared of all files you got in your debian-directory. Briefly described, the debian directory and .spec file has the same goal. They describe how to build the package from the source. I would say that if you are building a very simple package RPM:s are easier but as soon as you want to do more complex things deb:s are easier. for instance one thing you get help with creating debs is restarting daemons correct after upgrades etc, this is a mes for RPMs.
I will not describe exactly what to do when creating a package, instead I want to point out good sources and give some hints from my own experience.
Debian New Maintainers' Guide as well as Debian Policy Manual are must to use as a references. Ubuntu also has its own The Ubuntu Packaging Guide.
One thing that made it hard for me in the beginning were that there are so may ways that you can create packages in. Today, I think the easiest way to get a kick start in packaging is to follow the Debian New Maintainers' Guide. Start the from the beginning and create your package when you read it. Remember, the first one is the hardest.
You may need to install some packages before you start:
- build-essential, which is a meta packages that install development tools.
- dh-make, converts source archives into debian package source.
- fakeroot, gives a fake root environment. I think it is much easier to work with than be in a change rooted environment.
- dpkg-dev, several tools to maintain build debs.
- dpkg-dev-el, a must if you use Emacs. Helps you edit the debian files.
- module-assistant, if you will create kernel module packages. This packages also include a good how to.
You may also take advantage by look how other packages are done. Download the source for packages with apt-get source sourcepackage.
When you are ready and your package may be of interest for others, please upload it to REVU.
Comments