OfflineUpdateSpec

Differences between revisions 4 and 7 (spanning 3 versions)
Revision 4 as of 2006-05-01 08:12:24
Size: 3311
Editor: 59
Comment:
Revision 7 as of 2006-05-03 08:41:02
Size: 5075
Editor: i577B0969
Comment: comments added
Deletions are marked like this. Additions are marked like this.
Line 3: Line 3:
 * '''Launchpad Entry''': None  * '''Launchpad Entry''': https://launchpad.net/distros/ubuntu/+spec/offline-updater
Line 28: Line 28:
 * Some sort of heuristics should be added so that the tool doesn't download all the dependencies. The specifics are yet to be decided.
Line 40: Line 41:

mvo (2006-05-03): I love the idea and the spec. Some minor things: I think we should use "apt-ftparchive" these days instead of "dpkg-scanpackages". But they are similar enough. I'm not sure that the archives needs to be compressed again (because debs don't compress very well). If we don't compress them the user does not have to unpack them on the local machine but can install directly from the cd and can use apt-cdrom add/synaptic cdrom support to get the packages from it. We may consider putting some additional meta-data on the cd to have some sort of "recommended install" (e.g. a add-on-cd with gnustep could recommend a gnustep meta-package or a add-on with some lean office apps could recommend gnumeric, abiword, scribus). Those recommended installs can then be displayed by e.g. update-notifier that detects when a cd is inserted (that is what it can do already).

Unfortunately roll-back is not easy (but would be very cool to have). The problem with rollback is that package downgrade don't work in the general case because postinst scripts can to stuff that works only one way (e.g. upgrading a datafile to a newer format, remove old symlinks etc).

For the heuristics, I think we might try to assume that at least "ubuntu-minimal" is installed so that we dont need packages that are dependencies of this package. We need to be careful about the versions because a user may need a newer version from e.g. dapper-updates for a particular tool. We may even add a "[ ] has ubuntu-desktop" installed to minize the download even further.

----
 

Summary

We need a way to update Ubuntu installations which are not connected to the Internet. In many developing countries most of the people don't have access to the Internet. Though the Ubuntu CD contains many useful applications, they are very basic in nature and don't contain many useful applications. Also the security updates which are made available by Ubuntu aren't useful to people without Internet. This tool will enable a user to create Service Packs by downloading updates and required applications with dependencies automatically. Those Service Packs then can be installed with ease on other machines using this tool.

Rationale

The basic difference between Ubuntu and other distributions is that Ubuntu being a single CD distribution, can only put in a limited number of applications in the CD. While it's very easy to install more packages via Synaptic, people who don't have access to Internet find it very difficult to install more packages and updates. Also multiple installations which are not connected to each other have to download and install the same packages multiple times to install them. This not only is sub-optimal, it also wastes a lot of bandwidth.

Use cases

  • Joe has Ubuntu installed in both University and Home. He wants to install the LAMP stack in his home but he doesn't have Internet connection there. He uses the tool to download and create a Update Pack and takes it home in his USB Thumdrive. He then installs the LAMP stack on his Home machine using the tool.

  • Jane has multiple PCs in her office which use Ubuntu but are not connected to each other. She wants to install the security updates to all her PCs but doesn't want to download the updates on all the PCs. She uses the tool to create a Service Pack and burns the pack to a CD. She then installs the Service Pack to all her PCs from the CD. She also uses the same CD for updating her PC at Home.

  • John's mother uses a standalone Ubuntu PC. Each time security updates are released, he creates Service Packs using the tool and mails them on a CD to her.

Scope

  • Installation and upgrading of packages

Design

  • The tool should calculate the dependencies of the package to be downloaded and download them
  • It will create an archive from the downloaded packages by using dpkg-scanpackages and create a compressed archive from it

  • The compressed archive will be used as the Service Pack when installing

  • When installing, the tool will first decompress the archive and then will install all the packages in the directory
  • Optionally, it should be able to roll-back to a previous state in case some error occurs
  • Some sort of heuristics should be added so that the tool doesn't download all the dependencies. The specifics are yet to be decided.

attachment:screen1.png attachment:screen2.png

Preliminary mockups of the GUI

Implementation

The tool will be written using Python,GTk+ & python-apt. An Ubuntu package will also be made.

Comments

mvo (2006-05-03): I love the idea and the spec. Some minor things: I think we should use "apt-ftparchive" these days instead of "dpkg-scanpackages". But they are similar enough. I'm not sure that the archives needs to be compressed again (because debs don't compress very well). If we don't compress them the user does not have to unpack them on the local machine but can install directly from the cd and can use apt-cdrom add/synaptic cdrom support to get the packages from it. We may consider putting some additional meta-data on the cd to have some sort of "recommended install" (e.g. a add-on-cd with gnustep could recommend a gnustep meta-package or a add-on with some lean office apps could recommend gnumeric, abiword, scribus). Those recommended installs can then be displayed by e.g. update-notifier that detects when a cd is inserted (that is what it can do already).

Unfortunately roll-back is not easy (but would be very cool to have). The problem with rollback is that package downgrade don't work in the general case because postinst scripts can to stuff that works only one way (e.g. upgrading a datafile to a newer format, remove old symlinks etc).

For the heuristics, I think we might try to assume that at least "ubuntu-minimal" is installed so that we dont need packages that are dependencies of this package. We need to be careful about the versions because a user may need a newer version from e.g. dapper-updates for a particular tool. We may even add a "[ ] has ubuntu-desktop" installed to minize the download even further.



CategorySpec

OfflineUpdateSpec (last edited 2008-08-06 16:28:23 by localhost)