---
name: "debootsnap"
section: "1"
platform: "linux"
package: "devscripts"
version: "2.25.15+deb13u1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/debootsnap"
---

# debootsnap(1)

create debian chroot using snapshot.debian.org

## NAME

debootsnap - create debian chroot using snapshot.debian.org

## DESCRIPTION

usage: debootsnap \[-h\] \[--architecture ARCHITECTURE\] \[--ignore-notfound\]

-

  \[--cache CACHE\] \[--port PORT\] \[--nocache\] (**--buildinfo** BUILDINFO \| **--packages** PACKAGES) \[--sources-list-only\] \[output\]

Combines debootstrap and snapshot.debian.org to create a chroot tarball with exact package versions from the past either to reproduce bugs or to test source package reproducibility.

To obtain a list of packages run the following command on one machine:

-

  `$ dpkg-query --showformat '${binary:Package}=${Version}\n' --show`

And pass the output to debootsnap with the **--packages** argument. The result will be a chroot tarball with precisely the package versions as they were found on the system that ran dpkg-query.

### positional arguments:

- output

  path to output chroot tarball

### options:

- **-h**, **--help**

  show this help message and exit

- **--architecture**, **--nativearch** ARCHITECTURE

  native architecture of the chroot. Ignored if **--buildinfo** is used. Foreign architectures are inferred from the package list. Not required if packages are architecture qualified.

- **--ignore-notfound**

  only warn about packages that cannot be found on snapshot.debian.org instead of exiting

- **--cache** CACHE

  cache directory **--** by default $TMPDIR is used

- **--port** PORT

  manually choose port number for the apt cache instead of automatically choosing a free port

- **--nocache**

  disable cache

- **--buildinfo** BUILDINFO

  use packages from a buildinfo file. Read buildinfo file from standard input if value is "-".

- **--packages**, **--pkgs** PACKAGES

  list of packages, optional architecture and version, separated by comma or linebreak. Read list from standard input if value is "-". Read list from a file if value starts with "./" or "/". The option can be specified multiple times. Package name, version and architecture are separated by one or more characters that are not legal in the respective adjacent field. Leading and trailing illegal characters are allowed. Example: pkg1:arch=ver1,pkg2:arch=ver2

- **--sources-list-only**

  only query metasnap.debian.net and print the sources.list needed to create chroot and exit

## EXAMPLES

On one system run:

-

  `$ dpkg-query --showformat '${binary:Package}=${Version}\n' --show > pkglist`

Then copy over "pkglist" and on another system run:

-

  `$ debootsnap --pkgs=./pkglist > ./chroot.tar`

Or use a buildinfo file as input:

-

  `$ debootsnap --buildinfo=./package.buildinfo > ./chroot.tar`

A tarball of a chroot with precisely the requested package versions then be found in the file \`./chroot.tar\`.
