Toll Free Numbers
  • Last 5 Forum Topics
    Last post

The Web Only This Site



  • MARC

    Mailing list ARChives
    - Search by -


    Computing Dictionary

  • Text Link Ads
  • LINUX man pages
  • Linux Man Page Viewer

    The following form allows you to view linux man pages.





           dh_* [-v] [-a] [-i] [-s] [--no-act] [-ppackage] [-Npackage] [-Ptmpdir]


           Debhelper is used to help you build a Debian package. The philosophy
           behind debhelper is to provide a collection of small, simple, and
           easily understood tools that are used in debian/rules to automate
           various common aspects of building a package. This means less work for
           you, the packager.  It also, to some degree means that these tools can
           be changed if Debian policy changes, and packages that use them will
           require only a rebuild to comply with the new policy.
           A typical debian/rules file that uses debhelper will call several
           debhelper commands in sequence, or use dh(1) to automate this process.
           Examples of rules files that use debhelper are in
           To create a new Debian package using debhelper, you can just copy one
           of the sample rules files and edit it by hand. Or you can try the dh-
           make package, which contains a dh_make command that partially automates
           the process. For a more gentle introduction, the maint-guide Debian
           package contains a tutorial about making your first package using


           Here is the list of debhelper commands you can use. See their man pages
           for additional documentation.
               automatically builds a package
               automatically cleans up after a build
               automatically configure a package prior to building
               automatically runs make install or similar
               automatically runs a package's test suites
               install bug reporting customization files into package build
               build Debian binary packages
               clean up package build directories
               Update Freedesktop icon caches
               install files into package build directories
               install and register SGML Catalogs
               install changelogs into package build directories
               install cron scripts into etc/cron.*
               install files into the DEBIAN directory
               install files used by debconf in package build directories
               create subdirectories in package build directories
               install documentation into package build directories
               register an Emacs add on package
               install example files into package build directories
               install GSettings overrides and set dependencies
               install if-up and if-down hooks
               install info files
               install upstart jobs or init scripts into package build directories
               install logcheck rulefiles into etc/logcheck/
               install logrotate config files
               install man pages into package build directories
               install ppp ip-up and ip-down files
               install udev rules files
               register a window manager
               register X fonts
               create symlinks in package build directories
               install lintian override files into package build directories
               list binary packages debhelper will act on
               automatically create shlibs file and call dpkg-gensymbols
               generate DEBIAN/md5sums file
               move files out of debian/tmp into subpackages
               calculates Perl dependencies and cleans up after MakeMaker
               perform cleanups in preparation for building a binary package
               calculate shared library dependencies
               strip executables, shared libraries, and some static libraries
               test directory before building Debian package
               ensure that a package is built as root
               register configuration files with ucf
               migrate usr/local directories to maintainer scripts
               deprecated no-op
               suid registration program (deprecated)
               undocumented.7 symlink program (deprecated no-op)
       Other Commands
           If a program's name starts with dh_, and the program is not on the
           above lists, then it is not part of the debhelper package, but it
           should still work like the other programs described on this page.


           Many debhelper commands make use of files in debian/ to control what
           they do. Besides the common debian/changelog and debian/control, which
           are in all packages, not just those using debhelper, some additional
           files can be used to configure the behavior of specific debhelper
           commands. These files are typically named debian/ (where
           package of course, is replaced with the package that is being acted
           For example, dh_installdocs uses files named debian/ to
           list the documentation files it will install. See the man pages of
           individual commands for details about the names and formats of the
           files they use.  Generally, these files will list files to act on, one
           file per line. Some programs in debhelper use pairs of files and
           destinations or slightly more complicated formats.
           Note for the first (or only) binary package listed in debian/control,
           debhelper will use debian/foo when there's no debian/ file.
           In some rare cases, you may want to have different versions of these
           files for different architectures or OSes. If files named
           debian/ or debian/ exist, where ARCH and
           OS are the same as the output of "dpkg-architecture -qDEB_HOST_ARCH" /
           "dpkg-architecture -qDEB_HOST_ARCH_OS", then they will be used in
           preference to other, more general files.
           Mostly, these config files are used to specify lists of various types
           of files. Documentation or example files to install, files to move, and
           so on.  When appropriate, in cases like these, you can use standard
           shell wildcard characters (? and * and [..] character classes) in the
           files.  You can also put comments in these files; lines beginning with
           # are ignored.
           The syntax of these files is intentionally kept very simple to make
           then easy to read, understand, and modify. If you prefer power and
           complexity, you can make the file executable, and write a program that
           outputs whatever content is appropriate for a given situation. When you
           do so, the output is not further processed to expand wildcards or strip
           -a, --arch
               Act on architecture dependent packages that should be built for the
               build architecture.
           -i, --indep
               Act on all architecture independent packages.
           -ppackage, --package=package
               Act on the package named package. This option may be specified
               multiple times to make debhelper operate on a given set of
           -s, --same-arch
               This used to be a smarter version of the -a flag, but the -a flag
               is now equally smart.
           -Npackage, --no-package=package
               Do not act on the specified package even if an -a, -i, or -p option
               lists the package as one that should be acted on.
               Do not act on the packages which have already been acted on by this
               debhelper command earlier (i.e. if the command is present in the
               package debhelper log).  For example, if you need to call the
               command with special options only for a couple of binary packages,
               pass this option to the last call of the command to process the
               rest of packages with default settings.
               Ignore the specified file. This can be used if debian/ contains a
               debhelper config file that a debhelper command should not act on.
               Note that debian/compat, debian/control, and debian/changelog can't
               be ignored, but then, there should never be a reason to ignore
               those files.
               For example, if upstream ships a debian/init that you don't want
               dh_installinit to install, use --ignore=debian/init
           -Ptmpdir, --tmpdir=tmpdir
               Use tmpdir for package build directory. The default is
               This little-used option changes the package which debhelper
               considers the "main package", that is, the first one listed in
               debian/control, and the one for which debian/foo files can be used
               instead of the usual debian/ files.
               This is used by dh(1) when passing user-specified options to all
               the commands it runs. If the command supports the specified option
               or option bundle, it will take effect. If the command does not
           -A, --all
               Makes files or other items that are specified on the command line
               take effect in ALL packages acted on, not just the first.


           The following command line options are supported by all of the
           dh_auto_* debhelper programs. These programs support a variety of build
           systems, and normally heuristically determine which to use, and how to
           use them.  You can use these command line options to override the
           default behavior.  Typically these are passed to dh(1), which then
           passes them to all the dh_auto_* programs.
           -Sbuildsystem, --buildsystem=buildsystem
               Force use of the specified buildsystem, instead of trying to auto-
               select one which might be applicable for the package.
           -Ddirectory, --sourcedirectory=directory
               Assume that the original package source tree is at the specified
               directory rather than the top level directory of the Debian source
               package tree.
           -B[directory], --builddirectory=[directory]
               Enable out of source building and use the specified directory as
               the build directory. If directory parameter is omitted, a default
               build directory will chosen.
               If this option is not specified, building will be done in source by
               default unless the build system requires or prefers out of source
               tree building.  In such a case, the default build directory will be
               used even if --builddirectory is not specified.
               If the build system prefers out of source tree building but still
               allows in source building, the latter can be re-enabled by passing
               a build directory path that is the same as the source directory
               Enable parallel builds if underlying build system supports them.
               The number of parallel jobs is controlled by the DEB_BUILD_OPTIONS
               environment variable ("Debian Policy, section 4.9.1") at build
               time. It might also be subject to a build system specific limit.
               If this option is not specified, debhelper currently defaults to
               not allowing parallel package builds.
               This option implies --parallel and allows further limiting the
               number of jobs that can be used in a parallel build. If the package
               build is known to only work with certain levels of concurrency, you
               can set this to the maximum level that is known to work, or that
               you wish to support.
           Tell debhelper what compatibility level to use by writing a number to
           debian/compat. For example, to turn on v9 mode:
             % echo 9 > debian/compat
           Your package will also need a versioned build dependency on a version
           of debhelper equal to (or greater than) the compatibility level your
           package uses. So for compatibility level 9, ensure debian/control has:
             Build-Depends: debhelper (>= 9)
           Unless otherwise indicated, all debhelper documentation assumes that
           you are using the most recent compatibility level, and in most cases
           does not indicate if the behavior is different in an earlier
           compatibility level, so if you are not using the most recent
           compatibility level, you're advised to read below for notes about what
           is different in earlier compatibility levels.
           These are the available compatibility levels:
           v1  This is the original debhelper compatibility level, and so it is
               the default one. In this mode, debhelper will use debian/tmp as the
               package tree directory for the first binary package listed in the
               control file, while using debian/package for all other packages
               listed in the control file.
               This mode is deprecated.
           v2  In this mode, debhelper will consistently use debian/package as the
               package tree directory for every package that is built.
               This mode is deprecated.
           v3  This mode works like v2, with the following additions:
               -       Debhelper config files support globbing via * and ?, when
                       appropriate. To turn this off and use those characters raw,
                       just prefix with a backslash.
               -       dh_makeshlibs makes the postinst and postrm scripts call
               -       Every file in etc/ is automatically flagged as a conffile
                       by dh_installdeb.
               This mode is deprecated.
           v4  Changes from v3 are:
               -       dh_makeshlibs -V will not include the Debian part of the
                       version number in the generated dependency line in the
               -       Comments are ignored in debhelper config files.
               -       dh_strip --dbg-package now specifies the name of a package
                       to put debugging symbols in, not the packages to take the
                       symbols from.
               -       dh_installdocs skips installing empty files.
               -       dh_install errors out if wildcards expand to nothing.
           v6  Changes from v5 are:
               -       Commands that generate maintainer script fragments will
                       order the fragments in reverse order for the prerm and
                       postrm scripts.
               -       dh_installwm will install a slave manpage link for
                       x-window-manager.1.gz, if it sees the man page in
                       usr/share/man/man1 in the package build directory.
               -       dh_builddeb did not previously delete everything matching
                       DH_ALWAYS_EXCLUDE, if it was set to a list of things to
                       exclude, such as CVS:.svn:.git. Now it does.
               -       dh_installman allows overwriting existing man pages in the
                       package build directory. In previous compatibility levels
                       it silently refuses to do this.
           v7  Changes from v6 are:
               -       dh_install, will fall back to looking for files in
                       debian/tmp if it doesn't find them in the current directory
                       (or wherever you tell it look using --sourcedir). This
                       allows dh_install to interoperate with dh_auto_install,
                       which installs to debian/tmp, without needing any special
               -       dh_clean will read debian/clean and delete files listed
               -       dh_clean will delete toplevel *-stamp files.
               -       dh_installchangelogs will guess at what file is the
                       upstream changelog if none is specified.
           v8  Changes from v7 are:
               -       Commands will fail rather than warning when they are passed
                       unknown options.
               -       dh_makeshlibs will run dpkg-gensymbols on all shared
                       libraries that it generates shlibs files for. So -X can be
               Changes from v8 are:
               -       Multiarch support. In particular, dh_auto_configure passes
                       multiarch directories to autoconf in --libdir and
               -       dh is aware of the usual dependencies between targets in
                       debian/rules.  So, "dh binary" will run any build, build-
                       arch, build-indep, install, etc targets that exist in the
                       rules file. There's no need to define an explicit binary
                       target with explicit dependencies on the other targets.
               -       dh_strip compresses debugging symbol files to reduce the
                       installed size of -dbg packages.
               -       dh_auto_configure does not include the source package name
                       in --libexecdir when using autoconf.
               -       dh does not default to enabling --with=python-support
               -       All of the dh_auto_* debhelper programs and dh set
                       environment variables listed by dpkg-buildflags, unless
                       they are already set. They support DEB_BUILD_OPTIONS=noopt
               -       dh_auto_configure passes CFLAGS to perl Makefile.PL and
               -       dh_strip puts separated debug symbols in a location based
                       on their build-id.
               -       Executable debhelper config files are run and their output
                       used as the configuration.
           v10 This compatibility level is still open for development; use with
               Changes from v9 are:
               -       None yet..


       Multiple binary package support
           If your source package generates more than one binary package,
           debhelper programs will default to acting on all binary packages when
           run. If your source package happens to generate one architecture
           dependent package, and another architecture independent package, this
           is not the correct behavior, because you need to generate the
           architecture dependent packages in the binary-arch debian/rules target,
           and the architecture independent packages in the binary-indep
           debian/rules target.
           If a script does not exist at all and debhelper needs to add something
           to it, then debhelper will create the complete script.
           All debhelper commands that automatically generate code in this way let
           it be disabled by the -n parameter (see above).
           Note that the inserted code will be shell code, so you cannot directly
           use it in a Perl script. If you would like to embed it into a Perl
           script, here is one way to do that (note that I made sure that $1, $2,
           etc are set with the set command):
             my $temp="set -e\nset -- @ARGV\n" . << 'EOF';
             system ($temp) / 256 == 0
                   or die "Problem with debhelper scripts: $!";
       Automatic generation of miscellaneous dependencies.
           Some debhelper commands may make the generated package need to depend
           on some other packages. For example, if you use dh_installdebconf(1),
           your package will generally need to depend on debconf. Or if you use
           dh_installxfonts(1), your package will generally need to depend on a
           particular version of xutils. Keeping track of these miscellaneous
           dependencies can be annoying since they are dependent on how debhelper
           does things, so debhelper offers a way to automate it.
           All commands of this type, besides documenting what dependencies may be
           needed on their man pages, will automatically generate a substvar
           called ${misc:Depends}. If you put that token into your debian/control
           file, it will be expanded to the dependencies debhelper figures you
           This is entirely independent of the standard ${shlibs:Depends}
           generated by dh_makeshlibs(1), and the ${perl:Depends} generated by
           dh_perl(1).  You can choose not to use any of these, if debhelper's
           guesses don't match reality.
       Package build directories
           By default, all debhelper programs assume that the temporary directory
           used for assembling the tree of files in a package is debian/package.
           Sometimes, you might want to use some other temporary directory. This
           is supported by the -P flag. For example, "dh_installdocs
           -Pdebian/tmp", will use debian/tmp as the temporary directory. Note
           that if you use -P, the debhelper programs can only be acting on a
           single package at a time. So if you have a package that builds many
           binary packages, you will need to also use the -p flag to specify which
           binary package the debhelper program will act on.
           Debhelper includes support for udebs. To create a udeb with debhelper,
           add "Package-Type: udeb" to the package's stanza in debian/control.
               Set to 1 to enable no-act mode.
               Anything in this variable will be prepended to the command line
               arguments of all debhelper commands.
               When using dh(1), it can be passed options that will be passed on
               to each debhelper command, which is generally better than using
               If set, this adds the value the variable is set to to the -X
               options of all commands that support the -X option. Moreover,
               dh_builddeb will rm -rf anything that matches the value in your
               package build tree.
               This can be useful if you are doing a build from a CVS source tree,
               in which case setting DH_ALWAYS_EXCLUDE=CVS will prevent any CVS
               directories from sneaking into the package you build. Or, if a
               package has a source tarball that (unwisely) includes CVS
               directories, you might want to export DH_ALWAYS_EXCLUDE=CVS in
               debian/rules, to make it take effect wherever your package is
               Multiple things to exclude can be separated with colons, as in


               A set of example debian/rules files that use debhelper.
               Debhelper web site.


           Joey Hess <>

    9.20120115ubuntu3 2012-03-02 debhelper(7)


  • Linux

    The Distributions


    The Software


    The News


  • Toll Free

Toll Free Numbers
Copyright © 1999 - 2016 by LinuxGuruz