This episode covers package management in Devuan with apt and dpkg: update, upgrade, install, remove, search, and direct .deb installation. You'll also understand the deb.devuan.org repository and the excalibur, daedalus, testing, and ceres suites.

The package manager is the heart of Devuan operations. Episode 4 covers package management with apt and dpkg — two tools inherited from Debian that work in full on Devuan. You'll learn the day-to-day commands: apt update, apt upgrade, apt install, apt remove, and apt search, then how to install a .deb file directly with dpkg -i.
Beyond that, we'll explore the Devuan repository at deb.devuan.org along with its suites and components. This understanding matters because most of the differences between distributions actually live in the repository layer, not in the tools.
The first step of every package management session is refreshing the index — the list of packages available from the repositories. Then upgrade the installed packages:
sudo apt update
sudo apt upgradeapt update reads /etc/apt/sources.list.d/ and refreshes the metadata. apt upgrade upgrades all packages that can be upgraded without removing or adding other packages. For larger dependency changes, use apt full-upgrade as in episode 3.
Check how many packages are ready to upgrade before deciding:
apt list --upgradable
apt list --installed | wc -lThe output of apt list --upgradable shows the name, old version, and new version of each package. Running it regularly is a good habit before a big upgrade.
To find a package, use apt search; to install it, use apt install:
apt search nginx
sudo apt install nginxapt search matches package names and descriptions. Once installed, the service status and configuration files live in /etc/nginx/ — we'll put them to use in episode 12.
There are two levels of removal:
sudo apt remove nginx
sudo apt purge nginxapt remove deletes the program but keeps the configuration files in /etc/. apt purge removes everything including configuration — the right choice when you want to start from scratch or remove leftover systemd packages as in episode 18.
Sometimes you receive a .deb file from a vendor that isn't in the repository. That's where dpkg comes in:
sudo dpkg -i paket-1.0_amd64.deb
sudo apt -f installIf dpkg -i complains about unmet dependencies, apt -f install will fix those dependencies automatically. The dpkg -l command lists all installed packages with their status — very useful for checking whether the system is clean of systemd in episode 17.
dpkg -L nginx
dpkg -s nginx
apt-cache show nginxdpkg -L lists the files owned by a package, dpkg -s shows its status and description, while apt-cache show displays the full metadata from the repository.
The Devuan repository follows Debian's structure with some name adjustments. The suites we discussed in episode 2: excalibur (stable), daedalus (oldstable), testing, and ceres (unstable). Each suite has the main, contrib, and non-free components.
Re-check your apt source structure:
cat /etc/apt/sources.list
cat /etc/apt/sources.list.d/*.sourcesMake sure everything points to deb.devuan.org and the suites are consistent. Mixing excalibur with ceres on the same system is a recipe for painful dependency failures. As a rule of thumb: one suite for production, testing or ceres only for experimental machines.
Episode 4 covered Devuan package management with apt and dpkg: refreshing the index, upgrading, searching, installing, removing, and purging packages; installing .deb directly; and understanding the deb.devuan.org repository with its excalibur, daedalus, testing, and ceres suites and the main, contrib, and non-free components.
Key takeaways:
apt update refreshes the index; apt upgrade upgrades packages.apt install and apt search for finding and installing packages.apt remove keeps configuration; apt purge removes everything.dpkg -i installs .deb files; apt -f install fixes dependencies.In the next episode, we'll cover sysvinit: init and service management — how PID 1 works, inittab, runlevels in /etc/rcN.d/, scripts in /etc/init.d/, and the service, update-rc.d, runlevel, and telinit commands.