aktualizr-lite is an Over-The-Air (OTA) update client targeting embedded systems.
It supports OTA updates for both the operating system (OS) and container-based applications,
ensuring differential, atomic, and authenticated updates.
-
Security and Authenticity via TUF
The client verifies the authenticity and integrity of both OS and application updates using TUF (The Update Framework) for robust software supply chain security. -
OS Updates with OSTree
OS updates are powered by OSTree, a versioned filesystem technology that enables differential and atomic system updates using a Git-like model. -
Containerized App Updates
Supports updates of container-based applications defined by the Compose Specification, enabling efficient and modular application delivery.aktualizr-liteutilizes composectl to update and manage compose apps.
List of aktualizr-lite dependencies.
The Dockerfile defining a Docker container also includes the dependencies required for building and unit testing aktualizr-lite.
git clone --recursive https://github.com/foundriesio/aktualizr-lite
cd aktualizr-lite
If you cloned the repo without --recursive flag run:
git submodule update --init --recursive
Run make to build and/or apply clang-format or clang-tidy utilities.
Use the environment variables to amend the make commands behavior.
[<MAKE ENV VARS>] make [-f dev-flow.mk] <config | build | format | tidy >
The make environment variables are:
BUILD_DIR— a build directory,./buildby default;CCACHE_DIR— a ccache directory,./ccacheby default;TARGET— a target to build,aklite-testby default. Could beaktualizr-liteif no need to build tests;CXX— a compiler to use,clang++or the compiler specified in a host'senvby default.
If -f dev-flow.mk is specified, then the make command is executed on a host, otherwise the foundries/aklite-dev container is used.
A user can specify their own container to run the commands in by overriding CONTAINER environment variable.
[<MAKE ENV VARS>] make [-f dev-flow.mk] test
The make environment variables are:
TEST_LABEL- a label (regexp) of the target tests. For example,aklite:compose-apps, by default, is set toaklite- run allaktualizr-lite tests;CTEST_ARGS- additionalctestparameters, by default is set to--output-on-failure.GTEST_FILTER- a regexp to filter tests within gtest suits, e.g.GTEST_FILTER="*OstreeUpdateNoSpaceRetry*" TEST_LABEL="aklite:liteclient" make.
Aktualizr-lite is installed by default in devices running the LmP distribution.
In order to test features, and specially verifying changes in the aktualizr-lite code,
using the containerized enviromnent is more appropriate.
Here are instructions on running aktualizr-lite in different environments:
- Running on Containerized Environment
- Testing Changes on Device
- Run aktualizr-lite locally against your Factory
By default, aktualizr-lite embedded into the Foundries.io™ Linux® microPlatform (LmP) operates as a daemon process
which periodically checks for updates. If an update is available for a device then, it will automatically check, download, and install
the update.
This is not always the desired operation. There are a couple ways to control this operation: