Subject: bug#47748: Packages which cant be find/removed by guix remove

From: Julien Lepiller <[email-masked]>
Date: Wed, 14 Apr 2021 02:28:59 +0200

Le Tue, 13 Apr 2021 12:46:19 +0000,
bo0od <[email-masked]> a écrit :

> Hi There,
> 
> I saw some packages installed by default with guix like
> wpa-supplicant and avahi..., But if i type 'guix remove av' and i
> press tab nothing will complete the word and if i type 'guix remove
> avahi' or 'guix remove wpa-supplicant' ... just give error message.
> (check the uploaded txt file)

Guix has a different notion of "installed" and "not installed" from
other distros because of its model (and because it lets us use (but not
"install") incompatible packages). In particular, there are multiple
profiles, and each of them could contain avahi or a reference to avahi.
In your case, I think avahi comes from two places:

First, guix itself depends on guile-avahi, which brings in avahi.
That's because substitution can use avahi to get substitutes from your
local network.

Second, your operating-system declaration apparently is running
the avahi server. Since you didn't share it, I don't know if it comes
from a service dependency or if it's declared explicitely, but if you
don't want it to be running, that's where you'd remove it (either
remove the explicit service, or the dependent service (guix publish?))

Avahi is added by the installer if you enable "Substitute server
discovery" in the installer.

Similarly, wpa-supplicant is probably part of another profile, or maybe
declared in your config.scm. Once you change it, you should reconfigure
(guix system reconfigure /etc/config.scm). This will not remove files
from the store, until you run guix gc.

When you run "guix remove" as user, it only affects your user profile,
in which there is no avahi or wpa-supplicant package. Also note that, if
any of your user's profile had a dependency on avahi, "guix remove
avahi" would not have any effect on it either, because it's not
installed explicitely, it's only present in the store to satisfy a
dependency.

You can find out about these dependencies with guix graph, for instance:

guix graph -t references --path `readlink -f \
  $HOME/.config/guix/current` `guix build avahi`

/gnu/store/9yvb5kknnq8b1mrfsqaggrgjifk2mgs4-profile
/gnu/store/dy46rf8aknz4im7sjz89i9b7snqi1m8w-guix-f91e1046c
/gnu/store/szyzmhsxckvb0h7pdh9ags9apd1sch7m-guix-command
/gnu/store/zjpqr7m6j3cjk5l2sr81yxyg5ny4njy6-guix-module-union
/gnu/store/jawdw5ca459z8y3a6hcd5pd772zjrs93-guile-avahi-0.4.0-1.6d43caf
/gnu/store/gj0irsda1y0msawq8g1wfcgw7xcsxz2m-avahi-0.8

I hope this is helpful :)