Skip to content

Dependency hell and minimalism

Basically to figure out why some things turn out the way they do:

Using pacman-contrib we can explore full dep trees. This simulates the install flow and counts/parses recursive deps.

./RUN --script count examples/config-sample-full.json --why polkit

{'bluez', 'intel-media-driver', 'libpulse', 'inotify-tools', 'mesa', 'cups', 'pipewire-pulse', 'micro', 'opendoas', 'base', 'vulkan-intel', 'timeshift', 'pipewire-alsa', 'pacman-contrib', 'gst-plugin-pipewire', 'wireplumber', 'pipewire', 'grub', 'system-config-printer', 'iwd', 'fail2ban', 'zram-generator', 'linux-zen', 'bottom', 'btrfs-progs', 'gdm', 'libva-intel-driver', 'pipewire-jack', 'networkmanager', 'ufw', 'git', 'linux-firmware', 'man-db', 'efibootmgr', 'syncthing', 'chromium', 'grub-btrfs', 'cups-pk-helper', 'bluez-utils'}

Explicit packages: 39
Resolving dependencies...
  39/39 | resolved: 574

Total packages (with deps): 574

'polkit' is pulled in by 3 explicit package(s):
  cups-pk-helper
  gdm
  networkmanager

This is useful before commiting to an install and understanding why certain things always do end up on your system (regardless of choices). For a seatd only setup we'll have to jump a few hoops: Network option Copy from ISO or iwd standalone other NM options pull in polkit.

networkmanager → wpa_supplicant → pcsclite → polkit


Similarly you can test the estimate final size of your install.

Finish configuring in the TUI: then ./RUN --script size /path/to/config