Every time package is removed via `apt-get remove`, a tiny piece of its configuration can be kept in your system. If you ever need to reinstall the package, this information can be re-used. These packages has status ‘rc’ in the output of `dpkg -l`. But if you want to keep your system tidy and clean, you may want them to be removed.

The miraculous command is

dpkg -l | egrep ^r | cut -d ‘ ‘ -f 3 | xargs apt-get remove –purge -y

What it does?

dpkg -l

list all packages

egrep ^r

print only those matching status ‘r*’. Package status is the first column, so add ‘^’ to match only the lines, beginning with ‘r’ symbol.

cut -d ‘ ‘ -f 3

return selected field only. Usually I add field separator symbol with ‘-d’ option and specify field number with ‘-f’

xargs apt-get remove –purge -y

xargs runs the specified command, appending input from STDIN (you can alter this behaviour vith options). In this case, i’m executing ‘apt-get remove –purge’ command. ‘-y’ swich means ”assume ‘yes’ to all questions” and is needed for apt-get to confirm the removal of packages.

The rest is the magic of pipes.

 

Why do i write this?

A strange messages were found in the syslog:

Errors when running cron:
    grandchild #2047 failed with exit status 1: 1 Time(s)
    grandchild #2205 failed with exit status 1: 1 Time(s)
    grandchild #2342 failed with exit status 1: 1 Time(s)
    grandchild #2658 failed with exit status 1: 1 Time(s)
    grandchild #2878 failed with exit status 1: 1 Time(s)
    grandchild #2972 failed with exit status 1: 1 Time(s)
    grandchild #30732 failed with exit status 1: 1 Time(s)
    grandchild #30832 failed with exit status 1: 1 Time(s)
    grandchild #30934 failed with exit status 1: 1 Time(s)
    grandchild #3094 failed with exit status 1: 1 Time(s)
    grandchild #31290 failed with exit status 1: 1 Time(s)
    grandchild #32395 failed with exit status 1: 1 Time(s)
    grandchild #3262 failed with exit status 1: 1 Time(s)

In-deep analysis revealed ‘/etc/cron.d/greylistclean’ from package ‘sa-exim’. I don’t use exim and it was replaced by postfix just after installing the system. The file mentioned did not show any signs of miss-formatting until a new version of cron daemon was installed via ‘apt-get dist-upgrade’