Downgrade command ?

Pascal Bleser pascal.bleser at skynet.be
Sun Nov 26 08:02:55 PST 2006


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Jan Engelhardt wrote:
>> Note that the current process for doing that with smart is e.g.
>> smart install libgnome-2.12.0.1-26 ...
>>
>> You have to specify the full package name-version-release to have smart
>> consider doing a downgrade.
>>
>> If one just says
>> smart install libgnome
>> it will fail, smart saying that libgnome-... is already installed.
>>
>> upgrade obviously doesn't work either, as smart will say that a newer
>> version is already installed (makes sense ;)).
>>
>> So (IMHO) what we would need is a "downgrade" command, that would
>> downgrade a package to the latest known version as of the repository
>> metadata.
> 
> Suppose pack-3 is installed, and you have pack-1, pack-2 and pack-3 
> available. Which one should DOWNGRADE install? pack-1 or pack-2?

None.
But if pack-3 is installed and you have pack-1 and pack-2 in the
repositories, it should downgrade to pack-2
(anything else is even more difficult to implement)

Typical scenario:
- - you add the latest Xorg/GNOME/KDE/Apache/... repository from the
openSUSE Build Service
- - you upgrade packages
- - at some point you notice it breaks things (doesn't happen from my
experience with Apache or KDE, but does happen with Xorg and GNOME, at
least atm) and you want to revert to the versions shipped with the
distribution (e.g. SUSE Linux 10.1)
- - you remove the Xorg/GNOME/KDE/Apache/... channels
- - e.g.: smart downgrade 'apache*'

Maybe it's possible to implement both
downgrade --latest pack
=> pack-2
downgrade --oldest pack
=> pack-1

Obviously that command would be most interesting to downgrade batches:
downgrade --latest *
or
downgrade --oldest kde* qt*

As a side note, one thing I've been missing very often is the
possibility to tell smart "all the (installed) packages from channels A
and B" -- typical use case: specify the packages in the "latest KDE" or
core distribution (e.g. SUSE Linux 10.1 + online updates channels).
Something like
  smart upgrade --from suse,online-updates *

What most people would do in an automated way:
  smart upgrade --from suse,online-updates --except 'kernel*'
(locking can help for --except, but doesn't work per invocation)

But the latter is a different topic ;)
(and could possibly be solved by temporarily changing the channel
priorities, per invocation)

cheers
- --
  -o) Pascal Bleser     http://linux01.gwdg.de/~pbleser/
  /\\ <pascal.bleser at skynet.be>       <guru at unixtech.be>
 _\_v The more things change, the more they stay insane.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.2 (GNU/Linux)

iD8DBQFFabqvr3NMWliFcXcRAp0YAJ9p3dWlduUyph5493x7LI/l+Cjk0ACgmTzK
2arHwbqGU5ypPravhDWemOk=
=sM8N
-----END PGP SIGNATURE-----


More information about the smart mailing list