Upgrading an existing Ubuntu : the kill-your-desktop machine !
Le mercredi, février 4 2009, 00:00 ::
Aller au contenu | Aller au menu | Aller à la recherche
Le mercredi, février 4 2009, 00:00 ::
If you look in the mirror and see how was your computing world a few years ago, you would probably not believe it. Back in 2002, there was no Ubuntu, no OpenSuse, no Fedora and Mandriva was called Mandrake. Installing a Debian was a geekish thing that didn't detected anything automatically (not even the screen nor the mouse). Installing a printer was a matter of playing with the cups command line, Gnome was still 1.X (at least in Debian) and we didn't even thought about installing a webcam. In 2004 came Ubuntu and it's share of nude people. Connecting to a Wifi network required hours of command line knowledge and it was brown.
It's wonderful to see from how far we come and that, now, we can spend time to polish stuffs. And one big point that need polish is certainly the Ubuntu upgrade process.
In theory, the apt-get update/upgrade works well with the update-manager interface.
From my experience, people have a lot of difficulties to tell the difference between a normal upgrade and a full upgrade (dist-upgrade). They don't really grasp the concept of "new version". I don't believe users have to learn that concept but it has some consequences
Upgrading is way too slow. It takes ages. Why could it not start to upgrade a part of the system as soon as some packages are already downloaded ? Also, there's very few feedback that the system is actually doing something.
You cannot just let your system upgrading because it asks you some question and will wait for the response. Why cannot those questions be asked before beginning the upgrade ? Oh and, by the way, none of those questions are understandable by normal users. And most questions are about config files I never touched.
Upgrade just crash once in a while. It knows that a simple apt-get -f install will solve the system but insists that you do it yourself. Also, sometimes it looks like it is finished but launching apt-get dist-upgrade once again shows more than 300 non upgraded packages with are in an unknown state. In the end, upgrading quickly become a serie of apt-get dist-upgrade, apt-get -f install, apt-get dist-upgrade, apt-get -f install until no more packages left.
Shutting off the computer in the middle of the upgrade process leaves it, most of the time, in an awful state and you can be sure that X doesn't work.
After upgrading, a lot of old crap stays on the computer. You have to run apt-get autoremove --purge `deborphan` multiple times but it's not really enough because the program is not detected by deborphan. Just remember all the old cupsys stuffs, gnome-volume-manager, things like that. On most upgraded computers, they are still there !
Problem 1,2 and 5 imply that geeks will just reinstall their Ubuntu by formatting the / partition. On my computer, installing a new Ubuntu and the packages I need take approximately 1 hour. Upgrading my whole system takes more than 4 hours ! But, come on, we are not Windows. Do we really need to reinstall every 6 months ?
This one is a lot more important to my opinion. I've installed Ubuntu to a lot of "normal" users. Lemma 1 and Problem 2 or 3 lead them to just think the computer has finished or has a problem. So what will you do if you might have a problem ? Reboot of course, hitting problem 4 in the face !
They will then just discover a black screen with blinking lines of text. Their conclusion is simple enough : the computer is broken and it is because of the upgrade. Technically advanced users not familiar with Ubuntu will try to change X.org config to "repair" the broken X11, never thinking that apt-get dist-upgrade will solve their problem.
That a very bad point for Ubuntu but, more, it has a very important impact : normal users will avoid upgrading at all cost ! The vast majority of normal users I know don't upgrade anymore. They ask me to do it. I'm not speaking about "dist-upgrade", remember lemma 1 ? They just avoid to clic on the orange notification (which is sometimes a red arrow, I don't understand the logic), avoiding even critical upgrade. This week-end, I just came accross a laptop when I was a bit astonished because applications were not available in the repository. I discovered that the laptop was still running Feisty 7.04 because "Upgrade can break things". (for the record, the laptop spend the afternoon upgrading to 7.10 then 8.04 then 8.10). If I had discovered this laptop a few months later, after 7.10 lifetime, I would have no upgrade paths left !
I believe that for 9.10, we will have to think a lot about our upgrade process. Some ideas that should not be that hard to implement :
Also, what would be interesting is to split the upgrade in several "partial upgrade" of a subset of package. On this subset is downloaded, it can be upgraded while the rest is being downloaded. It would also permit to split the upgrade process in multiple days so you are not stuck four hours in front of your computer. But I admit that it might not be an easy thing to do with apt-get...
Not related : If you want to discuss stuffs about Ubuntu or are interested by a "Getting Things Done"-type application for Gnome, just poke me on the GNOME booth at FOSDEM and say "How to get things done in Gnome ?" (I'm more or less like my hackergotchi, it should not be that hard).
Commentaires
Ubuntu should walk you through new features while the upgrading is taking place.
agree 100%
i did updated to jaunty late last week, it took about 5hours (granted it is a netbook, but its far too slow)
I had to download about 800mb, if the iso is ~700mb, how come an upgrade takes more (shouldn't it take a lot less?)
If it really must take so long to update.... fix Problem 2 and suggest/recommend that the user does it last thing at night, and wake up to the updated machine in the morning.
-bruce
My last update to Ibex was far shorter and easier. lagonlibre.net/post/2008/...
It may have been a little longer than wrote on this post (15 minutes) as I think I posted it while upgrading. But definitively less than an hour. And I don't remember any question to answer but there may have been some.
I guess there might be some problems such as the ones you listed and improvements have to be made. But I wanted to leave a more positive note as it has been my own experience. And it made me very happy as I wrote it at that time.
Yeah, no one in my family runs updates on their machines. My mom is still using 8.04.1 (an old kernel 'cause an LTS update broke sound).
About a week ago, the last showstopper for my mom in 8.10 was fixed (uvcvideo thingy), so I'll be upgrading her shortly.
...And I'll be doing so with a fresh install. I removed PulseAudio from her laptop entirely, so that's probably the simplest way to do things.
I forgot to add. Concerning the red arrow, for me it is clear that it concerns only security updates. Otherwise, the orange notification is displayed.
You are on the right track. For me the real issue is that an upgrade is a disruptive event that could go wrong. What I really want is an upgrade path that lets me download and install all of the bits without deleting the old install. At reboot time, I would be able to boot to either old version or the new one. If the new one has problems, I can fix them on my schedule rather than *RIGHT NOW*. The previous version would still work and I could still do my day job.
Indeed, this concept should not be applied to just major upgrades. If I install a new package and things break,
I should be able to back the whole thing out. Granted the new package should be better, but sometimes a regression creeps in.
When upgrading, I always use (or advise to use) a CD/DVD.
The ISO download is easier to manage, eliminating possible disruption of a network upgrade. And once you have the CD/DVD, the time required is shorter too.
Excellent billet (comme toujours).
L’idée de poser toutes les question /avant/ le dist-upgrade paraît tellement de bon sens qu’on s’étonne qu’elle ne soit pas la règle – quelle que soit la distro.
Quand à la réparation de l’upgrade mal fini, j’avoue avoir eu de la chance, ça m’est jamais tombé dessus :-D (ceci étant, les gens à qui j’ai installé Ubuntu ne font pas leurs mise à jour de version tout seuls). En tout cas, toutes ces propositions me semblent hautement bienvenues, et j’attends impatiemment de voir comment elles apparaîtront.
D’accord avec toi quant au caractère perturbant de l’icône de notification rouge ou orange suivant le type de mise à jour disponible, même si j’ai compris la même chose que Greg : un seul repère pour la mise à jour, quitte à différencier l’infobulle, par exemple, me paraît largement plus clair…
Désolé de ne pas faire l’effort de causer en angliche, comme tout le monde :-D
My sister's laptop is never updated. Whenever I check it, there is this orange or red icon saying there are billions of upgrades available. I told her, though, but she just doesn't do it on her own...
As for "we are not Windows. Do we really need to reinstall every 6 months ?", well... Most users just want the newest system possible. Look: I'm still using Hardy 8.04 because Ibex doesn't work at all on my laptop (crappy X updates, apparently), and so I have to use an old version of Gimp, an old version of Gnome, an old version of everything! It's not fair... I wish I could use the latest system available to be able to access the newest softwares and technos...
There's a difference between the regular security upgrades and the distribution upgrades. The former ones are usually pretty safe and stable, and there are usually only very few available so it takes only few minutes to install.
The distro upgrade is more complicated... I don't use this functionality anymore on a production system, mainly because the resulting system is not identical to a fresh installation. For example, it seems that an upgrade will try to preserve the behavior of the old system, while I usually do an upgrade exactly to get the new behavior :-)
I think for upgrading my mother's system from Gutsy to the newest release, I'll just install it on a new partition, add workarounds and fixes for hardware compatibility, copy her data to the new partition, and then switch it over in grub config. It would be nice if Ubuntu did something similar automatically, though.
Bruce: Because you have additional packages installed which are not in the default installation.
Good to see someone talk about the upgrade process! I find it rather poorly documented, specially when it comes to upgrading from the command line. Please do take a look at (and fix :-) ) bug 228910 in launchpad.
Amen to all this. Tried to upgrade from 8.04 and 8.10 and ended up with a black screen. Despite searching for a way to rollback or make the thing respond (using google on my windows box), couldn't find any useful advice and ended up reformatting the disk and reinstalling 8.04. Almost certainly overkill but didn't know what the * else to do.
After this and other frustrations, I can only recommend Linux to one friend from everyone I know and that with the caveat he keeps a spare machine (preferably Windows) to hand. The fanatical prompt penguins don't seem to get it; the leap out of Windows is still too difficult - dangerous, (data loss risk?) even - for the average user to consider.
I know, a lot of good work done, but a lot more still needed.
Hi, it very nice to push those ideas, because I know that I'm afraid of any of my friends or family members to try to do the update alone, ie: something is wrong!
a few technical consideration though:
problem1: upgrade will probably become a lot more error prone if we start applying updates before beeing sure to download everything.
problem2: questions are generated from packages updates, so I don't know how to ask them first. Asking them all in a row may be possible, with a preinspection of all packages and storing answers for later though.
problem4: oh just to say, the first kernel update of my life was interrupted by me accidentally shutting the computer down, I was relieved to see a simple one line command would fix it all... ;)
problem5: aptitude should already solve this.
We still have work to do! :)
Very interesting...
In fact someone called me yesterday to tell me that his computer was broken! Of course, he upgraded his distribution and now the only solution for me is to come!
But I'm in Canada for the year and he is in France...
Actually, it's not the first time it happens around me and each time I've to go and fix it myself. Don't ask people to type commandes, it doesn't work!
So for me the main problem is that people don't understand the difference between "Upgrade" and "Update". So since the first one clearly more dangerous, it should be hidden in an other menu than the update one!
If you use update-manager instead of apt-get dist-upgrade, you won't have problems with leftover packages that no longer exist. That's why your first statement (that they are equal) is wrong.
And it won't prompt about config files unless you modified them.
And it most definitely should not start updating as soon as a package downloads. Then you could end up in a half-upgraded state. At least this way you can escape as long as you kill it before it finishes downloading everything.
Mackenzie : update-manager can cause all of those problem, I can show it. But update-manager is not always an option as it upgrades your sources.list to an official repository, which is not always possible (if for example you have a local mirror in your company)
And it will prompt you for the configuration that had been modified by you "or a script". 9 times out 10, I never heard about that config file. It simple : I try to avoid touching files in /etc on a desktop system. I configure all in $HOME. And I'm still asked for a lot of files !
I suggest this:
instead of download meny single files, the "Updater program" should download a big file (via torrent?) with the fundamental packages (Kernel, Openoffice, Gimp...) and then download the other files for program which doesn't belong to a default installation (es. the update of Inkscape).
Why don't you post it at Ubuntu Brainstorm?
Marcio > Because brainstorm is only a way to put a foot in the community. There's not usefulness to brainstorm. Most good ideas are hidden in thousands of crappy idea (like "Skipe should be the default"), most good ideas are bug reports anyway and, last but not least, no one care about the votes on brainstorm. Take a look at was is "under work" and what is "realised". It's an overall of 10 ideas per Ubuntu release and most of implemented ideas have a really low vote count (even a negative one). This is just because developpers follow their ideas (and I agree with them) or the leader, not brainstorm. Posting it on planet.ubuntu, on the contrario, allow a lot more feedbacks and a global visibility to the idea. And I'm pretty happy with all the interesting comments I received :-)