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)