lintian
and linda
packages
Run lintian(1)
and linda(1)
on your .changes file;
these programs will check for many common packaging errors. The commands are:
lintian -i gentoo_0.9.12-1_i386.changes linda -i gentoo_0.9.12-1_i386.changes
Of course, replace the filename with the name of the .changes file generated for your package. If it appears that there are some errors (lines beginning with E:), read the explanation (the N: lines), correct mistakes, and rebuild as described in Complete rebuild, Section 6.1. If there are lines that begin with W:, those are warnings, so tune the package or verify that the warnings are spurious (and make Lintian overrides; see the documentation for details).
Note that you can build the package with dpkg-buildpackage
, run
lintian
, and linda
all in one command with
debuild(1)
.
mc
command
You can unpack contents of *.deb
package with
dpkg-deb(1)
command. You can list contents of a generated Debian
package with debc(1)
.
This can be made into an intuitive process by using a file manager like
mc(1)
which will let you browse not only the contents of
*.deb
package files but also *.diff.gz
and
*.tar.gz
files.
Be on the lookout for extra unneeded files or zero length files, both in the binary and source package. Often cruft doesn't get cleaned up properly; adjust your rules file to compensate for that.
Tips: `zgrep ^+++ ../gentoo_0.9.12-1.diff.gz' will give you a list of your changes/additions to the source files, and `dpkg-deb -c gentoo_0.9.12-1_i386.deb' or `debc gentoo_0.9.12-1_i386.changes' will list the files in the binary package.
debdiff
command
You can compare file lists in two binary Debian packages with
debdiff(1)
command. This is useful for verifying that no files
have been unintentionally misplaced or removed, and no other inadvertent
changes were made when updating packages. You can check group of
*.deb
files simply by `debdiff old-package.change
new-package.change'.
interdiff
command
You can compare two diff.gz
files with interdiff(1)
command. This is useful for verifying that no inadvertent changes were made to
the source by the maintainer when updating packages. Run `interdiff -z
old-package.diff.gz new-package.diff.gz'.
debi
command
Install the package to test it yourself, e.g. using the debi(1)
command as root. Try to install and run it on machines other than your own and
watch closely for any warnings or errors both during the installation and while
the program is being run.
pbuilder
package
For clean room (chroot) build environment to verify the build dependencies,
pbuilder
package is very useful. This ensures clean build from
source under the auto-builder for different architectures and avoid the
severity serious FTBFS (Fails To Build From Source) bug which is always in the
RC (release critical) category. See http://buildd.debian.org/
for more
on the Debian package auto-builder.
The most basic use of pbuilder
package is the direct invocation of
pbuilder
command from root. For example, issue following commands
in the directory where .orig.tar.gz
, .diff.gz
, and
.dsc
exist to build a package.
root # pbuilder create # if second time, pbuilder update root # pbuilder build foo.dsc
The newly build packages will be located in
/var/cache/pbuilder/result/
with root ownership.
The pdebuild
command helps you to use pbuilder
package functions from the normal user account. From the root of source tree
while having orig.tar.gz
file in its parent directory, you issue
following commands:
$ sudo pbuilder create # if second time, sudo pbuilder update $ pdebuild
The newly build packages will be located in
/var/cache/pbuilder/result/
with non-root ownership. [2]
If you want to add additional apt source to be used by the
pbuilder
package, you set OTHERMIRROR in
~/.pbuilderrc
or /etc/pbuilderrc
and run (for sarge)
$ sudo pbuilder update --distribution sarge --override-config
The use of --override-config is needed to update apt source within chroot environment.
See http://www.netfort.gr.jp/~dancer/software/pbuilder.html
,
pdebuild(1)
, pbuilderrc(5)
, and
pbuilder(8)
.
Debian New Maintainers' Guide
version 1.2.3, 18 January 2005.joy-mg@debian.org