Ubuntu/Debian packaging
How to package a C++ program into a debian package
First do all all the steps in:
I will be doing a walk through of the example given in the Packaging New Software in which you will be deploying a simple hello world program.
I first created a directory hello_package, in my ubuntu package deployment workspace, and downloaded the hello world program as outlined in Packaging New Software:
$ pwd
$ /home/username/ubuntu_packaging/hello_package
$ ls
$ hello-2.7 hello-2.7.tar.gz
After building hello-2.7 and installing it, I run bzr dh-make
$ bzr dh-make hello 2.7 hello-2.7.tar.gz
which takes the following options:
bzr dh-make PACKAGE_NAME VERSION TARBALL (see builddeb-plugin)
and creates an additional directory (hello) and new tarball (hello_2.7.orig.tar.gz):
$ pwd
$ /home/username/ubuntu_packaging/hello_package
$ ls
$ hello hello-2.7 hello_2.7.orig.tar.gz hello-2.7.tar.gz
After laboriously changing all files in hello/debian as prescribed and building the debian package more directories are created:
$ pwd
$ /home/username/ubuntu_packaging/hello_package
$ ls
$ build-area hello hello-2.7 hello_2.7-0ubuntu1_amd64.changes hello_2.7-0ubuntu1_amd64.deb hello_2.7-0ubuntu1.debian.tar.gz hello_2.7-0ubuntu1.dsc hello_2.7.orig.tar.gz hello-2.7.tar.gz
- hello_2.7-0ubuntu1_amd64.changes
- hello_2.7-0ubuntu1_amd64.deb
- hello_2.7-0ubuntu1.debian.tar.gz
- hello_2.7-0ubuntu1.dsc
On launchpad you have to create a new PPA for this project and upload your package to it, see PPA-Uploading. Once this is down you are nearly ready to sudo apt-get install this package. Before this you have to add your ppa to your source packages. I ran the following command:
sudo add-apt-repository ppa:gpldecha/ppa-hello
A simple hello program which displays a greeting.
More info: https://launchpad.net/~gpldecha/+archive/ubuntu/ppa-hello
Press [ENTER] to continue or ctrl-c to cancel adding it
Error: signing key fingerprint does not exist
However it did not work, I got: Error: signing key fingerprint does not exist. This is because you frist have to added the public key of the PPA to your package sources, see Added key for signed PPA