May 012020

I ran into a nasty issue with a VPS that has only 256MB RAM and updating using yum update failed due to memory issues with some packages. I ended up in a state where some packages were updated and some where not. This means I had duplicate packages of old and new ones and broken dependencies. Coming from Debian (apt) I was not so comfortable with yum, but this is how I solved it and learned new commands:

1. Add some memory (even being swap)

Lets add some swap memory to the VPS. 1GB should be fine:

swapon –show
fallocate -l 1G /swapfile
dd if=/dev/zero of=/swapfile bs=1024 count=1048576
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo “/swapfile swap swap defaults 0 0” >> /etc/fstab
reboot # might be needed – I had to do it

2. Find the problematic packages

yum already gave me hints about the packages that have issues. In my case iptables and iptables-service. I checked which versions I have installed using

yum list installed | grep iptables

and found that I have multiple versions installed.

3. Remove the duplicates

yum update already mentioned some issues, but I figured out that the root cause was duplicates. I learned that there is a command to remove duplicates in CentOS:

package-cleanup –cleandupes

I wonder how often this happens that you need a tool for this … anyway.

If you want to remove only a specific version of a package you can do this using

yum remove iptables-services-1.4.21-33.el7.x86_64

You take the package name, append “-” and the version, append “.” and the architecture.

4. Re-run update

Finally I was able to run yum update -y and yum was able to install the new versions of all packages and all went fine.


 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>