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

# dget(1)

Download Debian source and binary packages

## NAME

dget - Download Debian source and binary packages

## SYNOPSIS

- **dget** \[*options*\] *URL* ...

  - **dget** \[*options*\] \[**--all**\] *package*\[**=***version*\] ...

  ## DESCRIPTION

**dget** downloads Debian packages.  In the first form, **dget** fetches the requested URLs.  If this is a .dsc or .changes file, then **dget** acts as a source-package aware form of **wget**: it also fetches any files referenced in the .dsc/.changes file.  The downloaded source is then checked with **dscverify** and, if successful, unpacked by **dpkg-source**.

In the second form, **dget** downloads a *binary* package (i.e., a *.deb* file) from the Debian mirror configured in /etc/apt/sources.list(.d).  If a version number is specified, this version of the package is requested.  With **--all**, the list of all binaries for the source package *package* is extracted from the output of `"apt-cache showsrc package"`.

In both cases dget is capable of getting several packages and/or URLs at once.

(Note that *.udeb* packages used by debian-installer are located in separate packages files from *.deb* packages. In order to use *.udebs* with **dget**, you will need to have configured **apt** to use a packages file for *component*/*debian-installer*).

Before downloading files listed in .dsc and .changes files, and before downloading binary packages, **dget** checks to see whether any of these files already exist.  If they do, then their md5sums are compared to avoid downloading them again unnecessarily.  **dget** also looks for matching files in */var/cache/apt/archives* and directories given by the **--path** option or specified in the configuration files (see below).  Finally, if downloading (.orig).tar.gz or .diff.gz files fails, dget consults **apt-get source --print-uris**.  Download backends used are **curl** and **wget**, looked for in that order.

**dget** *package* should be implemented in **apt-get install -d**.

**dget** was written to make it easier to retrieve source packages from the web to sponsor uploads, and thus the primary use case is downloading binary and source packages from a URL.  For fetching packages from apt repositories it is easier to simply run **apt-get download** *package* and **apt-get source** *package* with optional **--download-only** to not uncompress it with **dpkg-source** automatically, or *package*=1.22-1 to define an exact version instead of just the latest version.

## OPTIONS

- **-a**, **--all**

  Interpret *package* as a source package name, and download all binaries as found in the output of "apt-cache showsrc *package*".  If *package* is arch-qualified, then only binary packages which are "Arch: all", "Arch: any", or "Arch: `$arch`" will be downloaded.

- **-b**, **--backup**

  Move files that would be overwritten to *./backup*.

- **-q**, **--quiet**

  Suppress **wget**/**curl** non-error output.

- **-d**, **--download-only**

  Do not run **dpkg-source -x** on the downloaded source package.  This can only be used with the first method of calling **dget**.

- **-x**, **--extract**

  Run **dpkg-source -x** on the downloaded source package to unpack it. This option is the default and can only be used with the first method of calling **dget**.

- **-u**, **--allow-unauthenticated**

  Do not attempt to verify the integrity of downloaded source packages using **dscverify**.

- **--build**

  Run **dpkg-buildpackage -b -uc** on the downloaded source package.

- **--path** *DIR*\[**:***DIR* ...\]

  In addition to */var/cache/apt/archives*, **dget** uses the colon-separated list given as argument to **--path** to find files with a matching md5sum.  For example: "--path /srv/pbuilder/result:/home/cb/UploadQueue".  If DIR is empty (i.e., "--path ''" is specified), then any previously listed directories or directories specified in the configuration files will be ignored. This option may be specified multiple times, and all of the directories listed will be searched; hence, the above example could have been written as: "--path /srv/pbuilder/result --path /home/cb/UploadQueue".

- **-k**, **--insecure**

  Allow SSL connections to untrusted hosts.

- **--no-cache**

  Bypass server-side HTTP caches by sending a **Pragma: no-cache** header.

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

  Show a help message.

- **-V**, **--version**

  Show version information.

## CONFIGURATION VARIABLES

The two configuration files */etc/devscripts.conf* and *~/.devscripts* are sourced by a shell in that order to set configuration variables.  Command line options can be used to override configuration file settings.  Environment variable settings are ignored for this purpose.  The currently recognised variable is:

- **DGET\_PATH**

  This can be set to a colon-separated list of directories in which to search for files in addition to the default */var/cache/apt/archives*.  It has the same effect as the **--path** command line option.  It is not set by default.

- **DGET\_UNPACK**

  Set to 'no' to disable extracting downloaded source packages.  Default is 'yes'.

- **DGET\_VERIFY**

  Set to 'no' to disable checking signatures of downloaded source packages.  Default is 'yes'.

## EXAMPLES

Download all binary *.deb* files for current and previous version of a package, and compare them byte-for-byte with **diffoscope**:

```
  mkdir previous latest
  (cd latest && dget --all mypackage=1.2-1)
  (cd previous && dget --all mypackage) # download latest 1.2-2 in this example
  diffoscope --html=diffoscope.html previous/ latest/
```

Download the source package of the current version in apt repository and the to-be-reviewed new version at mentors.debian.net, and compare them with **debdiff**:

```
  dget https://mentors.debian.net/debian/pool/main/m/mypackage/mypackage_1.2-3.dsc
  apt-get source mypackage=1.2-2
  debdiff --from mypackage_1.2-2.dsc --to mypackage_1.2-3.dsc
```

## BUGS AND COMPATIBILITY

**dget --all** *srcpkg* should be implemented in **apt-get download** *srcpkg* so **apt-get** could download all binary packages based on source package name.

Before devscripts version 2.10.17, the default was not to extract the downloaded source. Set DGET\_UNPACK=no to revert to the old behaviour.

## AUTHOR

This program is Copyright (C) 2005-2013 by Christoph Berg \<myon@debian.org\>. Modifications are Copyright (C) 2005-06 by Julian Gilbey \<jdg@debian.org\>.

This program is licensed under the terms of the GPL, either version 2 of the License, or (at your option) any later version.

## SEE ALSO

**apt-get**(1), [**curl**(1)](/curl/1.md), [**debcheckout**(1)](/debcheckout/1.md), [**debdiff**(1)](/debdiff/1.md), [**dpkg-source**(1)](/dpkg-source/1.md), [**wget**(1)](/wget/1.md)
