On 27/3/23 15:30, Uwe Koloska wrote:
Am 26.03.23 um 09:25 schrieb David Runge:
On 2023-03-26 07:55:06 (+0100), Spencer Collyer wrote:
I'm installing a new system, and using the instructions at https://wiki.archlinux.org/title/Pacman/Tips_and_tricks sections 2.5 and 2.6 to get the list of packages to install from my current system.
When I run the `pacman -S --needed - < pkglist.txt` part, I get a few cases where pacman says "There are N providers available for X`.
There are multiple situations where one thing is provided by several packages. This is also referred to as a "virtual provides", as the thing that the packages provide usually do not exist as a package themselves.
But why are these meta packages part of the generated list? I would expect only real packages there.
I guess it is because say you have a virtual package named "emoji-fonts" that is provided by real packages "noto-emoji" and "joypixels-font". What other real packages will do is to depend on "emoji-fonts" (not "noto-emoji" or "joypixels-font") so that you (the user) can choose which want to use to fulfill the dependency. Now, imagine that "gnome" depends on "emoji-fonts". When pacman computes the dependency graph it only finds you need "emoji-fonts", not the real packages. So then, it searches who implement "emoji-fonts" and asks you to choose. But you are in fact installing the virtual and the real package, meaning that pacman database will probably contain both. Does that make sense?