Debian Packaging Notes
checkinstall
Use checkinstall
as a quick way to create a basic Debian package that can be used to
install binaries for the same architecture as the host machine. However,
debmake may be more effective for about the same effort.
(See below.)
The process basically works as follows:
$ ./configure
$ make
$ sudo checkinstall
However, it may not provide a perfect match for what your own install script actually does.
Creating a Debian
Package Using debmake
$ sudo apt-get install build-essential debmake
$ mv foo-1.0.0.tar.gz foo_1.0.0.orig.tar.gz
$ tar xf foo_1.0.0.orig.tar.gz
$ cd foo_1.0.0
$ export DEBEMAIL=foo@bar.example.com
$ export DEBFULLNAME='Foo Bar'
$ export EDITOR=/usr/bin/vim
$ debmake
$ debuild
You can speed up the build, if you have multiple CPUs with:
$ debuild -uc -us -j4
The build will finish with a run of lintian.
lintian is likely to report errors and warnings, but
debmake is likely to have provided a working Debian package
of the application which can be used to install to local machines etc.
However, the package will need more work before it can be published.
Check the contents:
$ dpkg --contents ../foo_1.0.0-1_all.deb
Check dependencies:
$ dpkg --info ../foo_1.0.0-1_all.deb
After testing the Debian package, it can be installed together with any required dependencies with from within the extracted source folder:
$ sudo debi
Otherwise:
$ sudo apt-get install ../foo_1.0.0-1_all.deb
Note: the .deb file needs to be a path
like reference to the file otherwise apt-get tries to deal
with it as a download. e.g. if the .deb file is in the
current directory, precede the file name with ./ and
apt-get will handle it as a local file, not a package to be
downloaded.
See:
Subsequent Releases
Use dch to update the Debian changelog.
For a new upstream release:
$ dch --release-heuristic log -v 1.0.1-1
For a new release of the same upstream release:
$ dch --release-heuristic log -i
To edit the changelog:
$ dch --edit
References
- https://wiki.debian.org/Packaging/Intro
- Debian Wiki—PackagingInSeconds
- Debian Wiki—DebianPackagingHandbook
- https://www.debian.org/doc/manuals/maint-guide/
- Debian Wiki—CheckInstall
- checkinstall man page
– Frank Dean - 14 May 2024
Related Topics: DebianTips