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 themd5sum()
check -
c
on the second column indicates the attribute checked, currently onlyconffile
(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.