Repository navigation
03 Update Sources
A package domain is one kind of package. Two tools in the same domain install the same updates. Two tools in different domains never install the same update.
bs-updater has six package domains.
| Domain | Heading in the list output | Name for the user |
|---|---|---|
repo |
Pacman |
repository packages |
aur |
AUR |
AUR packages |
rpm |
RPM |
RPM packages |
deb |
APT |
Debian packages |
flatpak |
Flatpak |
Flatpak applications and runtimes |
appimage |
AppImage |
AppImages |
| Source | Tool | Domain | Distribution | Default state |
|---|---|---|---|---|
| Repository packages | pacman |
repo | Arch Linux | off |
| Repository packages | paru |
repo | Arch Linux | on |
| AUR packages | paru |
aur | Arch Linux | on |
| RPM packages | dnf |
rpm | Fedora | off |
| RPM packages and the Nobara fixups | nobara-sync |
rpm | Nobara | off |
| Debian packages | apt |
deb | Debian, Ubuntu | off |
| Flatpak applications and runtimes | flatpak |
flatpak | all | on |
| AppImages | Gear Lever | appimage | all | on |
paru is in the table two times. paru updates two kinds of package, and the user can select one kind without the other.
Two enabled tools in one domain would install the same updates two times and count them two times. bs-updater prevents this at two places:
- In the settings page. The page shows a warning when two selected tools have the same domain. The page also shows a warning when no tool is selected.
-
In the command.
resolve_toolsholds the first tool of a domain and removes each subsequent tool of that domain. It sends a message to the error output for each removal.
The message has this form:
bs-update: pacman and paru (repository packages) both update repository packages; using pacman
The sequence in the tool table gives the priority. pacman is before
paru-repo, so a selection of both tools uses pacman.
| Domain | Tools | Reason |
|---|---|---|
| repo |
pacman and paru-repo
|
paru updates repository packages already. |
| rpm |
dnf and nobara-sync
|
nobara-sync installs its RPM updates with DNF. |
pacman, dnf and apt are in three different domains, so they do not
conflict. A system has one of these three tools.
The defaults suit Arch Linux. Without a configuration file, bs-update
enables these four tools:
paru-repo paru-aur flatpak gearlever
pacman is off by default, because paru-repo covers the same domain. On
another distribution, the user selects the correct tool in the settings
page. Chapter 9 gives the selection for each distribution.
Each count command runs without root privileges.
| Tool | Count command | Method |
|---|---|---|
pacman, paru-repo
|
checkupdates |
Counts the output lines. |
paru-aur |
paru -Qua |
Counts the output lines. |
dnf, nobara-sync
|
dnf -q check-update |
Counts the package lines. |
apt |
apt-get -q -s upgrade |
Counts the Inst lines. |
flatpak |
flatpak remote-ls --updates |
Counts the output lines. |
gearlever |
gearlever --list-updates |
Counts the output lines. |
The command ignores the exit code of each count command. dnf check-update
gives the exit code 100 when updates are available, and checkupdates gives
a non-zero exit code when no updates are available. A count of zero is the
correct result in each of these conditions.
| Tool | Update command |
|---|---|
pacman |
sudo pacman -Syu |
paru-repo |
paru -Syu --repo |
paru-aur |
paru -Sua |
paru-repo and paru-aur together |
paru -Syu |
dnf |
sudo dnf upgrade |
nobara-sync |
nobara-sync cli |
apt |
sudo apt-get update && sudo apt-get upgrade |
flatpak |
flatpak update |
gearlever |
gearlever --update --all --yes |
When the user enables both paru entries, bs-update runs paru -Syu one
time. paru updates the repository packages and the AUR packages in one
transaction, so two runs are not necessary.
bs-updater technical paper — written in Simplified Technical English, ASD-STE100 Issue 9. See chapter 13.