Recovering from cPanel RMP issues
November 16, 2015
Ocasionally, any cPanel server is likely to come across issues it is unable to resolve on its own. One that is a little difficult to troubleshoot is RPM conflicts and RPM duplicates which in particular happen often on my DNS Only servers. As I come across these somewhat often, I’ve setup some troubleshooting steps for you to follow.
The most common scenario where I have seen this happen recently is updating cPanel on DNS Only server to 11.52 which gives the following error while updating:
E Sysup: Needed system RPMs were not installed: nscd, python-setuptools, xz, yum-utils
While I’ve tried different approaches to fix these in the past, the one that consistently works best is the following:
- ALWAYS do your best in reading and interpreting the error message. Copy pasting into Google only gets you started. In Linux you can easily be mislead by an error if you do not track its source as it can be related to a parent error which needs to be resolved first.
- Once you’ve assessed the source of the issue, work your way through the least damaging troubleshooting steps to get some system feedback towards resolution.
cPanel does offer some tools to help you get started… while not particularly helpful in terms of verbose output, typing the command bellow should “fix” most common issues:
/usr/local/cpanel/scripts/check_cpanel_rpms --fix
If that does not fix your problems, you are likely to need a more manual approach and in this case, understanding the error (as per above) would be vital. In my case, the most common error I get across my servers is Duplicate RPM’s which are generally due to connection drops or multiple update attempts processes that ultimately conflict and leave duplicate packages in the system.
To resolve this, I aid myself with the “yum-complete-transaction” utility which is available from “yum-utils”. So as a first step, make sure you install that:
yum install yum-utils
Upon installing, make sure you clear off from any previous pending transactions by running:
yum-complete-transaction --cleanup-only
After clearing old pending transactions, if your issue is with duplicate RPM’s (like mine), you should run:
package-cleanup --cleandupes
This is going to REMOVE duplicate packages / RPM’s from your system. Please be advise this can permanently render your server useless so PLEASE have a backup of your server before proceeding or be absolutely certain of what you are doing before proceeding. You have been warned.
After removing duplicates, you might want to do a system update:
yum update
If all went well, your system is able to update now and you should be able to successfully run:
/scripts/upcp
or
/scripts/upcp --force
Good luck!