Run oma as D-Bus service.
amo is a project similar to PackageKit - it runs as a D-Bus/systemd service and serves as a backend to oma.
This project currently aids in accelerating oma functions and will serve as backend for aoska (application store for AOSC OS) down the line.
- Cache for Package catalogues (
Contents,Packages, etc.), enabling accelerated queries for package names, descriptions, contents, and transaction history, etc. in oma. - Initiating metadata refresh and package installation/removal/upgrade via oma API.
To build amo, the following are needed:
- libapt-pkg (part of APT)
- LLVM and Clang
- Nettle (recommended) or OpenSSL
- Rustc and Cargo
- pkg-config or pkgconf
During runtime, D-Bus and systemd are required to launch it as a service.
-
Install build dependencies:
apt install build-essential zlib1g-dev libssl-dev pkgconf nettle-dev libapt-pkg-dev curl xz-utils clang libbz2-dev liblzma-dev curl --proto '=https' --tlsv1.2 -sSf https://just.systems/install.sh | bash -s -- --to /usr/local/bin cargo install cargo-deb
-
Build the binary:
cargo build --release
-
Install the binary and configurations:
install -Dvm755 ./target/release/amo \ /usr/libexec/amo install -Dvm644 ./data/amo.service \ /etc/systemd/system/amo.service install -Dvm644 ./data/io.aosc.Amo.conf \ /usr/share/dbus-1/system.d/io.aosc.Amo.conf install -Dvm644 ./data/io.aosc.amo.apply.policy \ /usr/share/polkit-1/actions/io.aosc.amo.apply.policy -
Enable and start
amo.service:systemctl enable amo --now
oma is licensed under the GNU General Public License v3.0. See the COPYING file for details.