Basic Debian Packaging
Jump to navigation
Jump to search
overview
this class should give a basic understanding of how to build a debian package from some common types of source tarballs or repositories, with the assistance of several helper utilities.
background
prerequisites
- basic familiarity with commandline
- basic familiarity with linux
- Command Line 2
- basic understanding of apt and dpkg
suggested background
- rudimentary understanding of building and compiling software
- basic understanding of cvs or subversion
topics covered
finding software
- is it already packaged:
- packages.debian.org
- other sources of software:
- freshmeat.net
- sourceforge.net
- google.com
environment variables
- DEBEMAIL
export DEBEMAIL=yourname@example.com
- DEBFULLNAME
export DEBFULLNAME="Your Name Here"
- EDITOR
export EDITOR=nano
creating debian directory
- using dh_make (package dh-make)
- dh-make-perl
contents of a debian directory
- copyright
- changelog
- dch
- version
- release
- control
- rules
- other files
- *.install
- *.manpages
- *.examples
- *.init
- *.postinst
- other examples: *.ex and *.EX files
cdbs basics:
- magic snippet for a complete debian/rules file:
#!/usr/bin/make -f # uncomment the next line if using a makefile-based source #include /usr/share/cdbs/1/class/makefile.mk # uncomment the next line if using a autotools-based source include /usr/share/cdbs/1/class/autotools.mk include /usr/share/cdbs/1/rules/debhelper.mk
- add cdbs to build-depends or build-depends-indep debian/control
debuild
- commandline arguments: -uc -us
basic troubleshooting
- lesspipe
lesspipe ../hello_2.1.1_i386.deb | less
- build dependencies
- package dependencies
- install in a clean debian base-install
- pbuilder/sbuild
lintian
- debian policy checker
lintian -i ../hello_2.1.1_i386.deb