Remove all packages marked as rc by dpkg
Let’s see all the packages marked as rc by dpkg. Know more about the state rc. This state means that the configuration files are not yet removed. You can see how a single package can be removed.
What does rc mean?
For detailed information on interpreting the status, you can refer State of a Package. rc corresponds to:
1. r: the package was marked for removal
2. c: the configuration files are currently present in the system
In nutshell, it means that the package is not completely removed. The configuration files are still present. To completely remove a package, refer Remove packages marked as rc.
dpkg --list |grep "^rc"
dpkg --list |grep "^rc" rc bind9 1:9.10.3.dfsg.P4-12.3+deb9u4 amd64 Internet Domain Name Server rc ca-certificates 20161130+nmu1 all Common CA certificates rc cmake 3.7.2-1 amd64 cross-platform, open-source make system rc cmake-data 3.7.2-1 all CMake data files (modules, templates and documentation) rc fail2ban 0.9.6-2 all ban hosts that cause multiple authentication errors rc fetchmail 6.3.26-3 amd64 SSL enabled POP3, APOP, IMAP mail gatherer/forwarder rc isc-dhcp-client 4.3.5-3+deb9u1 amd64 DHCP client for automatically obtaining an IP address rc libcwidget3:amd64 0.5.17-2 amd64 high-level terminal interface library for C++ (runtime files) rc libpython3.4-minimal:amd64 3.4.2-1 amd64 Minimal subset of the Python language (version 3.4) rc libpython3.5-minimal:amd64 3.5.3-1 amd64 Minimal subset of the Python language (version 3.5) rc libsigc++-2.0-0c2a:amd64 2.4.0-1 amd64 type-safe Signal Framework for C++ - runtime rc lsb-release 9.20161125 all Linux Standard Base version reporting utility rc module-init-tools 18-3 all transitional dummy package (module-init-tools to kmod) rc perl-modules 5.20.2-3+deb8u9 all Core Perl modules rc pkg-config 0.29-4+b1 amd64 manage compile and link flags for libraries rc postfix-sqlite 3.1.8-0+deb9u1 amd64 SQLite map support for Postfix rc python 2.7.13-2 amd64 interactive high-level object-oriented language (default version) rc python3 3.5.3-1 amd64 interactive high-level object-oriented language (default python3 version) rc python3.4 3.4.2-1 amd64 Interactive high-level object-oriented language (version 3.4) rc python3.4-minimal 3.4.2-1 amd64 Minimal subset of the Python language (version 3.4) rc python3.5-minimal 3.5.3-1 amd64 Minimal subset of the Python language (version 3.5) rc sasl2-bin 2.1.27~101-g0780600+dfsg-3 amd64 Cyrus SASL - administration programs for SASL users database rc snmp 5.7.3+dfsg-1.7 amd64 SNMP (Simple Network Management Protocol) applications
Let’s extract out the packages marked as rc
dpkg --list |grep "^rc" | cut -d " " -f 3 bind9 ca-certificates cmake cmake-data fail2ban fetchmail isc-dhcp-client libcwidget3:amd64 libpython3.4-minimal:amd64 libpython3.5-minimal:amd64 libsigc++-2.0-0c2a:amd64 lsb-release module-init-tools perl-modules pkg-config postfix-sqlite python python3 python3.4 python3.4-minimal python3.5-minimal sasl2-bin snmp
Now let’s remove all the packages marked as rc.
dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs dpkg --purge
See how we have used xargs and the command dpkg –purge in combination.
Hi, thanks. It helped to better understand dpkg outputs. I found those ‘rc’ packages from the ‘dpkg –list’ command are those marked as ‘deinstall’ from the ‘dpkg –get-selections’ command.
But, do I have to uninstall those ‘rc’ marked packages? What happens if I don’t? (I have 5 ‘rc’ packages. some old kernel images and old NVIDIA drivers)
Hi, status of ‘rc’ signifies that the package has been removed, but that the configuration files remain. You can use ‘purge’ as an option to either dpkg or apt to remove these files also, if you wish.