Basic package management

Over-the-air package updates

The "package management" configuration option allows a simple over-the-air or OTA update functionality for Linux packages.

Qbee offers remote package management that allows automatic updates of Debian packages over-the-air. They can come from repositories that are defined on the device or from the qbee platform file manager. When using the file manager qbee can easily overlay packages from there to the defined repository. This is a simple way of patching a specific library without owning the repository and it can also be used to update own packages.

The first time you want to install additional packages or own software you would use the "software management" function. Then the "package management" function is used to update the packages.

!qbee-package-management

In the above image you see that the package "curl" is pegged to a specific version. This is a very common way to work with package management. You always want to carefully test any library that you update. Pegging it on the tested version prevents the package management from updating to versions that are new and not tested yet. In contrast, the openssl package is not pegged in this example. This would cause the system to always update if there is a new version available.

The switch "Full upgrade of all packages" is useful if you want your device to follow all latest updates. Please handle with care. With enable/disable package management is controlled for the device / group or tree branch. The next selection defines if any precondition is used. Leave blank if no precondition is required.

Updating with precondition

Precondition checks if a script/executable exits successfully with "exit=0". Only then the update is performed or the remote edge device. A simple form of doing this is to use /bin/true which always returns 0 and thus always updates. The idea here is that more complicated conditions can be evaluated. For example time slots can be checked (only upgrade at night), machine conditions can be checked or certain environmental variables (one customer actually has a local web server UI and a technician needs to trigger an update window manually which then allows updates for 3 hours. At this time all accumulated updates get played out at once). Please find more information about defining preconditions.

Please consider carefully if you really want to run full auto update on standard repositories!

In IoT deployments stability is crucial. So we are warning against blindly running an update all if you do not have control over the repository. It is much safer to update specific versions of critical packages, preferable even with a specific version number that has been tested and quality assured.

It is important to define if you want to reboot after upgrade or not. If this is selected the device will immediately reboot after all current updates are completed.

We recommend to upgrade specific packages (preferred with version number)

Decide if you want to update all or single packages. As many packages as needed can be defined with the plus buttons. Please use the debian package naming convention.

Available packages for upgrading can be seen under device -> inventory -> software.

!qbee-inventory-libraries

In the audit or log trail it is possible to see that updates have been completed. You can also click on "show log" and get detailed description of what has been done in the update process.

!qbee-audit-package-management