dpkg-parsechangelog - Linux


The dpkg-parsechangelog command is used to parse a Debian changelog file and extract metadata about the package. It is primarily utilized for package management in Debian-based Linux distributions.


dpkg-parsechangelog [options] <changelog-file>


  • -l : Specifies the fields to be extracted from the changelog. Default: "Version, Source, Maintainer, Changed-By"
  • -F : Sets the output format. Default: "Fields"
  • -f : Specifies the output file. Default: standard output
  • -c: Compress output using gzip
  • -d: Decompress input if it is gzipped
  • -v: Verbose output
  • -h: Display help and exit


Extract basic metadata from a changelog:

dpkg-parsechangelog -l Version,Source,Maintainer mypackage.changelog

Extract all fields, sorted by version:

dpkg-parsechangelog -l all -F Auto mypackage.changelog | sort -k 1

Save output to a file in JSON format:

dpkg-parsechangelog -F JSON -f mypackage.json mypackage.changelog

Common Issues

  • Invalid changelog file: Ensure that the provided changelog file is a valid Debian changelog.
  • Missing fields: Some changelog files may not contain all requested fields.
  • Parsing errors: Verify that the changelog file is well-formed and follows the Debian changelog format.


dpkg-parsechangelog can be combined with other commands to automate package management tasks. For instance:

dpkg-parsechangelog -l Version,Source | while read version source; do echo "$version" "$source"; done

# Iterate over all packages in a changelog and update their versions
find . -name \*.changes | while read changelog; do dpkg-parsechangelog -l Version $changelog | cut -f1 -d' '; done | xargs apt-get update

Related Commands

  • dpkg-deb: Manipulate Debian package files
  • apt-get: Command-line package manager for Debian and Ubuntu
  • checkchangelog: Verify Debian changelog files