Post by Tony EarnshawPost by John RouillardMy company is looking at moving to Centos 5 and we use rollbacks for
our rpm transactions. We have used up2date --list-rollbacks (that has
been depricated in later RHEL 4 releases), and in Centos 5, up2date is
removed. So how do we list the availble rollbacks?
Does rpm for centos 5 have a --list-rollbacks flag or something?
A google search didn't turn up any answers I am afraid, however it is
quite possible I wasn't using the right keywords.
It didn't take me much more than 5 seconds (with Firefox 2.0.0.4) to
http://lists.centos.org/pipermail/centos-announce/2007-May/013778.html
<ctrl><f> list-rollbacks
I saw that url, but the only applicable entry I see is:
* The up2date options "--undo" and "--list-rollbacks" are now
deprecated. You must use "yum remove <pkg_name>" or "rpm -e
<pkg_name>" to remove packages, or "rpm -Uvh --oldpackage
--nosignature --nodigest <pkg_name>" to revert to an older package.
which doesn't explain how to list rollback points, or show what upates
were done in a transaction. It only describes how to remove individual
packages (and actually describes it the hard, error prone way since
--rollback could be used to perform the changes).
As a matter of fact, this entry is why I put the phrase
'--list-rollbacks (that has been depricated in later RHEL 4 releases)'
in my original email.
Why did you think that answered my question? I may be missing
something, or have worded my original email incorrectly.
What I am looking for is something that produces output similar to
'up2date --list-rollbacks' that shows the transactions rpm has
recoreded and can rollback to:
install time: Mon May 28 15:38:25 2007 tid:1180366705
[-] gcc-java-3.4.6-3:
[-] java-1.4.2-gcj-compat-1.4.2.0-27jpp:
[-] libgcj-3.4.6-3:
[-] libgcj-devel-3.4.6-3:
install time: Mon May 28 15:53:47 2007 tid:1180367627
[-] cpp-3.4.6-3:
[-] cups-1.1.22-0.rc1.9.11:1
[-] cups-libs-1.1.22-0.rc1.9.11:1
[-] file-4.10-2.EL4.4:
[-] freetype-2.1.9-4.el4:
[-] freetype-devel-2.1.9-4.el4:
[...]
[+] cups-libs-1.1.22-0.rc1.9.18:1
[+] mysql-devel-4.1.20-2.RHEL4.1:
[+] kernel-2.6.9-42.0.10.EL:
[+] php-4.3.9-3.22.4:
install time: Tue Jun 26 22:02:31 2007 tid:1182895351
[-] fontconfig-devel-2.2.3-7.centos4:
[-] gtk+-devel-1.2.10-33:1
[-] imlib-1.9.13-23:1
[-] imlib-devel-1.9.13-23:1
[-] irssi-0.8.11-1:
[-] libtiff-devel-3.6.1-12:
[-] libungif-devel-4.1.3-1.el4.2:
[-] xorg-x11-devel-6.8.2-1.EL.13.37.7:
install time: Tue Jun 26 22:03:21 2007 tid:1182895401
[-] glib-devel-1.2.10-15:1
install time: Fri Jun 29 01:46:13 2007 tid:1183081573
[-] nagios-2.5-2.centos:
[-] nagios-devel-2.5-2.centos:
[-] nagios-www-2.5-2.centos:
[+] nagios-devel-2.9-1.centos:
[+] nagios-www-2.9-1.centos:
[+] nagios-2.9-1.centos:
install time: Tue Jul 3 19:04:23 2007 tid:1183489463
[-] rdist-6.1.5-38.40.1:1
[+] rdist-6.1.5-38.40.2:1
So I can do an: rpm -Uvh --rollback 'Jun 29 01:46:13 2007' to get back
to the system install just prior to the rpm install recorded at: Jun
29 01:46:13 2007.
Without this info I don't even have a good way to track what packages
may have been upgraded manually by another admin, automatically via
yum, or manually via a user installing software etc.
As you can see from the Jun 29 01:46:13 2007 update, I elided changes
from it. That is 50 or so package changes. Reinstalling them manually
via the 'recommended' way is a nightmare and unnecessary since it's
only up2date that is removing the undo option. RPM isn't removing
rollback AFAICT and is more than capable of doing the right thing
provided there is something that will list the data I need to provide
to the -rollback option.
So the question stands does rpm have a way to display the rollback
points?
(Hmm, looks like listing the dates on /var/spool/repackage gives me
some info, but it doesn't give me transaction id's or other info used
by rpm. These dates could be changed via touch or something making
them untrustworthy for determining transaction contents.)
--
-- rouilj
John Rouillard
System Administrator
Renesys Corporation
603-643-9300 x 111