I was trying to upgrade one of the server’s PHP from PHP 5.2.x to PHP 5.3.x but no matter what I do, both
rpm gets stuck in the middle. I’ve spent two days trying to figure it out until I’ve found an article about stale NFS mount affecting yum.
Note: This is a CentOS 5.6 server.
Force unmount the NFS mounted directory
First, I disabled/stopped the
nfs daemon, although I’m not sure if it matters. Next, I opened
/etc/fstab and commented out the NFS mount entry. The next thing I do was force unmount the NFS directory.
umount -f /mount/point
However, get this “device busy” error.
umount -f /mount/point umount: /mount/point: device is busy umount: /mount/point: device is busy
The next thing I do, which I don’t remember which command successfully umounted the NFS mount.
umount -a; mount -a
I’m not sure if that works 100% but I do this command next (unmount with lazy option).
umount -f -l /mount/point
Cleanup yum locks and cache
Once I am sure that there is no more stale NFS mount hanging around, I proceed to upgrade PHP via yum. To know that there is no more stale NFS mount, execute this command.
mount df -h
The above command will display all mounted filesystem so you could verify that no NFS mount entry exists. The next command will display the filesystem usage. If you have a stale NFS mount, that command will get stuck as well. If it doesn’t get stuck, then all is good.
Before we proceed with the upgrade procedure, we need to cleanup yum locks and cache. Do the following.
/bin/rm /var/lib/rpm/__db.* cd /var/cache/yum /bin/rm -rf * yum clean all yum update
To make sure that everything is working before proceeding with upgrading PHP, I tried to install some small program just to make sure. Luckily, it installs without problem.
yum install htop
That’s it. Upgrading to PHP 5.3.x could be tricky but I’ve found many resources. Below is what I use and it is pretty good.
For rackspace users, you may try this:
Enjoy and share!