[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Verify packages?



On 02/26/2016 12:01 PM, Hans wrote:
>> 'sudo dpkg --verify' will tell you what files have been altered from
>> the ones installed by packages.
> thanks for the advice. But it looks like dpkg has a bug. I get:
> 
> dpkg: error: control file 'md5sums' missing value separator
> 
> However, maybe a broken package causes this message.

Works fine on my system, so it will likely be a problem with one
of your packages. Maybe the system crashed while installing a
package at some point?

Please try (don't need to be root):

for fn in /var/lib/dpkg/info/*.md5sums ; do
  if grep -qvE '^[a-f0-9]{32}[ ][ ][A-Za-z0-9.].*' $fn ; then
    echo $fn contains error
  fi
done

(Explanation: grep -qvE tries to find lines in that file that don't
match the format "MD5 hash, 2 spaces, file name", which is how that
file is supposed to look like. MD5 hashes are stored in hex with 32
hex digites, the [a-f0-9]{32} part, then [ ][ ] are the two spaces,
put in brackets because email clients love to swallow multiple
adjacent spaces when copy&pasting, and [A-Za-z0-9.].* indicates any
file name that starts with a letter or number or dot; the -q option
for grep tells it to be silent and just indicate whether it found
sth. via its exit code, the -v option tells it that it should invert
the results, so only look for things that _don't_ match that pattern
and the -E option tells it to support extended regular expression
syntax, which I've used here.)

This will tell you which file (from which you can determine the
package name) contains an error. (What you do from there will depend
on what exactly is wrong.)

Hope that helps.

Regards,
Christian

Attachment: signature.asc
Description: OpenPGP digital signature


Reply to: