dpkg-repack - put an unpacked .deb file back together
dpkg-repack [--root=dir] [--arch=architecture] [--generate] packagename
dpkg-repack creates a .deb file out of a Debian package that has
already been installed on your system.
If any changes have been made to the package while it was unpacked (ie,
conffiles files in /etc modified), the new package will inherit the
changes. (There are exceptions to this, including changes to
configuration files that are not conffiles, including those managed by
This utility can make it easy to copy packages from one computer to
another, or to recreate packages that are installed on your system, but
no longer available elsewhere.
Note: dpkg-repack will place the created package in the current
Take package from filesystem rooted on <dir>. This is useful if,
for example, you have another computer nfs mounted on /mnt, then
you can use --root=/mnt to reassemble packages from that
Make the package be for a different architecture. dpkg-repack
cannot tell if an installed package is architecture all or is
specific to the system’s architecture, so by default it uses
dpkg --print-architecture to determine the build architecture.
If you know the package is architecture all, you can use this
option to force dpkg-repack to use the right architecture.
Generate a temporary directory suitable for building a package
from, but do not actually create the package. This is useful if
you want to move files around in the package before building it.
The package can be built from this temporary directory by
running "dpkg --build", passing it the generated directory.
The name of the package to attempt to repack. Multiple packages
can be listed.
This program accesses the dpkg database directly in places, querying
for data that cannot be gotten via dpkg.
There is a tricky situation that can occur if you dpkg-repack a package
that has modified conffiles. The modified conffiles are packed up. Now
if you install the package, dpkg does not realize that the conffiles in
it are modified. So if you later upgrade to a new version of the
package, dpkg will believe that the old (repacked) package has older
conffiles than the new version, and will silently replace the conffiles
with those in the package you are upgrading to.
While dpkg-repack can be run under fakeroot and will work most of the
time, fakeroot -u must be used if any of the files to be repacked are
owned by non-root users. Otherwise the package will have them owned by
root. dpkg-repack will warn if you run it under fakeroot without the
Joey Hess <email@example.com>