Updating a broken SME 7.1 Server to version 7.4
The SME Server is a great Linux distribution for small to medium sized businesses. I’ve been doing some emergency sysadmin stuff quite a while ago and encountered the upgrade-hell from 7.1 to version 7.4. Since updating the operating system from 7.1 to 7.4 wasn’t easy I decided to write a quick blog post to save you from tinkering.
Updating the SME in general is pretty straighforward but if the customer made modifications to the yum configuration it can quickly turn into a nightmare. Luckily there is a tutorial available in the SME Wiki which can help you to get started. Unfortunately the yum installation was completly broken so I had to update the packages by hand. I pulled the packages from the SME repository at and installed them via
export SME_MIRROR_URL="http://mirror.jvsnet.ro/sme/releases/7/smeos/i386/SME/RPMS" wget $SME_MIRROR_URL/dialog-1.0.20040731-3.i386.rpm wget $SME_MIRROR_URL/python-sqlite-1.1.7-1.2.1.i386.rpm wget $SME_MIRROR_URL/yum-metadata-parser-1.0-8.el4.centos.i386.rpm wget $SME_MIRROR_URL/e-smith-formmagick-2.0.0-1.el4.sme.noarch.rpm wget $SME_MIRROR_URL/smeserver-yum-2.0.0-4.el4.sme.noarch.rpm wget $SME_MIRROR_URL/yum-plugin-fastestmirror-0.2.4-3.c4.noarch.rpm wget $SME_MIRROR_URL/e-smith-lib-2.0.0-1.el4.sme.noarch.rpm wget $SME_MIRROR_URL/sqlite-3.3.6-2.i386.rpm wget $SME_MIRROR_URL/yum-plugin-installonlyn-0.91-1.el4.sme.noarch.rpm wget $SME_MIRROR_URL/perl-CGI-FormMagick-0.92-16.el4.sme.noarch.rpm wget $SME_MIRROR_URL/yum-2.4.3-4.el4.centos.noarch.rpm rpm -Uvh --nodeps --force *.rpm
You maybe have to adjust this mirror url. This is why I factored it out into a seperate variable.
After this you should reset your yum repositories and clean the yum cache.
cd /home/e-smith/db/ mv yum_repositories yum_repositories.po /etc/e-smith/events/actions/initialize-default-databases signal-event yum-modify yum clean all
After doing so, issue the following commands to let SME rewrite it’s config.
signal-event post-upgrade; signal-event reboot
Now you can update yum through yum itself (I know this sounds strange but this second update helps to get all the GPG keys for the repositories right).
yum update yum signal-event post-upgrade; signal-event reboot
Now you can proceed with a normal update to get the whole system up to 7.4. I had to do this following process twice because the updates seem to have pulled in some new dependencies which in turn have to get updated.
yum update yum signal-event post-upgrade; signal-event reboot
That’s it. I’m sure there might be an easier way but at least these are the steps the helped me get the system up to date. If you have questions just leave me a comment.
