dpkginv

Query installed packages on Debian/Ubuntu-based systems and emit inventory as JSON

Usage

$ gem install dpkginv
$ dpkginv

If you want to include a per-host unique identifier to avoid relying on FQDN, create a file /etc/dpkginv.conf containing:

system_id: <some_id_for_this_host>

You could, for example, set this to the value of /sys/class/dmi/id/product_uuid or /sys/hypervisor/uuid

Example

$ dpkginv
{
  "fqdn": "foo.example.com",
  "lsb": {
    "id": "Ubuntu",
    "release": "12.04",
    "codename": "precise",
    "description": "Ubuntu 12.04.1 LTS"
  },
  "kernel": {
    "release": "3.0.18-linode43",
    "machine": "i686"
  },
  "dpkg": {
    "accountsservice": {
      "selection_status": "install",
      "install_status": "installed",
      "version": "0.6.15-2ubuntu9.4",
      "arch": "i386"
    },
    "adduser": {
      "selection_status": "install",
      "install_status": "installed",
      "version": "3.113ubuntu2",
      "arch": "all"
    },
    <...>
  },
  "created_at": "2012-11-21T12:04:24-00:00",
  "system_id": "0d5d6fb2-4f08-4523-815d-d95bd0de2dc6"
}
$