Here's the post that discusses downgrading packages:
https://forums.contribs.org/index.php/topic,51299.msg260355.html#msg260355In this case - to downgrade the two packages mentioned earlier in this thread:
perl-CGI-FormMagick-0.93-3.el6.sme.noarch and
DCC-1.3.145-25.el6.sme.x86_64
1. Get a list of the repositories that are enabled on a fresh SME install cd /etc/e-smith/db/yum_repositories/defaults/
for f in *; do if [ "$(cat $f/status)" == "enabled" ]; then echo $f; fi; done
Here is the output on my system:
base
smeaddons
smeextras
smeos
smeupdates
updates
2. Get a list of the repositories enabled by default on your system:yum repolist
Here is the output on my system:
...
repo id repo name status
base CentOS - os 6,710+3
smeaddons SME Server - addons 28
smeextras SME Server - extras 165
smeos SME Server - os 1,810
smeupdates SME Server - updates 138
updates CentOS - updates 250+1
repolist: 9,101
3. Disable any non-standard repositoriesIf ther are any repositories under item 2 that are not listed under item 1, disable them.
Possibilities include epel, smeupdates-testing, fws, stephdl, extras, etc.
For example, if the output from item 2 included "smeupdates-testing", you would disable it using:
db yum_repositories setprop smeupdates-testing status disabled
expand-template /etc/yum.smerepos.d/sme-base.repo
4. Remove the problem packagesIn this
example I am using the package names indicated from earlier in this thread (in your case you would be removing the specific packages you have identified that need to be downgraded or corrected).
rpm -e --nodeps perl-CGI-FormMagick
rpm -e --nodeps DCC
5. Reinstall the packagesThe yum cleanup run in steps 1 - 3 mean that when you reinstall the packages you'll get the SME versions.
yum install perl-CGI-FormMagick
yum install DCC
6. Restart whatever running services may have been affectedThe easiest way to make sure you've restarted everything that might have been affected by the incorrect packages is to reboot...
signal-event post-upgrade; signal-event reboot
7. Figure out how to keep your server up-to-date with only the default repos "enabled"It is easier than it should be (in my opinion) to get updates from the wrong repository when using yum. This has been the case since I first used SME server (v5.6, or maybe v6.01), and remains the case now.
It is extremely easy to install packages, but it becomes nearly impossible to update them reliably without running into unexpected side-effects.
I feel like I've tried everything over the years:
* enable the non-standard repos
==> this invariably breaks some core SME package
* leave only the default repos enabled, then resolve problems one package at a time
==> this makes updating take so long that I do it less frequently
* keep lists of what I've installed from where and build custom upgrade scripts
==> this was a challenge.
* keep only SME default packages on my SME server
==> This severely restricts the usefulness and usability of the SME server itself, and ends up requiring a secondary server or servers for anything not provided by default with SME.
Yum only recently introduced the capability to tell what repo a package was originally installed from. With this capability it is possible to create a script that will only install updates to a package "pkgA" from the same repository it originally came from (or from a SME default repository, if it contains a newer version).
The wiki page at
https://wiki.contribs.org/Update_contribs has a script and acquires notes on keeping a server with contribs installed up-to-date. It's not perfect -- there are still situations where updating requires some manual package-by-package updating -- but it is far superior to any previous process I've used in the past.