Update System

From LinuxMCE
Jump to: navigation, search

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

Right not 'update.linuxmce.com' points to 10.0.0.83. In /var/www/Updates on 83 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:

UPDATE 1:

   What computers can update: LMCE_CORE_1_1
   When they can update: No restrictions for this update
   What it does:  Unpacks vim sources in /var/vim71 then reboots.
   How to see if it worked: A directory "/var/vim71" should be created on computer of type LMCE_CORE_1_1

UPDATE 2:

   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

UPDATE 3:

   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:

   What computer cat update: FIIRE_STATION_1_1
   When they can update: Only after LMCE_CORE_1_1 had got UPDATE 3
   What it does: It installs a applications called 'mytop'
   Ho to see if it worked: dpkg -l mytop | grep "^ii"