dpkg -V , What does the output mean?

I ran DPKG Verify on all packges and got this output and I don't know what it means :

??5?????? c /etc/lightdm/lightdm-gtk-greeter.conf
??5?????? c /etc/default/chromium-browser
??5??????   /usr/local/etc/no-ip2.conf
??5??????   /var/lib/dokuwiki/data/cache/_dummy
??5?????? c /etc/xdg/menus/mate-settings.menu
??5?????? c /etc/apache2/apache2.conf
??5?????? c /etc/apt/apt.conf.d/10periodic
??5?????? c /etc/sysctl.conf
??5??????   /var/lib/xine/xine.desktop
??5??????   /boot/vmlinuz-4.4.0-21-generic
??5??????   /usr/lib/python3/dist-packages/cupshelpers/__pycache__/cupshelpers.cpython-35.pyc
??5??????   /usr/lib/python3/dist-packages/cupshelpers/__pycache__/xmldriverprefs.cpython-35.pyc
??5??????   /usr/lib/python3/dist-packages/cupshelpers/__pycache__/config.cpython-35.pyc
??5??????   /usr/lib/python3/dist-packages/cupshelpers/__pycache__/openprinting.cpython-35.pyc
??5??????   /usr/lib/python3/dist-packages/cupshelpers/__pycache__/__init__.cpython-35.pyc
??5??????   /usr/lib/python3/dist-packages/cupshelpers/__pycache__/ppds.cpython-35.pyc
??5??????   /usr/lib/python3/dist-packages/cupshelpers/__pycache__/installdriver.cpython-35.pyc
??5?????? c /etc/xdg/autostart/mate-volume-control-applet.desktop
??5?????? c /etc/libvirt/qemu/networks/default.xml

dpkg -V or dpkg --verify checks the integrity of packages(s) by comparing the metadata stored in it's database and the file paths. You can select the output format using --verify-format option but it currently only supports rpm format. In rpm format only the paths that failed any check are shown.

Take an example of failed check:

??5?????? c /etc/lightdm/lightdm-gtk-greeter.conf

Here:

  • ? indcates that the check failed e.g. due to permission issue

  • The third charqacter, 5, indicates that it has passed the md5sum() check

  • c on the second column indicates the attribute checked, currently only conffile (c) is supported

From man dpkg:

--verify-format format-name

Sets the output format for the --verify command.

The only currently supported output format is rpm, which consists of a line for every path that failed any check. The lines start with 9 characters to report the specific check results, a '?' implies the check could not be done (lack of sup‐ port, file permissions, etc), '.' implies the check passed, and an alphanumeric character implies a specific check failed; the only functional check is an md5sum verification denoted with a '5' on the third character.

The line is followed by a space and an attribute character (currently 'c' for conffiles), another space and the pathname.


From the dpkg manpage:

  -V, --verify [package-name...]
          Verifies the integrity of package-name or all packages if
          omitted, by comparing information from the files installed by
          a package with the files metadata information stored in the
          dpkg database (since dpkg 1.17.2).  The origin of the files
          metadata information in the database is the binary packages
          themselves. That metadata gets collected at package unpack
          time during the installation process.

          Currently the only functional check performed is an md5sum
          verification of the file contents against the stored value in
          the files database.  It will only get checked if the database
          contains the file md5sum. To check for any missing metadata in
          the database, the --audit command can be used.

          The output format is selectable with the --verify-format
          option, which by default uses the rpm format, but that might
          change in the future, and as such, programs parsing this
          command output should be explicit about the format they
          expect.

A "?" denotes that the check could not be done, most likely due to a lack of support or file permissions. A "c" denotes that the check is being done on a configuration file.