A tweet on twitter led me to this discussion on Github.
The short version of it is that how could you install the Mu editor onto a fleet of Raspeberry Pi in a school classroom environment where the network can not or will not allow them to connect to the wider internet.
One option could be to take the Pi's home to update but this would get out of hand quite quickly.
Another option would be to use one of the powers of APT. Using this power APT can generate a list of urls for the required packages which can then be downloaded elsewhere.
- Connect the Pi upto a network connection. This could be a phone hotspot...this is to update the package lists and shouldn't use a lot of data .
- Open a terminal and switch to root.
apt-get updateand let the the package lists update
apt-get --print-uris --yes upgrade | grep ^' | cut -d' -f2 >downloads.listand press enter. This will generate a list of urls for the required packages and dependencies which are wrote into the downloads.list file. This only needs to be done on the first Raspberry Pi.
- Copy downloads.list onto a USB pendrive or similar.
- Take pendrive to system that does have internet access.
- Connect pendrive and find the downloads.list
If your using a *nix based system then you can simply use:
wget --input-file <path to downloads.list>in the terminal to download the relevant .deb files (Windows users will need to find and alternative to wget).
It's a good idea to run this in its own directory to contain the downloaded files.
- Once they have downloaded, copy them back onto the pendrive.
- Plug the pendrive back into the Pi and copy the downloaded .deb files into the APT archive:
cp <path to downloaded deb files> /var/cache/apt/archives
apt-get upgradeand the Pi should start to update the packages
- Once complete, move the pendrive to the next Pi and copy the files into
/var/cache/apt/archivesfollowed by running
sudo apt-get update && sudo apt-get upgradein the terminal.
If your after just a single package then swap:
apt-get --print-uris --yes upgrade | grep ^' | cut -d' -f2 >downloads.list
apt-get --print-uris --yes <name of package> | grep ^' | cut -d' -f2 >downloads.list
and follow the remaining steps.
If your lucky enough to be in a situation where the Pi are permanently connected over a wired network then consider the use of PiNet which allows you to centralise user accounts, file storage and and administration of the Pi.
--print-uris: Instead of fetching the files to install their URIs are printed. Each URI will have the path, the destination file name, the size and the expected MD5 hash. Note that the file name to write to will not always match the file name on the remote site! This also works with the source and update commands. When used with the update command the MD5 and size are not included, and it is up to the user to decompress any compressed files. Configuration Item: APT::Get::Print-URIs.