Subject: runit and dinit conflict during Arix-runit installation from base ISO
1. Problem: Some conflicts arise between runit and dinit packages during Artix-runit installation from base ISO.
2. Description: Trying to install Artix-runit from the base ISO:
artix-base-runit-20210726-x86_64.iso 846 MB 2021-07-25 15:16:15
Doing installation by strictly following Artix Wiki Installation article:
https://wiki.artixlinux.org/Main/Installation
Everything works fine until runit and elogind-runit packages installation. basestrap returns the error about runit and dinit being in conflict and refuses to install two packages.
(typed in by hand on another computer):
artixlinux:[artix]:~$ sudo basestarp /mnt runit elogind-runit
==> Creating install root at /mnt
-> Installing packages to /mnt
:: Syncronizing package databases...
system is up to date
world is up to date
galaxy is up to date
resolving dependencies...
looking for conflicting packages...
:: runit and dinit are in conflict (svc-manager). Remove dinit? [y/N]
error: unresolvable package confliicts detected
error: failed to prepare transaction (conflicting dependencies)
:: runit and dinit are in conflict
==> ERROR: Failed to install packages to new root
artixlinux:[artix]:~$
Artix Wiki Installation guide doesn't describe this situation.
Actually, there are two more conflicts between runit and dinit. They are shown below.
3. Solution: run basestrap with auto-confirmation disabled and two overwrites
By default, basestrap runs with auto-confirmation enabled. So it auto-responds with N to "Remove dinit? [y/N]" question.
Add -i switch to run basestrap command with auto-confirmation disabled and to reply with y to the question (the command still fails, for other reasons):
sudo basestrap -i /mnt runit elogind-runit
(typed in by hand on another computer):
artixlinux:[artix]:~$ sudo basestarp -i /mnt runit elogind-runit
==> Creating install root at /mnt
-> Installing packages to /mnt
:: Syncronizing package databases...
system is up to date
world is up to date
galaxy is up to date
resolving dependencies...
looking for conflicting packages...
:: runit and dinit are in conflict (svc-manager). Remove dinit? [y/N] y
:: elogind-runit and elogind-dinit are in conflict (init-elogind). Remove elogind-dinit? [y/N] y
:: dbus-runit and dbus-dinit are in conflict (dbus-dinit). Remove dbus-dinit? [y/N] y
warning: dependency cycle detected:
warning: runit-rc will be installed before its runit dependency
Packages (10):
bootlogd-2.89-2
dbus-dinit-20211104-1 [removal]
dbus-runit-202104-27-1
dinit-0.12.0-4 [removal]
elogind-dinit-20211030-1 [removal]
logrotate-3.18.1-1
popt-1.18-1
runit-rc-20210122-1
elogind-runit-20210413-1
runit-2.1.2-28
Total Download Size: 0.50 MiB
Total Installed Size: 2.06 MiB
Net Upgrade Size: 1.79 MiB
:: Proceed with installation? (Y/n) Y
:: Retrieving packages...
popt-1.18-1-x86_64
logrotate-3.18.1-1-x86_64
bootlogd-2.89-2-x86_64
runit-rc-20210122-1-x86_64
runit-2.1.2-28-x86_64
dbus-runit-202104-27-1-any
elogind-runit-20210413-1-any
Total (7/7)
(7/7) checking keys in keyring
(7/7) checking package integrity
(7/7) loading package files
(7/7) checking for file conflicts
error: failed to commit transaction (conflicting files)
runit-rc: /mnt/usr/bin/modules-load exists in filesystem (owned by dinit-rc)
runit-rc: /mnt/usr/share/man/man8/modules-load.8.gz exists in filesystem (owned by dinit-rc)
Errors occurred, no packages were upgraded.
==> ERROR: Failed to install packages to new root
artixlinux:[artix]:~$
runit and elogind-runit are about to be installed, but they conflict with dinit files already existing in filesystem.
Run basestrap with auto-confirmation disabled and two pacman's-style --overwrite options to overwrite existing files and avoid conflicts. The full command is:
sudo basestrap -i /mnt runit elogind-runit --overwrite /mnt/usr/bin/modules-load --overwrite /mny/usr/share/man/man8/modules-load.8.gz
The command successfully installs runit and elogind-runit packages.
Other encountered problems (all solved) are not related to runit and dinit. Installation arrives up to the end. Installed DE behaves as expected.
With respect