Short Description of the Update System
- The update system is looking every 24 hours (via a cron job) on http://updates.linuxmce.com for a file named updates.xml
- If it finds that the updates.xml file was updated it downloads it and displays a message in all orbiters to inform the user that new updates are available
- If the user choses to use/apply the updates, all the available updates will be applied at computer's next boot
Background Information on Updates
The updates.xml file contains descriptions of all the updates available since that version of the product was released till present.
An updates contains at least one of the below:
- a link to a '.deb' file which is can be installed on the system (using dpkg -i)
- a link to a 'archive' file which can be unpacked on a system in a directory described in the update
An update can also contain :
- An option to reboot the computer before or after the update is applied [BUGGY ?]
- An option to reload the router before or after the update is applied [NOT IMPLEMENTED]
- An option to run an executable file after a file (deb / archive) is applied (installed / unpacked)
An update must be addressed to at lease one of the fallowing 'products':
- LMCE_CORE_1_1 - LinuxMCE 1.1 Kubuntu core or hybrid
- LMCE_MD_1_1 - LinuxMCE 1.1 Kubuntu diskless or disked md
- FIIRE_STATION_1_1 - LinuxMCE 1.1 Debian via disked md
Every update has his own number associated with it (Unique ID)
Things To Care When Applying Updates
Since updating the MD's before the Core is updated might cause problems: some updates that can be applied to MD's may be delayed (based on the information from xml) by the update system until the Core itself was updated to a certain version.
The user can not select what updates to use, he can only chose not to update at that time. For example if the user says no to update 'A' and after some time some a new update 'B' is available, he can update to 'B' but this means updating to 'A' then updating to 'B'.
When updates are available and he is asked about them, the user has three options:
- 'Yes' - Start applying the updates at the next reboot
- 'No' - Don't apply updates (will be asked again only when new updates will be available)
- 'Later' - Will be asked again in 24 hours but the updates will not be applied when rebooting the computer
If the used exits the screen without selecting any of the options displayed (by pressing the top-right X, orbiter closes because of a router reload , etc) the updates will be applied or not at reboot depending on the choose that he made last time he saw that screen. If is the first time the screen was shown, it will be considered as he pressed 'Later'. The screen will be displayed again in 24 hours regardless the implied answer.
How to Test
TODO 1: talk to admins to make updates.linuxmce.com point to 10.0.0.83 so you can test
TODO 2: get a system with via going so admins can write down update #4
In /var/www/Updates you have 4 xml files. This files contain the description of up to 4 different updates:
- updates-1.xml: Update 1
- updates-2.xml: Update 1 and 2
- updates-3.xml: Update 1 and 2 and 3
- updates-4.xml: Update 1 and 2 and 3 and 4
By copying them in /var/www with the name 'updates.xml' (on 83) you'll make the update system think that some updates are available. Since waiting up to 24 hours for the update mechanist to acknowledge the changes of the update system is impossible when testing, you can force that by running '/usr/pluto/bin/LMCEUpdate_DownloadXml.sh'
Here is a description of every update:
What computers can update: LMCE_CORE_1_1 What it does: Unpacks vim sources in /var/vim71 then reboots. How to see if it worked: A directory "/var/vim71" should be created
What computers can update: LMCE_MD_1_1, FIIRE_STATION_1_1 When they can update: Both can update only after LMCE_CORE_1_1 had already got UPDATE 1 What it does: Unpacks vino sources in /var/vino How to see if it worked: A directory "/var/vino" should be created
What computers can update: LMCE_CORE_1_1,LMCE_MD_1_1 When they can update: LMCE_MD_1_1 can update only after LMCE_CORE_1_1 had already got UPDATE 3 What it does: It installs a package named 'x11vnc' then reboots How to see if it worked: dpkg -l x11vnc | grep "^ii"
UPDATE 4: (see TODO2)
What computer cat update: FIIRE_STATION_1_1 .........................