OnWorks favicon

dh_linktree - Online in the Cloud

Run dh_linktree in OnWorks free hosting provider over Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator

This is the command dh_linktree that can be run in the OnWorks free hosting provider using one of our multiple free online workstations such as Ubuntu Online, Fedora Online, Windows online emulator or MAC OS online emulator



dh_linktree - create symlink trees to embed files from other packages


dh_linktree [debhelper options] [-A] [-Xitem] [action source destination ...]


dh_linktree is a debhelper program that creates symlink trees in package build
directories. The symlinks points to files provided by other packages and which have to be
present during build. As such you have to put the packages providing the destination files
in the build dependencies. For any symlink it creates, it will add to ${misc:Depends} the
dependency that is required to ensure that the target of the symlink is available.


This tool has been developed to handle the case of embedded libraries written in
interpreted languages (javascript, PHP, etc.). You usually want to replace the embedded
copy by the packaged one except if they are not compatible. Since both versions evolve
separately, you might have to frequently switch between the embedded version and the
packaged one.

If the embedded library had been replaced by a symlink to the top-level directory, you
would have to add code to the preinst/postinst every time that you switch from one to the
other (to replace the real directory with a symlink and vice-versa). With a symlink tree,
dpkg is doing everything by itself.

Since symlink trees are created statically at build-time, they are not very future-proof
and have a risk to miss some files introduced by a newer version of the package providing
the file tree which is duplicated. That's why the generated dependencies generally ensure
that the same upstream version be used at run-time than at build-time.


dh_linktree accepts arguments by set of 3. One action followed by source and destination
file/directories. Symlinking files works just like dh_link but symlinking directories will
recreate the same directory hierarchy and all individual files will be turned into

The source files are the already existing files that will be symlinked from. The
destination files are the symlinks that will be created.

Be sure you do specify the full filename to both the source and destination files (unlike
what you would do if you were using something like ln(1)).

dh_linktree will generate symlinks that comply with Debian policy: absolute when policy
says they should be absolute, and relative links with as short a path as possible. It will
also create any subdirectories it needs to to put the symlinks in.

Note that dh_linktree will not be executed automatically by dh, you need to use dh $@
--with linktree to get it hooked in the list of dh_* commands automatically executed by

Use dh_linktree online using onworks.net services