InstallUpdatesWhenInstallingUbuntu

Differences between revisions 9 and 10
Revision 9 as of 2009-06-16 11:14:46
Size: 5938
Editor: cpc3-slam5-2-0-cust447
Comment: change the specification to reflect comments by cjwatson
Revision 10 as of 2009-06-16 11:22:39
Size: 5754
Editor: cpc3-slam5-2-0-cust447
Comment: clear final BoF comment. All issues raised at the BoF have been addressed.
Deletions are marked like this. Additions are marked like this.
Line 72: Line 72:
''Has this section been entirely folded into the rest of the specification? If so, it should be removed. --ColinWatson''

{{{
Colin thinks it will need more than a preseed.
}}}

Summary

ubiquity will grow the ability to download updates while it copies files to the installation target.

Release Note

Updates will now be downloaded while you install Ubuntu, making them immediately available to install upon first login. This will not occur on 3G connections, and users wishing to avoid this feature can disable it when the installation begins.

Rationale

There may be a number of important updates available after installation. However, these could amount to a rather large download, and since we're mostly IO bound during the installation it would make sense to try to start this download then, letting the user finish downloading or start installing the updates once they've rebooted into the new system.

User stories

  • Mark installs Ubuntu 9.10 in March of 2010. As roughly five months have passed since the release, there are nearly 100MB of updates to download.
  • Bob installs Ubuntu 9.10 on a laptop with a 3G modem that he has configured in the live environment. As he pays per megabyte on his data plan, he does not want to download anything until he returns to an unrestricted connection.
  • Luke lives in Australia. As using a non-local mirror would cost him a fortune, he needs to be certain that the installer chooses an appropriate one.

Assumptions

  • If the user has chosen to set up a 3G connection, they have done so using NetworkManager.

  • We do not care about fragementation of the filesystem, as we already do lots of writes at the same time.

Design

If the "download updates" box is checked, ubiquity will wait 20 seconds or until copying begins, whichever is longer, and then tell apt to update the package index files, then start downloading any available updates. If the box is unchecked at any point, ubiquity will stop apt.

+---------------------------------------+
|  Installing system                    |
|  [///////         15%              ]  |
|  Detecting file systems...            |
|                                       |
|  [X] Download available updates now   |
|      from au.archive.ubuntu.com.      |
+---------------------------------------+
  • We will not indicate progress, as this might lead the user to believe that they have to wait for the download to finish before they can reboot the computer.
  • The mirror will be explicitly listed to guard against the mirror detection code selecting a non-local mirror, causing the user to have a high bandwidth cost. GeoIP timezone selection will mitigate the potential for this to an extent, however as the use of it is not a dependency of this specification, we will guard against the problem with this explicit mentioning of the mirror address.

Implementation

  • This will need to be preseedable, to allow OEMs like Dell who want to keep the installer from attempting to access the Internet.
  • The language pack download functionality that already exists will be merged into this feature, but the language pack installation will be a separate piece that occurs during installation.
    • This reminds me of a subtlety. We probably don't want to have background downloads running at the same time as apt is installing language packs or any of the other things we install using apt. As such, we must arrange to stop and start downloads around any such possible event. I'm not sure whether this would be better done just by bracketing the top-level steps involved with stops and starts, or whether our apt-install wrapper and any cases where we install packages directly using python-apt should take care of it; assuming that stopping and starting downloads is reasonably efficient, then the latter will probably result in a more complete download, but see what works I suppose. --ColinWatson

  • If NetworkManager is present and a 3G connection is active or no network connection is present, the download updates option will be unchecked and greyed out.

    • AlexanderSack suggests using nm-tool for this. D-Bus interfaces are also available if we want to use them, but they're rather more complex.

  • The download will not start until 20 seconds have passed or until copying begins, whichever is longer, to allow sufficient time to uncheck the box if this is not desired.
  • The download will write package files to /target/var/cache/apt directly, rather than using an intermediary and then copying the files in at the end.
  • The download will continue until it completes or the user quits ubiquity (either by selecting "continue using the live CD" or "reboot now", or if the installation crashes).
  • When ubiquity quits, it will send SIGTERM to apt.
    • If you're having to stop and start several times around critical sections, then you'll probably also need to wait for apt to exit and then synchronise with the main thread here. --ColinWatson

  • If the download finishes before we are done installing, the download updates checkbox will be grayed out. This behavior will be run past the design team for a quick usability review.

Test/Demo Plan

  • During development, the user agent will be changed so that we can track whether a large number of people are making use of this feature.
  • We will also announce the feature with the milestone it is released for, to provide the community with adequate time to make suggestions for changes before the final release.

Unresolved issues

BoF agenda and discussion


CategorySpec

InstallUpdatesWhenInstallingUbuntu (last edited 2010-06-01 17:17:20 by eth0)