Skip to content
/ eopkg Public

eopkg - Solus package manager implemented in python3

Notifications You must be signed in to change notification settings

getsolus/eopkg

Repository files navigation

eopkg package manager

Fork of the PiSi Package Manager, originally from Pardus Linux, and adapted/maintained during the lifetime of SolusOS, EvolveOS and Solus.

The python3 port is now the main development branch.

FilesDB on-disk version format 4

From version 4.1.5, eopkg.py3/bin will be using a FILESDB_FORMAT_VERSION = 4 versioned gdbm/dbm.gnu format /var/lib/eopkg/info/files.db database, and will auto-regen its FilesDB cache if it encounters anything but the above.

In earlier versions, eopkg.py3 was using an unversioned gdbm/dbm.gnu format /var/lib/eopkg/info/files.db database.

This implies that from version 4.1.5 and forward, eopkg.py3/bin will need to be built with gdbm support, but no longer needs to be built with bsddb/db5 support (for which upstream CPython support was dropped in 3.9 anyway).

eopkg venv testing

Prerequisites

On e.g. RHEL 9.x compatible distros, install the following:

sudo dnf install python3.11-pip-wheel python3.11-devel python3.11 python3.11-libs

On other distributions, install the equivalent packages.

To build the eopkg.1 man-page, the pandoc executable needs to be available.

Setting up the eopkg_venv venv

  • Execute ./prepare_eopkg_venv.sh
  • Depending on the shell you use, source one of eopkg_venv/bin/activate, eopkg_venv/bin/activate.fish, or eopkg_venv/bin/activate.zsh.

Now you should be able to execute eopkg.py3 --version successfully, independently of whether your host system is running Solus or not.

Running commands with sudo inside the venv

To run a command with elevated privileges via sudo inside the venv, execute:

sudo -E env PATH="${PATH}" <the command>

Example:

source eopkg_venv/bin/activate
sudo -E env PATH="${PATH}" eopkg.py3 --version
deactivate

Building a Solus chroot using the eopkg_venv eopkg.py3 version

After setting up and activating the venv as above, run ./build_chroot.sh followed by ./start_systemd_nspawn.sh (recommended) or /start_chroot.sh.

This will dump you to a root shell in a minimal Solus chroot.

Exiting systemd-nspawn chroot

Execute poweroff as root.

Exiting non-systemd-nspawn chroot

Type exit or CTRL+D to exit the chroot.

After exiting the chroot, you might be prompted by sudo to enter your user password; this is because the kernel virtual filesystems that were mounted into the chroot directory need to be properly unmounted again.

Deactivating the eopkg_venv

Type deactivate to deactivate the eopkg_venv, after which you should be back to your normal shell session.