Launchpad Entry: https://launchpad.net/products/easyubuntu/+spec/easyubuntu-offline-mode
Created: 2006-03-26 by VenkatRaghavan
Contributors: JendaVancura
Packages affected:
Summary
Make EasyUbuntu work in an offline mode and install debs downloaded on another machine (preferably with the option of live CD for the latter).
Rationale
This is a feature in EasyUbuntu mainly for the users (machines) who don't have fast connections or don't have any network connection in the target machine.
Use cases
-Joe is on dialup at home, but has broadband at office. He wants to download all the required, but "not installed by default" packages at his office and install them later at home.
-Moe is too lazy to set up a network properly at home, and thus has broadband only on some machines, not necessarily GNU/Linux-based.
-Toe doesn't have an internet connection. After making an agreement with the local Internet Cafe, he takes a seat at one of their computers with a live CD and download whatever his home PC needs.
Design
Two computers are involved. The 'target' computer, on which we want to install software, and the 'intermediary' computer, which has a decent internet connection. A good solution would be to do the download part of all the packages to install on the 'intermediary' computer, including the packages required for making package lists.
The user installs EasyUbuntu on the 'target' PC and launches it with a different option to make it create a download list. (NOTE: this list could be made a custom generated executable script, so that it's usable on a machine without easyubuntu)
- User takes the download list to the 'intermediary' computer, and downloads the debs required (using either a special option in EU, or the list itself, if it is executable). The debs are transferred via a portable medium (CD, flash drive) back to a folder on the 'target' computer.
The user then launches EasyUbuntu again on the 'target' PC, showing the location of the downloaded debs.
EasyUbuntu creates the install list, and installs all the packages.
Implementation
Must be worked into the existing EasyUbuntu package to avoid confusion. (Already, there has been enough confusion with Easybreezy, Easyubuntu and the rest.)>
- 1. Assign a directory / drive as a local repository.
- 2. Include menu driven scripts to create and update the "packages" files of this repository. ("dpkg-scanpackages", "apt-get update")
3. Save and retrieve the selected tweak options (EasyUbuntu knows which packages are requited for each feature)
- 4. Generate and save wget script ( wget -c "apt-get package path") - for use with WGET available cross-platform: Linux, MS Windows etc
- 5. (If a removable media, eg. memory stick, is used to transfer the packages from the "online" machine to the "off-line" machine this could be assigned as a source and when available transfered to the local repository if the media isn't already set a s the local repository)
- 6. Automate all steps 2.3.4.5. by using a "wait" and "continue" switch. ("wait" would generate a download script, save the selected options list, ... "continue" would transfer files from media (if necessary), create the packages list in the local repository using "dpkg-scanpackages", update apt-get using "apt-get update", load the previously saved selected options list and then wait for apply / install instruction).
Outstanding issues
- Where to create package lists? On the 'target' computer after retrieving the packages? Or on the 'intermediary' computer? (Jenda's note: the 'intermediary' computer wouldn't make sense if it was a LiveCD) (Aliby's note: A local repository has to be assigned by the user - that could be anywhere: removable media, network or local drive)
- Do we have to do something for the other OS. I suggest starting out with LiveCD+external drive compatibility, then perhaps a windows script option. (Aliby: First start with a wget script as WGET is already available cross-platform and Live-CD. These can be menu driven and later further automation made possible with more intelligent scripts and les menu buttons)
Useful Information
the functionality and techniques employed by apt-zip http://packages.debian.org/unstable/admin/apt-zip.html may be of use for this.