Marc Paré a écrit :

Le 2010-10-08 23:45, andré a écrit :
Frank Griffin a écrit :
Marc Paré wrote:
Thanks. So this thread is to see if there were a possibility to
programme a more efficient roll-back option so that it would be more
"aware" of the previous "dependencies" needs for the previous version.
Having "double dependencies" is not so much of a problem, it is the
rollback to a previous version where the dependency confusion may
occur, and, ONLY, if an upgraded type of "dependency" thread had been
installed. (Sorry I may have used the wrong terms in the last sentence).
Well, sort of. It's not an issue of efficiency, but of convenience and
just making it possible to do without resorting to manual use of the rpm
command.

The rpm command "knows" that a new version replacing the old version
supplies the same things that the old one did, so it will quietly allow
the upgrade. It will also do what we need, i.e. go the other way and
replace a newer version with an older one if you use the --oldpackage
keyword. We just need urpmi to support its use

One thing that could facilitate this process, if the computer has a lot
of free disk space, is to rename the files being removed (copying the
configuration files), instead of erasing them. Although they will
probably have to be erased eventually, since no computer has unlimited
disk space. Keeping them long enough that a roll-back is no longer
probable could be workable.
Then a roll-back could be done very quickly, since the files are already
on disk, and presumably reliably. Of course, if new data has been
entered, and the format has been changed, this could be problematic.
Note that configuration files that have been changed from the
installation default are often already saved. (Generally ".old" is
appended to the configuration file name, sometimes ".new" to the new
configuration file.)
This of course adds the maintenance task of removing the old files at
some point - it could be done automatically according to some criteria,
or the user could have to do it manually, perhaps after being prompted
about it.

(This rollback capability occurs with Microsoft products. The saved
files are only removed manually, on user initiative, which partly
explains the bloated size of a Microsoft installation over time.)

If renaming-instead-of-deleting is implemented, perhaps a "do not keep
old program files (useful if limited disk space)" checkbox option would
be useful for computers with less free disk space.
Of course how much disk space is usable to save old programs on a
computer depends on the disk space usage for other purposes over time.

my 2 cents :)

- André (andre999)

Not sure about this process. Instead of making it easier for a user, this would now make it more difficult to do and add another layer of knowledge for the new user. It would have to be a little more seamless than this.

If there were a way at setup to establish the amount of remaining disk space at installation time, and if there were enough space to allow rollbacks without compromising the installation, then I guess the rollback could then be activated. The user could then be advised at this point that this was activated. If there was not enought disk space, a message could warn the user that software rollbacks would not be possible for lack lack of diskspace.
The problem is not establishing the current free disk space, but how much to leave for use as temporary disk space for other applications. For example, if an enduser likes editing numerous large video files at the same time (maybe he makes movies), he could need a very large amount of temporary free disk space. Another user, with the same programs installed, might do primarily word processing and Internet, and only occasionally edit small videos, thus only needing a relatively small amount of temporary disk space. Of course, there could be an automatic default, adjustable via a configuration file.

I guess then, in the MCC, if a user used the Backports and installed backported software, the rollback amount of diskspace could also be monitored at this level with perhaps an option to delete old programs that are now working well in their updated form.
This sort of makes sense -- but it is not only the newly installed program which is of concern, but also other programs which may have the same dependancies (not counting the versions). It could take a considerable time before these other programs are executed, so it becomes a bit tricky.
Probably why Microsoft decided to keep such programs by default.

Essentially that is why I would prefer backports to use versions of dependancies which correspond to the distro release. A bit more work for packagers, but a much more stable system. Then the rollback system would only affect the backported program and any programs directly dependant on that version. The problem becomes much simpler. Once the backported and dependant programs (which would be known in the database) have all been run without crashing, the user could be asked if the programs all worked satifactorily and it was ok to delete the backup.

I guess this would take a bit of coding. But at least the use of Backports would make a little more sense with a rollback option in case an updated software installation did not work out.
I definitely like the idea of a rollback option.
However, another option which I would like to see is simply leaving the old program in place where possible without conflicts - and prompting for its deletion after the backport and dependancies have been run (with the same sort of information displayed) -- when rpmdrake/urpmi is subsequently accessed. In the case of problems with the backport, one would simply run the old program, which is still in place. Of course, there will often be conficts such that the old program can not be left in place, making rollbacks still useful.

Marc
- André (andre999)

Reply via email to