unofficial mirror of bug-guix@gnu.org 
 help / color / mirror / code / Atom feed
From: Julien Lepiller <julien@lepiller.eu>
To: bo0od <bo0od@riseup.net>
Cc: 47748@debbugs.gnu.org
Subject: bug#47748: Packages which cant be find/removed by guix remove
Date: Wed, 14 Apr 2021 14:48:42 -0400	[thread overview]
Message-ID: <609E45C8-122E-4894-A9E4-C5F12B3BD39A@lepiller.eu> (raw)
In-Reply-To: <cd89b752-1d41-0179-9111-a1eb9b03c173@riseup.net>

Le 14 avril 2021 12:31:31 GMT-04:00, bo0od <bo0od@riseup.net> a écrit :
> > In particular, there are multiple
>> profiles, and each of them could contain avahi or a reference to
>avahi.
>
>That doesnt address the issue im talking about, why guix remove doesnt 
>recognize the package that number 1 , number 2 if the package will
>break 
>something important guix should say that after processing the command 
>guix remove x package then show warning message this x package is 
>dependency of xyz which might break your system would you like to 
>proceed?  <- something like that.

guix removc only operates on your user profile, which doesn't contain avahi. That's what it's telling you.

You can check that you do not have avahi installed in your profile with

guix package -l

And that none of your installed packages depend on it:

guix size `readlink -f ~/.guix-profile`

Guix operates only on explicitely installed packages, which I think is much cleaner and allows it to be more predictable. Compare, if A depends on B and C, initially you have all three.

apt install B then apt remove A -> nothing
apt remove A then apt install B -> only B

guix install B then guix remove A -> B and C
guix remove A then guix install B -> B and C

guix operates on explicitely installed packages, dependencies are implementation details. It just doesn't work like apt or other package managers. New tool, new usages.

>
> > 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
>
>do you mean config.scm? if you need something type the command or where
>
>and i will bring it to you.

Yes, I meant /etc/config.scm (well, by convention, as you can always create the file elsewhere). But I don't need it anymore, since I learned it's actually part of the default %desktop-services.

>
>> 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 dont consider that an issue when someone use guix remove x then ops
>
>guess what nothing indicate something can be done, and guess what no 
>error message gonna tell you what the hell going on. Least can be said 
>about this bad usability.

It's not "no message", is it? I lust tried "guix remove hello", and I don't have hello in my profile. It told me (in red): error: package 'hello' not found in profile.

Not sure how it could be more explicit.

>
> > I hope this is helpful :)
>
>Appreciated :)
>
>Julien Lepiller:
>> Le Tue, 13 Apr 2021 12:46:19 +0000,
>> bo0od <bo0od@riseup.net> 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 :)
>> 





  parent reply	other threads:[~2021-04-14 18:49 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-04-13 12:46 bug#47748: Packages which cant be find/removed by guix remove bo0od
2021-04-14  0:28 ` Julien Lepiller
2021-04-14  2:44   ` Mark H Weaver
2021-04-14 10:34     ` Julien Lepiller
2021-04-14 16:07       ` Mark H Weaver
2021-04-16 14:52         ` Mark H Weaver
2021-04-14 16:31   ` bo0od
2021-04-14 18:42     ` Mark H Weaver
2021-04-15  9:26       ` bo0od
2021-04-15 19:34         ` Mark H Weaver
2021-04-16  2:45           ` bo0od
2021-04-14 18:44     ` Maxime Devos
2021-04-15  9:37       ` bo0od
2021-04-15 18:04         ` Maxime Devos
2021-04-16  2:58           ` bo0od
2021-04-14 18:48     ` Julien Lepiller [this message]
2021-04-15 10:16       ` bo0od
2021-04-15 11:03         ` Julien Lepiller
2021-04-16  2:11           ` bo0od
2021-04-16  3:41             ` Leo Famulari
2021-04-16  4:37               ` bo0od
2021-04-16  7:23                 ` Leo Famulari

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=609E45C8-122E-4894-A9E4-C5F12B3BD39A@lepiller.eu \
    --to=julien@lepiller.eu \
    --cc=47748@debbugs.gnu.org \
    --cc=bo0od@riseup.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).