GNU bug report logs - #47748
Packages which cant be find/removed by guix remove

Previous Next

Package: guix;

Reported by: bo0od <bo0od <at> riseup.net>

Date: Tue, 13 Apr 2021 12:47:02 UTC

Severity: normal

To reply to this bug, email your comments to 47748 AT debbugs.gnu.org.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Tue, 13 Apr 2021 12:47:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to bo0od <bo0od <at> riseup.net>:
New bug report received and forwarded. Copy sent to bug-guix <at> gnu.org. (Tue, 13 Apr 2021 12:47:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: bo0od <bo0od <at> riseup.net>
To: bug-guix <at> gnu.org
Subject: Packages which cant be find/removed by guix remove
Date: Tue, 13 Apr 2021 12:46:19 +0000
[Message part 1 (text/plain, inline)]
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)
[cantremove (text/plain, attachment)]

Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Wed, 14 Apr 2021 00:30:02 GMT) Full text and rfc822 format available.

Message #8 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: Julien Lepiller <julien <at> lepiller.eu>
To: bo0od <bo0od <at> riseup.net>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Wed, 14 Apr 2021 02:28:59 +0200
Le Tue, 13 Apr 2021 12:46:19 +0000,
bo0od <bo0od <at> 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 :)




Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Wed, 14 Apr 2021 02:47:02 GMT) Full text and rfc822 format available.

Message #11 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Julien Lepiller <julien <at> lepiller.eu>, bo0od <bo0od <at> riseup.net>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Tue, 13 Apr 2021 22:44:31 -0400
Julien Lepiller <julien <at> lepiller.eu> writes:

> 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,

The avahi service is included in '%desktop-services'.

  https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/desktop.scm?id=a758a8a3c20052c5f1228e1ec80068652bbc3849#n1267

I don't know off-hand what is the current recommended way to remove
unwanted services from convenience variables like '%desktop-services'.
I suppose something like this (untested) in place of
'%desktop-services':

__ (remove (lambda (svc)
____________ (eq? (service-kind svc) avahi-service-type))
__________ %desktop-services)

with at least the following modules included at the top of the file:

__ (use-modules (gnu services)
_______________ (gnu services avahi)
_______________ (srfi srfi-1))

My own longstanding (and questionable) approach has been to avoid using
'%desktop-services', and instead to inline its contents into my OS
config, minus the stuff I don't want.  However, if you choose to use
that method, it's probably a good idea to periodically check for changes
to '%desktop-services', and to integrate those changes into your own
config where appropriate.

        Mark




Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Wed, 14 Apr 2021 10:35:02 GMT) Full text and rfc822 format available.

Message #14 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: Julien Lepiller <julien <at> lepiller.eu>
To: Mark H Weaver <mhw <at> netris.org>,bo0od <bo0od <at> riseup.net>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Wed, 14 Apr 2021 06:34:21 -0400
Le 13 avril 2021 22:44:31 GMT-04:00, Mark H Weaver <mhw <at> netris.org> a écrit :
>Julien Lepiller <julien <at> lepiller.eu> writes:
>
>> 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,
>
>The avahi service is included in '%desktop-services'.
>
>https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/services/desktop.scm?id=a758a8a3c20052c5f1228e1ec80068652bbc3849#n1267
>
>I don't know off-hand what is the current recommended way to remove
>unwanted services from convenience variables like '%desktop-services'.
>I suppose something like this (untested) in place of
>'%desktop-services':
>
>__ (remove (lambda (svc)
>____________ (eq? (service-kind svc) avahi-service-type))
>__________ %desktop-services)
>
>with at least the following modules included at the top of the file:
>
>__ (use-modules (gnu services)
>_______________ (gnu services avahi)
>_______________ (srfi srfi-1))
>
>My own longstanding (and questionable) approach has been to avoid using
>'%desktop-services', and instead to inline its contents into my OS
>config, minus the stuff I don't want.  However, if you choose to use
>that method, it's probably a good idea to periodically check for
>changes
>to '%desktop-services', and to integrate those changes into your own
>config where appropriate.
>
>        Mark

The manual suggests modify-services in some places:

(modify-services %desktop-services
  (delete avahi-service-type))




Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Wed, 14 Apr 2021 16:10:01 GMT) Full text and rfc822 format available.

Message #17 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Julien Lepiller <julien <at> lepiller.eu>, bo0od <bo0od <at> riseup.net>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Wed, 14 Apr 2021 12:07:07 -0400
Hi Julien,

Julien Lepiller <julien <at> lepiller.eu> writes:

> The manual suggests modify-services in some places:
>
> (modify-services %desktop-services
>   (delete avahi-service-type))

I don't see how this can work.  (modify-services ...) expands into a
call to 'map', which is incapable of deleting elements.  Also, the
'modify-services' docstring states:

  "Each clause must have the form: (TYPE VARIABLE => BODY)"

Am I missing something?

      Mark




Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Wed, 14 Apr 2021 16:32:01 GMT) Full text and rfc822 format available.

Message #20 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: bo0od <bo0od <at> riseup.net>
To: Julien Lepiller <julien <at> lepiller.eu>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Wed, 14 Apr 2021 16:31:31 +0000
> 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.

> 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.


> 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.

> I hope this is helpful :)

Appreciated :)

Julien Lepiller:
> Le Tue, 13 Apr 2021 12:46:19 +0000,
> bo0od <bo0od <at> 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 :)
> 




Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Wed, 14 Apr 2021 18:45:02 GMT) Full text and rfc822 format available.

Message #23 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: bo0od <bo0od <at> riseup.net>, Julien Lepiller <julien <at> lepiller.eu>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Wed, 14 Apr 2021 14:42:35 -0400
Hi,

bo0od <bo0od <at> riseup.net> writes:

>  > 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.

This seems to be based on a misunderstanding about what "guix remove" is
intended to do.  As Julien indicated, it is _only_ meant to remove the
given packages from the set of *explicitly-requested* packages installed
in your user profile.  More precisely, it creates a _new_ user profile
that's the same as the previous one, but with some packages removed from
the set of explicitly-requested packages.  It _never_ deletes anything.

You seem to want it to do something different than it was intended to
do, although I'm not precisely sure what that is.  Do you want it to try
to purge all copies of the given package from /gnu/store?  If so, that
might require deleting (or modifying) older system generations and older
user profiles, which would interfere with rollback functionality.  Or
perhaps you want it to automatically update all user profiles, as well
as the system, to avoid depending on that package, directly or
indirectly?  If so, there are a couple of problems with that: (1) on
multi-user systems (which is admittedly becoming an edge case) it would
violate the principle that each user should have control over their own
profiles, and (2) it would apparently involve automagically editing your
OS configuration file to remove any packages or services that depend
(directly or indirectly) on the specified packages.

From my perspective, it seems that you have expectations about how
package managers should work based on your experience with traditional
GNU/Linux distributions.  Guix is based on a radically different
approach which takes some time to become acquainted with.  Perhaps our
documentation needs to be improved to better manage user expectations.

It reminds me of how many developers responded when asked to switch to
Git from CVS or Subversion.  Many developers found that transition
difficult, and considered it a flaw in Git that it failed to conform to
their expectations.

Nonetheless, I very much appreciate your feedback.  I suspect that many
other people experimenting with Guix feel as you do, but that some of
them are simply walking away in silence.  Thanks for making a
constructive effort to engage with us on these issues.

      Regards,
        Mark




Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Wed, 14 Apr 2021 18:45:03 GMT) Full text and rfc822 format available.

Message #26 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: bo0od <bo0od <at> riseup.net>, Julien Lepiller <julien <at> lepiller.eu>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Wed, 14 Apr 2021 20:44:45 +0200
[Message part 1 (text/plain, inline)]
On Wed, 2021-04-14 at 16:31 +0000, bo0od wrote:
>  > 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?

I'm not Julien Lepiller, but I believe that's wat asked for
-- the file with the (operating-system ...) declaration.

> if you need something type the command or where 
> and i will bring it to you.
It's the *file* ‘we’ need.  (Well, the file JL needs.)
It's not a command you need to type, it's a file you need
to attach to the e-mail.

>  > 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.

Currently the error message when removing a package not existing in the profile
is:

$ guix remove m17n-lib
guix remove: error: package 'm17n-lib' not found in profile

What do you think of adding a few hints?  Some ideas:

guix remove: error: package 'm17n-lib' not found in profile
Hint: All users have their own profiles.  To remove packages from the profile
of the root user, run "sudo guix remove PACKAGES" or equivalent.
Hint: On Guix System, packages can defined in the operating system declaration.
These are not affected by "guix remove PACKAGES".

and, when applicable:

Hint: 'm17n-lib' is propagated from 'MANUALLY-INSTALLED-PACKAGE', via N intermediate
packages.  Consider running "guix remove MANUALLY-INSTALLED-PACKAGE" instead.

Would that have been helpful to you?

Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Wed, 14 Apr 2021 18:49:02 GMT) Full text and rfc822 format available.

Message #29 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: Julien Lepiller <julien <at> lepiller.eu>
To: bo0od <bo0od <at> riseup.net>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Wed, 14 Apr 2021 14:48:42 -0400
Le 14 avril 2021 12:31:31 GMT-04:00, bo0od <bo0od <at> 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 <at> 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 :)
>> 





Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Thu, 15 Apr 2021 09:27:02 GMT) Full text and rfc822 format available.

Message #32 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: bo0od <bo0od <at> riseup.net>
To: Mark H Weaver <mhw <at> netris.org>, Julien Lepiller <julien <at> lepiller.eu>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Thu, 15 Apr 2021 09:26:20 +0000
> You seem to want it to do something different than it was intended to
> do, although I'm not precisely sure what that is.  Do you want it to try
> to purge all copies of the given package from /gnu/store?  If so, that
> might require deleting (or modifying) older system generations and older
> user profiles, which would interfere with rollback functionality.

Isnt this the standard understanding of deleting a package whether in 
GNU/Linux or Windows or Mac? If user has the root rights he should be 
able to delete software x, otherwise software x just hanging there 
forever and to delete it someone needs a hell of steps to do that and if 
so then this is can have usability issues , and so as security issues. 
usability issues are clear like the example above which i want to delete 
x using package manager (Thats gnu/linux way of deleting packages if 
mistaken correct me) then it wont be deleted. For security issues if x 
package is outdated and/or got widely exploited security vulnerability 
it just wont be gone from the distro (least we can say easily) leading 
to permanent vulnerability in the OS.

> Or perhaps you want it to automatically update all user profiles, as well
> as the system, to avoid depending on that package, directly or
> indirectly?  If so, there are a couple of problems with that: (1) on
> multi-user systems (which is admittedly becoming an edge case) it would
> violate the principle that each user should have control over their own
> profiles, and (2) it would apparently involve automagically editing your
> OS configuration file to remove any packages or services that depend
> (directly or indirectly) on the specified packages.

So you see for example wpa-supplicant is not essential package for an OS 
which doesnt use wifi, Yet in guix i cant just delete it using guix 
remove it or sudo guix remove it, I find this annoying to have something 
like this happening within my OS.

Check main distros like Debian or Fedora and i want to know where is 
that avahi or wpa-supplicant (god know how many more) cant be removed?

Btw even packages which might break the distro you can delete them if 
you have root rights using just the package manager with the same simple 
command.

> Nonetheless, I very much appreciate your feedback.  I suspect that many
> other people experimenting with Guix feel as you do, but that some of
> them are simply walking away in silence.

Sure anytime, Thanks to you 2 <f>

Mark H Weaver:
> Hi,
> 
> bo0od <bo0od <at> riseup.net> writes:
> 
>>   > 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.
> 
> This seems to be based on a misunderstanding about what "guix remove" is
> intended to do.  As Julien indicated, it is _only_ meant to remove the
> given packages from the set of *explicitly-requested* packages installed
> in your user profile.  More precisely, it creates a _new_ user profile
> that's the same as the previous one, but with some packages removed from
> the set of explicitly-requested packages.  It _never_ deletes anything.
> 
> You seem to want it to do something different than it was intended to
> do, although I'm not precisely sure what that is.  Do you want it to try
> to purge all copies of the given package from /gnu/store?  If so, that
> might require deleting (or modifying) older system generations and older
> user profiles, which would interfere with rollback functionality.  Or
> perhaps you want it to automatically update all user profiles, as well
> as the system, to avoid depending on that package, directly or
> indirectly?  If so, there are a couple of problems with that: (1) on
> multi-user systems (which is admittedly becoming an edge case) it would
> violate the principle that each user should have control over their own
> profiles, and (2) it would apparently involve automagically editing your
> OS configuration file to remove any packages or services that depend
> (directly or indirectly) on the specified packages.
> 
>>From my perspective, it seems that you have expectations about how
> package managers should work based on your experience with traditional
> GNU/Linux distributions.  Guix is based on a radically different
> approach which takes some time to become acquainted with.  Perhaps our
> documentation needs to be improved to better manage user expectations.
> 
> It reminds me of how many developers responded when asked to switch to
> Git from CVS or Subversion.  Many developers found that transition
> difficult, and considered it a flaw in Git that it failed to conform to
> their expectations.
> 
> Nonetheless, I very much appreciate your feedback.  I suspect that many
> other people experimenting with Guix feel as you do, but that some of
> them are simply walking away in silence.  Thanks for making a
> constructive effort to engage with us on these issues.
> 
>        Regards,
>          Mark
> 




Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Thu, 15 Apr 2021 09:38:02 GMT) Full text and rfc822 format available.

Message #35 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: bo0od <bo0od <at> riseup.net>
To: Maxime Devos <maximedevos <at> telenet.be>, Julien Lepiller <julien <at> lepiller.eu>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Thu, 15 Apr 2021 09:37:20 +0000
> guix remove: error: package 'm17n-lib' not found in profile
> Hint: All users have their own profiles.  To remove packages from the 
profile
> of the root user, run "sudo guix remove PACKAGES" or equivalent.

yeah very nice one, except that "sudo guix remove package" doesnt work :(

This is how its done in debian/fedora, for e.g this is what debian error 
give if apt needs root rights to delete a package:

"user <at> host:~$ apt remove hexchat
E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: 
Permission denied)
E: Unable to acquire the dpkg frontend lock 
(/var/lib/dpkg/lock-frontend), are you root?"

This is what it shows in Fedora:

"[user <at> host ~]$ dnf remove wpa-supplicant
Error: This command has to be run with superuser privileges (under the 
root user on most systems)."

But like i said current situation in guix is not about using sudo guix 
or guix alone.

Maxime Devos:
> On Wed, 2021-04-14 at 16:31 +0000, bo0od wrote:
>>   > 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?
> 
> I'm not Julien Lepiller, but I believe that's wat asked for
> -- the file with the (operating-system ...) declaration.
> 
>> if you need something type the command or where
>> and i will bring it to you.
> It's the *file* ‘we’ need.  (Well, the file JL needs.)
> It's not a command you need to type, it's a file you need
> to attach to the e-mail.
> 
>>   > 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.
> 
> Currently the error message when removing a package not existing in the profile
> is:
> 
> $ guix remove m17n-lib
> guix remove: error: package 'm17n-lib' not found in profile
> 
> What do you think of adding a few hints?  Some ideas:
> 
> guix remove: error: package 'm17n-lib' not found in profile
> Hint: All users have their own profiles.  To remove packages from the profile
> of the root user, run "sudo guix remove PACKAGES" or equivalent.
> Hint: On Guix System, packages can defined in the operating system declaration.
> These are not affected by "guix remove PACKAGES".
> 
> and, when applicable:
> 
> Hint: 'm17n-lib' is propagated from 'MANUALLY-INSTALLED-PACKAGE', via N intermediate
> packages.  Consider running "guix remove MANUALLY-INSTALLED-PACKAGE" instead.
> 
> Would that have been helpful to you?
> 
> Greetings,
> Maxime.
> 




Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Thu, 15 Apr 2021 10:18:01 GMT) Full text and rfc822 format available.

Message #38 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: bo0od <bo0od <at> riseup.net>
To: Julien Lepiller <julien <at> lepiller.eu>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Thu, 15 Apr 2021 10:16:51 +0000
> 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.

So how user gonna delete preinstalled packages which are not installed 
by guix install x?

wpa-supplicant is none essential package when there is no wifi, how user 
gonna delete it?

no easy way to do it (i mean easy as similarly to apt/dnf..etc) thats 
the whole issue

Maybe something like synapse should exist to do this job in guixos?

I dunno, But current idea of no clean,easy way to delete these packages 
(or similar) just bad usability experience.




Julien Lepiller:
> Le 14 avril 2021 12:31:31 GMT-04:00, bo0od <bo0od <at> 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 <at> 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 :)
>>>
> 




Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Thu, 15 Apr 2021 11:05:02 GMT) Full text and rfc822 format available.

Message #41 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: Julien Lepiller <julien <at> lepiller.eu>
To: bo0od <bo0od <at> riseup.net>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Thu, 15 Apr 2021 07:03:48 -0400
Le 15 avril 2021 06:16:51 GMT-04:00, bo0od <bo0od <at> riseup.net> a écrit :
> > 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.
>
>So how user gonna delete preinstalled packages which are not installed 
>by guix install x?
>
>wpa-supplicant is none essential package when there is no wifi, how
>user 
>gonna delete it?
>
>no easy way to do it (i mean easy as similarly to apt/dnf..etc) thats 
>the whole issue
>
>Maybe something like synapse should exist to do this job in guixos?
>
>I dunno, But current idea of no clean,easy way to delete these packages
>
>(or similar) just bad usability experience.

Again, you have the wrong idea. wpa-supplicant is not installed, but its service is running, because it's part oh %desktop-services. No amount of guix remove will help you, because it can only wosk on user (or root) profiles, not the system services.

To remove it, you need to remove it from your os declaration (/etc/config.scm) with something like this:

(modify-services %desktop-services
  (delete wpa-supplicant-service-type))

(Or something similar, the manual suggests the above for removing gdm for instance, but there seems to be doubts about whether that's actually correct or not)

Then reconfigure your new system:

sudo guix system reconfigure /etc/config.scm

Now, your new generation is not running wpa-supplicant anymore (you can check sudo herd status for that). Older generations still have wpa-supplicant, so it's still hanging around in the store. To purge it, you can delete those generations (loosing all possibility ofqrolling back to them):

sudo guix system delete-generations
guix gc # to effectively remove unnecessary store items

After that, you should not have wpa-supplicant in the store anymore.

HTH!

>
>
>
>
>Julien Lepiller:
>> Le 14 avril 2021 12:31:31 GMT-04:00, bo0od <bo0od <at> 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 <at> 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 :)
>>>>
>> 





Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Thu, 15 Apr 2021 18:05:02 GMT) Full text and rfc822 format available.

Message #44 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: Maxime Devos <maximedevos <at> telenet.be>
To: bo0od <bo0od <at> riseup.net>, Julien Lepiller <julien <at> lepiller.eu>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Thu, 15 Apr 2021 20:04:16 +0200
[Message part 1 (text/plain, inline)]
On Thu, 2021-04-15 at 09:37 +0000, bo0od wrote:
>  > guix remove: error: package 'm17n-lib' not found in profile
>  > Hint: All users have their own profiles.  To remove packages from the 
> profile
>  > of the root user, run "sudo guix remove PACKAGES" or equivalent.
> 
> yeah very nice one, except that "sudo guix remove package" doesnt work :(

I suggested two hints.  What do you think of the second hint:

Hint: On Guix System, packages can defined in the operating system declaration.
These are not affected by "guix remove PACKAGES".

I don't know if it applies to your exact situation though (not following
the discussion very closely).
 
> This is how its done in debian/fedora, for e.g this is what debian error 
> give if apt needs root rights to delete a package:
> 
> "user <at> host:~$ apt remove hexchat
> E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: 
> Permission denied)
> E: Unable to acquire the dpkg frontend lock 
> (/var/lib/dpkg/lock-frontend), are you root?"
> 
> This is what it shows in Fedora: [...]

In that case, my first hint would have been informative, no?
I don't see what you are trying to show here.

Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]

Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Thu, 15 Apr 2021 19:37:01 GMT) Full text and rfc822 format available.

Message #47 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: bo0od <bo0od <at> riseup.net>, Julien Lepiller <julien <at> lepiller.eu>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Thu, 15 Apr 2021 15:34:05 -0400
bo0od <bo0od <at> riseup.net> writes:

>  > You seem to want it to do something different than it was intended to
>  > do, although I'm not precisely sure what that is.  Do you want it to try
>  > to purge all copies of the given package from /gnu/store?  If so, that
>  > might require deleting (or modifying) older system generations and older
>  > user profiles, which would interfere with rollback functionality.
>
> Isnt this the standard understanding of deleting a package whether in 
> GNU/Linux or Windows or Mac? If user has the root rights he should be 
> able to delete software x,

The command in Guix that most closely matches what you seem to be asking
for is "guix gc --delete", which will try to delete a given set of store
items.  In your original bug report, it looks like 'avahi' was one of
the things you were trying to remove, so I'll use that as an example:

--8<---------------cut here---------------start------------->8---
mhw <at> jojen ~$ guix gc --delete /gnu/store/…-avahi-0.8
finding garbage collector roots...
guix gc: error: cannot delete path `/gnu/store/…-avahi-0.8' since it is still alive
--8<---------------cut here---------------end--------------->8---

If you get this error, you can use "guix gc --referrers" to find out
what's keeping it alive:

--8<---------------cut here---------------start------------->8---
mhw <at> jojen ~$ guix gc --referrers /gnu/store/…-avahi-0.8
/gnu/store/…-geoclue-2.5.7
/gnu/store/…-gvfs-1.40.2
/gnu/store/…-pulseaudio-14.0
/gnu/store/…-cups-filters-1.27.4
/gnu/store/…-guile-avahi-0.4.0-1.6d43caf
/gnu/store/…-avahi-0.8
/gnu/store/…-cups-2.3.3
/gnu/store/…-grilo-plugins-0.3.11
--8<---------------cut here---------------end--------------->8---

So, it looks like I won't be able to remove avahi from my store, at
least not if I want to keep GNOME, CUPS, or Pulseaudio.

For similar reasons, I can't remove Avahi from my Debian server either:

--8<---------------cut here---------------start------------->8---
root <at> world:~# dpkg -r libavahi-client3
dpkg: dependency problems prevent removal of libavahi-client3:amd64:
 libvirt0:amd64 depends on libavahi-client3 (>= 0.6.16).
 libcups2:amd64 depends on libavahi-client3 (>= 0.6.16).

dpkg: error processing package libavahi-client3:amd64 (--remove):
 dependency problems - not removing
Errors were encountered while processing:
 libavahi-client3:amd64
--8<---------------cut here---------------end--------------->8---

Anyway, I agree that it would be good to have a user-friendly way to ask
Guix why a given piece of software is in their store, and to help them
find ways to remove it, if possible.  We have some tools to help with
this, e.g. "guix gc --referrers", "guix graph --type=reverse-package",
"guix graph --type=reverse-bag", and "guix graph --path", etc, but
there's plenty of room for improvement.

      Mark




Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Fri, 16 Apr 2021 02:12:02 GMT) Full text and rfc822 format available.

Message #50 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: bo0od <bo0od <at> riseup.net>
To: Julien Lepiller <julien <at> lepiller.eu>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Fri, 16 Apr 2021 02:11:09 +0000
> Again, you have the wrong idea. wpa-supplicant is not installed, but 
its service is running, because it's part oh %desktop-services. No 
amount of guix remove will help you, because it can only wosk on user 
(or root) profiles, not the system services.
>
> To remove it, you need to remove it from your os declaration 
(/etc/config.scm) with something like this:[...]

My friend isnt this what im saying not friendly,bad 
usability,disaster...etc

And i said to have maybe something like synapse which mean addressing 
everything installed and user can just remove the packages by clicking 
on them (or lets call it the GUI way of doing it) similar to the 
functionally you showed:

"(modify-services %desktop-services
   (delete wpa-supplicant-service-type))"

... or whatever suits the development and give friendly result, But if 
you tell me in 2021 user gonna go to /x/y/z then modify manually and add 
lines blah remove blah <- call me if guix will ever be a top usable 
distro in the coming 20 years from now or ever.


Julien Lepiller:
> Le 15 avril 2021 06:16:51 GMT-04:00, bo0od <bo0od <at> riseup.net> a écrit :
>>> 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.
>>
>> So how user gonna delete preinstalled packages which are not installed
>> by guix install x?
>>
>> wpa-supplicant is none essential package when there is no wifi, how
>> user
>> gonna delete it?
>>
>> no easy way to do it (i mean easy as similarly to apt/dnf..etc) thats
>> the whole issue
>>
>> Maybe something like synapse should exist to do this job in guixos?
>>
>> I dunno, But current idea of no clean,easy way to delete these packages
>>
>> (or similar) just bad usability experience.
> 
> Again, you have the wrong idea. wpa-supplicant is not installed, but its service is running, because it's part oh %desktop-services. No amount of guix remove will help you, because it can only wosk on user (or root) profiles, not the system services.
> 
> To remove it, you need to remove it from your os declaration (/etc/config.scm) with something like this:
> 
> (modify-services %desktop-services
>    (delete wpa-supplicant-service-type))
> 
> (Or something similar, the manual suggests the above for removing gdm for instance, but there seems to be doubts about whether that's actually correct or not)
> 
> Then reconfigure your new system:
> 
> sudo guix system reconfigure /etc/config.scm
> 
> Now, your new generation is not running wpa-supplicant anymore (you can check sudo herd status for that). Older generations still have wpa-supplicant, so it's still hanging around in the store. To purge it, you can delete those generations (loosing all possibility ofqrolling back to them):
> 
> sudo guix system delete-generations
> guix gc # to effectively remove unnecessary store items
> 
> After that, you should not have wpa-supplicant in the store anymore.
> 
> HTH!
> 
>>
>>
>>
>>
>> Julien Lepiller:
>>> Le 14 avril 2021 12:31:31 GMT-04:00, bo0od <bo0od <at> 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 <at> 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 :)
>>>>>
>>>
> 




Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Fri, 16 Apr 2021 02:46:01 GMT) Full text and rfc822 format available.

Message #53 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: bo0od <bo0od <at> riseup.net>
To: Mark H Weaver <mhw <at> netris.org>, Julien Lepiller <julien <at> lepiller.eu>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Fri, 16 Apr 2021 02:45:09 +0000
Great, I believe you got my message clearly thank you as well for the 
commands.

yes in debian if you want to remove libavahi it wont be removed (without 
breaking stuff), but avahi-daemon (if its installed) you can remove it 
with no issues so as wpa-supplicant,mesa..etc

Anyway you just got my message clearly and i appreciate that <f>.

Mark H Weaver:
> bo0od <bo0od <at> riseup.net> writes:
> 
>>   > You seem to want it to do something different than it was intended to
>>   > do, although I'm not precisely sure what that is.  Do you want it to try
>>   > to purge all copies of the given package from /gnu/store?  If so, that
>>   > might require deleting (or modifying) older system generations and older
>>   > user profiles, which would interfere with rollback functionality.
>>
>> Isnt this the standard understanding of deleting a package whether in
>> GNU/Linux or Windows or Mac? If user has the root rights he should be
>> able to delete software x,
> 
> The command in Guix that most closely matches what you seem to be asking
> for is "guix gc --delete", which will try to delete a given set of store
> items.  In your original bug report, it looks like 'avahi' was one of
> the things you were trying to remove, so I'll use that as an example:
> 
> --8<---------------cut here---------------start------------->8---
> mhw <at> jojen ~$ guix gc --delete /gnu/store/…-avahi-0.8
> finding garbage collector roots...
> guix gc: error: cannot delete path `/gnu/store/…-avahi-0.8' since it is still alive
> --8<---------------cut here---------------end--------------->8---
> 
> If you get this error, you can use "guix gc --referrers" to find out
> what's keeping it alive:
> 
> --8<---------------cut here---------------start------------->8---
> mhw <at> jojen ~$ guix gc --referrers /gnu/store/…-avahi-0.8
> /gnu/store/…-geoclue-2.5.7
> /gnu/store/…-gvfs-1.40.2
> /gnu/store/…-pulseaudio-14.0
> /gnu/store/…-cups-filters-1.27.4
> /gnu/store/…-guile-avahi-0.4.0-1.6d43caf
> /gnu/store/…-avahi-0.8
> /gnu/store/…-cups-2.3.3
> /gnu/store/…-grilo-plugins-0.3.11
> --8<---------------cut here---------------end--------------->8---
> 
> So, it looks like I won't be able to remove avahi from my store, at
> least not if I want to keep GNOME, CUPS, or Pulseaudio.
> 
> For similar reasons, I can't remove Avahi from my Debian server either:
> 
> --8<---------------cut here---------------start------------->8---
> root <at> world:~# dpkg -r libavahi-client3
> dpkg: dependency problems prevent removal of libavahi-client3:amd64:
>   libvirt0:amd64 depends on libavahi-client3 (>= 0.6.16).
>   libcups2:amd64 depends on libavahi-client3 (>= 0.6.16).
> 
> dpkg: error processing package libavahi-client3:amd64 (--remove):
>   dependency problems - not removing
> Errors were encountered while processing:
>   libavahi-client3:amd64
> --8<---------------cut here---------------end--------------->8---
> 
> Anyway, I agree that it would be good to have a user-friendly way to ask
> Guix why a given piece of software is in their store, and to help them
> find ways to remove it, if possible.  We have some tools to help with
> this, e.g. "guix gc --referrers", "guix graph --type=reverse-package",
> "guix graph --type=reverse-bag", and "guix graph --path", etc, but
> there's plenty of room for improvement.
> 
>        Mark
> 




Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Fri, 16 Apr 2021 02:59:02 GMT) Full text and rfc822 format available.

Message #56 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: bo0od <bo0od <at> riseup.net>
To: Maxime Devos <maximedevos <at> telenet.be>, Julien Lepiller <julien <at> lepiller.eu>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Fri, 16 Apr 2021 02:58:39 +0000
> I suggested two hints.  What do you think of the second hint:
>
> Hint: On Guix System, packages can defined in the operating system 
declaration.
> These are not affected by "guix remove PACKAGES".

Yeah also this one is good, except user need to know "operating system 
declaration" beforehand but no issue anything better than the previous 
error message.

> I don't see what you are trying to show here.

Just showing error messages of other distros.

But anyway your hints are better than the default used one, At least 
user can ask what i should use instead of "guix remove packages", but 
not oh what is profile guix talking about what profile i should use...etc

I hope you got the idea im trying to make.

(fixing the error message is not the ideal solution, ideal solution is 
to have friendly control on these packages. but this is for sure help as 
well)

Maxime Devos:
> On Thu, 2021-04-15 at 09:37 +0000, bo0od wrote:
>>   > guix remove: error: package 'm17n-lib' not found in profile
>>   > Hint: All users have their own profiles.  To remove packages from the
>> profile
>>   > of the root user, run "sudo guix remove PACKAGES" or equivalent.
>>
>> yeah very nice one, except that "sudo guix remove package" doesnt work :(
> 
> I suggested two hints.  What do you think of the second hint:
> 
> Hint: On Guix System, packages can defined in the operating system declaration.
> These are not affected by "guix remove PACKAGES".
> 
> I don't know if it applies to your exact situation though (not following
> the discussion very closely).
>   
>> This is how its done in debian/fedora, for e.g this is what debian error
>> give if apt needs root rights to delete a package:
>>
>> "user <at> host:~$ apt remove hexchat
>> E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13:
>> Permission denied)
>> E: Unable to acquire the dpkg frontend lock
>> (/var/lib/dpkg/lock-frontend), are you root?"
>>
>> This is what it shows in Fedora: [...]
> 
> In that case, my first hint would have been informative, no?
> I don't see what you are trying to show here.
> 
> Greetings,
> Maxime.
> 




Reply sent to Leo Famulari <leo <at> famulari.name>:
You have taken responsibility. (Fri, 16 Apr 2021 03:42:02 GMT) Full text and rfc822 format available.

Notification sent to bo0od <bo0od <at> riseup.net>:
bug acknowledged by developer. (Fri, 16 Apr 2021 03:42:02 GMT) Full text and rfc822 format available.

Message #61 received at 47748-done <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: bo0od <bo0od <at> riseup.net>
Cc: Julien Lepiller <julien <at> lepiller.eu>, 47748-done <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Thu, 15 Apr 2021 23:41:33 -0400
On Fri, Apr 16, 2021 at 02:11:09AM +0000, bo0od wrote:
> My friend isnt this what im saying not friendly,bad usability,disaster...etc
> 
> And i said to have maybe something like synapse which mean addressing
> everything installed and user can just remove the packages by clicking on
> them (or lets call it the GUI way of doing it) similar to the functionally
> you showed:

The programs you are asking to remove are used internally by Guix.

You can't remove them with a simple command. You can't do that on other
Linux distros either.

For example, on Debian, I have /usr/bin/gpg:

------
$ ls -l /usr/bin/gpg
-rwxr-xr-x 1 root root 1046256 Aug 22  2019 /usr/bin/gpg
------

Then I uninstall it:

------
$ sudo apt-get remove gpg
[...]
$ ls -l /usr/bin/gpg
ls: cannot access '/usr/bin/gpg': No such file or directory
-----

But, apt-get uses gpg too, to check package signatures. It still has its
own copy of gpg, so it still works. You can't remove it easily.

It's the same situation, and it's not a bug.




Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Fri, 16 Apr 2021 04:38:01 GMT) Full text and rfc822 format available.

Message #64 received at 47748-done <at> debbugs.gnu.org (full text, mbox):

From: bo0od <bo0od <at> riseup.net>
To: Leo Famulari <leo <at> famulari.name>
Cc: Julien Lepiller <julien <at> lepiller.eu>, 47748-done <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Fri, 16 Apr 2021 04:37:13 +0000
> But, apt-get uses gpg too, to check package signatures. It still has its
> own copy of gpg, so it still works. You can't remove it easily.
>
> It's the same situation, and it's not a bug.

what are you talking about?  im talking about packages which are not 
essential like mesa , nouveau , wpa-supplicant...


Nevertheless about gpg in debian see:


user <at> host:~$ sudo apt remove gpg
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer 
required:
  dirmngr gnupg-l10n gnupg-utils gpg-agent gpgconf gpgsm libassuan0 
libksba8
  libldap-2.4-2 libldap-common libnpth0 libsasl2-2 libsasl2-modules-db
  pinentry-curses
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  gnupg gpg gpg-wks-client gpg-wks-server
0 upgraded, 0 newly installed, 4 to remove and 0 not upgraded.
After this operation, 3,490 kB disk space will be freed.
Do you want to continue? [Y/n]

user <at> host:~$ sudo apt remove gpg*
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'gpg-wks-client' for glob 'gpg*'
Note, selecting 'gpg-wks-server' for glob 'gpg*'
Note, selecting 'gpg' for glob 'gpg*'
Note, selecting 'gpgrt-tools' for glob 'gpg*'
Note, selecting 'gpgv-static' for glob 'gpg*'
Note, selecting 'gpgv' for glob 'gpg*'
Note, selecting 'gpgv-win32' for glob 'gpg*'
Note, selecting 'gpg-agent' for glob 'gpg*'
Note, selecting 'gpg-remailer' for glob 'gpg*'
Note, selecting 'gpgconf' for glob 'gpg*'
Note, selecting 'gpgsm' for glob 'gpg*'
Note, selecting 'gpgv1' for glob 'gpg*'
Note, selecting 'gpgv2' for glob 'gpg*'
Package 'gpgv1' is not installed, so not removed
Package 'gpgv-static' is not installed, so not removed
Package 'gpgv-win32' is not installed, so not removed
Package 'gpgv2' is not installed, so not removed
Package 'gpg-remailer' is not installed, so not removed
Package 'gpgrt-tools' is not installed, so not removed
The following packages were automatically installed and are no longer 
required:
  conntrack dconf-cli ethtool gir1.2-glib-2.0 gnupg-l10n gnupg-utils
  imagemagick imagemagick-6-common imagemagick-6.q16 initscripts insserv
  keyboard-configuration libassuan0 libde265-0 libegl1-mesa 
libfftw3-double3
  libfontenc1 libgirepository-1.0-1 libheif1 libksba8 libldap-2.4-2
  libldap-common liblqr-1-0 libmagickcore-6.q16-6 libmagickwand-6.q16-6
  libnpth0 libpython-stdlib libpython2-stdlib libpython2.7-minimal
  libpython2.7-stdlib libqubes-rpc-filecopy2 libqubesdb libsasl2-2
  libsasl2-modules-db libxfont2 libxkbfile1 net-tools pinentry-curses 
python
  python-minimal python2 python2-minimal python2.7 python2.7-minimal
  python3-cffi-backend python3-daemon python3-dbus python3-gi 
python3-lockfile
  python3-qubesdb python3-six python3-xcffib python3-xdg qubesdb qubesdb-vm
  socat startpar sysv-rc tinyproxy tinyproxy-bin tor tor-geoipdb torsocks
  x11-xkb-utils x11-xserver-utils xdg-utils xen-utils-common xenstore-utils
  xinit xserver-common xserver-xorg-core xserver-xorg-input-qubes
  xserver-xorg-video-dummyqbs
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  apt apt-transport-https apt-transport-tor apt-utils dirmngr gnupg gpg
  gpg-agent gpg-wks-client gpg-wks-server gpgconf gpgsm gpgv 
qubes-core-agent
  qubes-core-agent-networking qubes-gui-agent qubes-vm-dependencies tasksel
  tasksel-data
WARNING: The following essential packages will be removed.
This should NOT be done unless you know exactly what you are doing!
  apt gpgv (due to apt)
0 upgraded, 0 newly installed, 19 to remove and 0 not upgraded.
After this operation, 15.5 MB disk space will be freed.
You are about to do something potentially harmful.
To continue type in the phrase 'Yes, do as I say!'
 ?]

Please reopen.


Leo Famulari:
> On Fri, Apr 16, 2021 at 02:11:09AM +0000, bo0od wrote:
>> My friend isnt this what im saying not friendly,bad usability,disaster...etc
>>
>> And i said to have maybe something like synapse which mean addressing
>> everything installed and user can just remove the packages by clicking on
>> them (or lets call it the GUI way of doing it) similar to the functionally
>> you showed:
> 
> The programs you are asking to remove are used internally by Guix.
> 
> You can't remove them with a simple command. You can't do that on other
> Linux distros either.
> 
> For example, on Debian, I have /usr/bin/gpg:
> 
> ------
> $ ls -l /usr/bin/gpg
> -rwxr-xr-x 1 root root 1046256 Aug 22  2019 /usr/bin/gpg
> ------
> 
> Then I uninstall it:
> 
> ------
> $ sudo apt-get remove gpg
> [...]
> $ ls -l /usr/bin/gpg
> ls: cannot access '/usr/bin/gpg': No such file or directory
> -----
> 
> But, apt-get uses gpg too, to check package signatures. It still has its
> own copy of gpg, so it still works. You can't remove it easily.
> 
> It's the same situation, and it's not a bug.
> 




Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Fri, 16 Apr 2021 07:25:02 GMT) Full text and rfc822 format available.

Message #67 received at 47748-done <at> debbugs.gnu.org (full text, mbox):

From: Leo Famulari <leo <at> famulari.name>
To: bo0od <bo0od <at> riseup.net>
Cc: Julien Lepiller <julien <at> lepiller.eu>, 47748-done <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Fri, 16 Apr 2021 03:23:59 -0400
On Fri, Apr 16, 2021 at 04:37:13AM +0000, bo0od wrote:
> Please reopen.

It can be reopened by sending a message containing "reopen 47748" to
<control <at> debbugs.gnu.org>.

https://debbugs.gnu.org/server-control.html

I still think that "Guix doesn't work like another OS" isn't a bug.




Did not alter fixed versions and reopened. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Fri, 16 Apr 2021 08:07:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-guix <at> gnu.org:
bug#47748; Package guix. (Fri, 16 Apr 2021 14:54:02 GMT) Full text and rfc822 format available.

Message #72 received at 47748 <at> debbugs.gnu.org (full text, mbox):

From: Mark H Weaver <mhw <at> netris.org>
To: Julien Lepiller <julien <at> lepiller.eu>, bo0od <bo0od <at> riseup.net>
Cc: 47748 <at> debbugs.gnu.org
Subject: Re: bug#47748: Packages which cant be find/removed by guix remove
Date: Fri, 16 Apr 2021 10:52:03 -0400
Mark H Weaver <mhw <at> netris.org> writes:

> Julien Lepiller <julien <at> lepiller.eu> writes:
>
>> The manual suggests modify-services in some places:
>>
>> (modify-services %desktop-services
>>   (delete avahi-service-type))
>
> I don't see how this can work.

For the record: Julien was right.  'modify-services' was enhanced to
support deleting services about 2 days before Julien made this post, and
I didn't yet know about it.  I checked my own local copy of the Guix git
repo, which was a few days old, and it didn't occur to me that the
functionality had been added so recently.  Sorry for the confusion.

       Mark




This bug report was last modified 3 years and 4 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.