'Globally-Visible Packages' not shown by 'M-x guix-installed-packages'

  • Done
  • quality assurance status badge
Details
3 participants
  • Alex Kost
  • Ludovic Courtès
  • myglc2
Owner
unassigned
Submitted by
myglc2
Severity
normal
M
M
myglc2 wrote on 8 Feb 2016 16:08
(address . bug-guix@gnu.org)
87zivb6xyy.fsf@gmail.com
In guixSD, 'Globally-Visible Packages' packages installed accoding to
'7.2.1 Using the Configuration System' are not shown by 'M-x
guix-installed-packages' and are shown as uninstalled in the 'M-x
guix-all-packages' 'list' buffers.
A
A
Alex Kost wrote on 8 Feb 2016 22:58
(name . myglc2)(address . myglc2@gmail.com)(address . 22600@debbugs.gnu.org)
87egcmrhjj.fsf@gmail.com
myglc2 (2016-02-08 18:08 +0300) wrote:

Toggle quote (5 lines)
> In guixSD, 'Globally-Visible Packages' packages installed accoding to
> '7.2.1 Using the Configuration System' are not shown by 'M-x
> guix-installed-packages' and are shown as uninstalled in the 'M-x
> guix-all-packages' 'list' buffers.

"M-x guix-installed-packages" shows the packages installed in a current
profile (which is ~/.guix-profile by default), the same way as "guix
package --list-installed" does. You can prefix this command with C-u to
choose a profile you want. See also (info "(guix) Emacs Commands").

If you want to look at the packages installed globally, you can run "M-x
guix-system-generations" and press RET on the latest generation (I think
for convenience we can add "M-x guix-system-packages" command).

--
Alex
L
L
Ludovic Courtès wrote on 8 Feb 2016 23:51
(name . Alex Kost)(address . alezost@gmail.com)
87d1s6u870.fsf@gnu.org
Alex Kost <alezost@gmail.com> skribis:

Toggle quote (16 lines)
> myglc2 (2016-02-08 18:08 +0300) wrote:
>
>> In guixSD, 'Globally-Visible Packages' packages installed accoding to
>> '7.2.1 Using the Configuration System' are not shown by 'M-x
>> guix-installed-packages' and are shown as uninstalled in the 'M-x
>> guix-all-packages' 'list' buffers.
>
> "M-x guix-installed-packages" shows the packages installed in a current
> profile (which is ~/.guix-profile by default), the same way as "guix
> package --list-installed" does. You can prefix this command with C-u to
> choose a profile you want. See also (info "(guix) Emacs Commands").
>
> If you want to look at the packages installed globally, you can run "M-x
> guix-system-generations" and press RET on the latest generation (I think
> for convenience we can add "M-x guix-system-packages" command).

Indeed, this is not a bug to me.

myglc2: if you think anything is unclear in the documentation, let us
know how we could improve it!

Thanks,
Ludo’.
Closed
L
L
Ludovic Courtès wrote on 8 Feb 2016 23:51
control message for bug #22600
(address . control@debbugs.gnu.org)
87bn7qu86s.fsf@gnu.org
tags 22600 notabug
M
M
myglc2 wrote on 9 Feb 2016 03:29
Re: bug#22600: 'Globally-Visible Packages' not shown by 'M-x guix-installed-packages'
(address . bug-guix@gnu.org)
87io1y7h1r.fsf@gmail.com
ludo@gnu.org (Ludovic Courtès) writes:

Toggle quote (18 lines)
> Alex Kost <alezost@gmail.com> skribis:
>
>> myglc2 (2016-02-08 18:08 +0300) wrote:
>>
>>> In guixSD, 'Globally-Visible Packages' packages installed accoding to
>>> '7.2.1 Using the Configuration System' are not shown by 'M-x
>>> guix-installed-packages' and are shown as uninstalled in the 'M-x
>>> guix-all-packages' 'list' buffers.
>>
>> "M-x guix-installed-packages" shows the packages installed in a current
>> profile (which is ~/.guix-profile by default), the same way as "guix
>> package --list-installed" does. You can prefix this command with C-u to
>> choose a profile you want. See also (info "(guix) Emacs Commands").
>>
>> If you want to look at the packages installed globally, you can run "M-x
>> guix-system-generations" and press RET on the latest generation (I think
>> for convenience we can add "M-x guix-system-packages" command).

WOW! That IS a beautiful thing. And, the Guix Pack Info ... AWESOME!

Toggle quote (8 lines)
>
> Indeed, this is not a bug to me.
> myglc2: if you think anything is unclear in the documentation, let us
> know how we could improve it!
>
> Thanks,
> Ludo’.

SIDEBAR:

I hope it is OK that I am taking the liberty of reporting things that
seem counterintutive or difficult to understand in the bugs
channel. These may well be operator error or misunderstandings on my
part. I am happy to report in a different channel if that is better. Or
to have you say, "enough of this!"

About me: I want to never learn another distribution, package manager,
configuration approach, or deployment manager. So I really want you to
succeed. I have spent ~ 3 weeks studying and using Nix, NixOS and
guixSD. I have used computers to build models since 1975 and I hope to
use guix in my next work. I figure that if something puzzles me, it may
be puzzeling to others and a barrier to guix' adoption. I want to help
reduce such barriers.

I am writing in the first person to convey the way that I visualize that
your new users, which hopefully will come and stay to play, might
experience guix. It is not my intent to pick on guix or the doc, both of
which are truly outstanding.

BACK TO THE "BUG"

Yes, it is probably not a bug in a technical sense and/or given the way
you conceptualize guix. But, at the risk of being a bore, may I please
restate:

It seemed really counterintuitive that when I did ...

'M-x guix-installed packages'

... I saw ...

"No package outputs installed in profile '/var/guix/profiles/per-user/glc/guix-profile'."

My concern is that this experience might leave a new user thinking,
"Geez, I know back in the fog of the USB install I added packages. What
kind of package manager is this? It doesn't show me the packages that I
painfully typed in using zile at the console". IMO this is the kind of
doubt that can undermine confidence during the critical first few hours
of software test driving and lead a user to abandon the experment.

My own experience: I had been going back to the config.scm files or
typing 'which' to see what was installed. I knew there were generations.
But believe it or not, in the course of working with guixSD for ~ 10
days, I had not used ...

1) "M-x guix-system-generations"

2) press RET on the latest generation

So say I am a dummy. I am fine with that.

But, wouldn't it be better to combine these functions so even a duummy
will see all the packages?

Maybe later, for the roadmap?
A
A
Alex Kost wrote on 9 Feb 2016 20:21
(name . myglc2)(address . myglc2@gmail.com)(address . 22600@debbugs.gnu.org)
871t8lbsg6.fsf@gmail.com
myglc2 (2016-02-09 05:29 +0300) wrote:

[...]
Toggle quote (6 lines)
> I hope it is OK that I am taking the liberty of reporting things that
> seem counterintutive or difficult to understand in the bugs
> channel. These may well be operator error or misunderstandings on my
> part. I am happy to report in a different channel if that is better. Or
> to have you say, "enough of this!"

I think it's ok to do it in bugs. Perhaps guix-devel ML will be more
suitable, but I don't know.

Toggle quote (8 lines)
> About me: I want to never learn another distribution, package manager,
> configuration approach, or deployment manager. So I really want you to
> succeed. I have spent ~ 3 weeks studying and using Nix, NixOS and
> guixSD. I have used computers to build models since 1975 and I hope to
> use guix in my next work. I figure that if something puzzles me, it may
> be puzzeling to others and a barrier to guix' adoption. I want to help
> reduce such barriers.

And thank you for this!

Toggle quote (21 lines)
> BACK TO THE "BUG"
>
> Yes, it is probably not a bug in a technical sense and/or given the way
> you conceptualize guix. But, at the risk of being a bore, may I please
> restate:
>
> It seemed really counterintuitive that when I did ...
>
> 'M-x guix-installed packages'
>
> ... I saw ...
>
> "No package outputs installed in profile '/var/guix/profiles/per-user/glc/guix-profile'."
>
> My concern is that this experience might leave a new user thinking,
> "Geez, I know back in the fog of the USB install I added packages. What
> kind of package manager is this? It doesn't show me the packages that I
> painfully typed in using zile at the console". IMO this is the kind of
> doubt that can undermine confidence during the critical first few hours
> of software test driving and lead a user to abandon the experment.

I would say that a user should get acquainted with the basic concepts of
Guix before using it. I think per-user package management is one of such
concepts, and it is described in the beginning of (info "(guix) Features")
section of the manual.

Toggle quote (14 lines)
> My own experience: I had been going back to the config.scm files or
> typing 'which' to see what was installed. I knew there were generations.
> But believe it or not, in the course of working with guixSD for ~ 10
> days, I had not used ...
>
> 1) "M-x guix-system-generations"
>
> 2) press RET on the latest generation
>
> So say I am a dummy. I am fine with that.
>
> But, wouldn't it be better to combine these functions so even a duummy
> will see all the packages?

As I suggested in the previous mail, we can add "M-x guix-system-packages".
Maybe it would be good to add "M-x guix-user-packages", or maybe name them:

- guix-installed-system-packages (for /run/current-system/profile)
- guix-installed-user-packages (for ~/.guix-profile)

And to leave "M-x guix-installed-packages" for an arbitrary profile
specified by a user. WDYT?

--
Don't install packages globally, use a user profile!
M
M
myglc2 wrote on 10 Feb 2016 03:30
(address . bug-guix@gnu.org)
87bn7p5mbf.fsf@gmail.com
Alex Kost <alezost@gmail.com> writes:

Toggle quote (15 lines)
> myglc2 (2016-02-09 05:29 +0300) wrote:
> [...]
>> My concern is that this experience might leave a new user thinking,
>> "Geez, I know back in the fog of the USB install I added packages. What
>> kind of package manager is this? It doesn't show me the packages that I
>> painfully typed in using zile at the console". IMO this is the kind of
>> doubt that can undermine confidence during the critical first few hours
>> of software test driving and lead a user to abandon the experment.
>
> I would say that a user should get acquainted with the basic concepts of
> Guix before using it. I think per-user package management is one of such
> concepts, and it is described in the beginning of (info "(guix) Features")
> section of the manual.
>

Per-user features are very important for guix adopters. But as
described in my other post, global (aka system) features are equally
important for guixSD adopters. It is fantastic that guix + guixSD
support both use cases.

OTOH, these use cases appear to be fighting against each other. This
makes the documentation hard to write and understand. It makes the
user interface hard to do. If we let the conflict get out of control
it will confuse the marketplace and undermine guix/SD.

So we need to embrace and understand this natural yin and yang in a
great solution that spans user, package, distribution, and system
managment. If we can do that I think guix/SD will be very successful.

Toggle quote (12 lines)
>> But, wouldn't it be better to combine these functions so even a duummy
>> will see all the packages?
>
> As I suggested in the previous mail, we can add "M-x guix-system-packages".
> Maybe it would be good to add "M-x guix-user-packages", or maybe name them:
>
> - guix-installed-system-packages (for /run/current-system/profile)
> - guix-installed-user-packages (for ~/.guix-profile)
>
> And to leave "M-x guix-installed-packages" for an arbitrary profile
> specified by a user. WDYT?

I like it. I tried to summarize what I think I understand in the table
below. Could you take a look and fix it up?

| Recipe Source | install | Profile | UI access | Scope | Generations |
|-------------------------+----------------------------------------------------------------------------+-----------------------------+--------------------------------------+--------+-----------------------------|
| guix pull | sudo guix system reconfigure <config> | /run/current-system/profile | * M-x guix-installed-system-packages | global | M-x guix-system-generations |
| guix pull | guix -i <package> | ~/.guix-profile | * M-x guix-installed-user-packages | global | M-x guix-generations |
| | | | | | |
| git pull w/wo user mods | [env]$ sudo ./pre-inst-env guix system reconfigure ../configs/config.k.scm | /run/current-system/profile | * M-x guix-installed-system-packages | user | M-x guix-system-generations |
| git pull w/wo user mods | ??? | ~/.guix-profile | * M-x guix-installed-user-packages | user | M-x guix-generations |
| | | | | | |
| <user custom> | ??? | <user specfied> | M-x guix-installed-packages | ouser | ??? |
| | | | | | |

Notes:
* - proposed
??? - don't know
A
A
Alex Kost wrote on 10 Feb 2016 10:04
(name . myglc2)(address . myglc2@gmail.com)(address . 22600@debbugs.gnu.org)
87pow5542q.fsf@gmail.com
myglc2 (2016-02-10 05:30 +0300) wrote:

Toggle quote (2 lines)
> Alex Kost <alezost@gmail.com> writes:
>
[...]
Toggle quote (16 lines)
>> As I suggested in the previous mail, we can add "M-x guix-system-packages".
>> Maybe it would be good to add "M-x guix-user-packages", or maybe name them:
>>
>> - guix-installed-system-packages (for /run/current-system/profile)
>> - guix-installed-user-packages (for ~/.guix-profile)
>>
>> And to leave "M-x guix-installed-packages" for an arbitrary profile
>> specified by a user. WDYT?
>
> I like it. I tried to summarize what I think I understand in the table
> below. Could you take a look and fix it up?
>
> | Recipe Source | install | Profile | UI access | Scope | Generations |
> |-------------------------+----------------------------------------------------------------------------+-----------------------------+--------------------------------------+--------+-----------------------------|
> | guix pull | sudo guix system reconfigure <config> | /run/current-system/profile | * M-x guix-installed-system-packages | global | M-x guix-system-generations |
> | guix pull | guix -i <package> | ~/.guix-profile | * M-x guix-installed-user-packages | global | M-x guix-generations |
guix package -i <package>
Toggle quote (4 lines)
> | | | | | | |
> | git pull w/wo user mods | [env]$ sudo ./pre-inst-env guix system reconfigure ../configs/config.k.scm | /run/current-system/profile | * M-x guix-installed-system-packages | user | M-x guix-system-generations |
> | git pull w/wo user mods | ??? | ~/.guix-profile | * M-x guix-installed-user-packages | user | M-x guix-generations |

I don't understand what "w/wo user mods" means, but if you are talking
about running guix commands using a git repo; "pre-inst-env" is the way
to go, for example: "./pre-inst-env guix package -i ..."

Toggle quote (2 lines)
> | <user custom> | ??? | <user specfied> | M-x guix-installed-packages | ouser | ??? |

For a custom package (if that's what you mean), it's the same: "guix
package -i <user-package>", but at first you need to add a directory
with your packages to GUIX_PACKAGE_PATH as described in the manual:
(info "(guix) Package Modules")

If you want to install packages in an arbitrary profile, run "guix
package" command with "--profile=..." option.

Toggle quote (4 lines)
> Notes:
> * - proposed
> ??? - don't know

Also I don't understand what "scope" column means.

--
Alex
M
M
myglc2 wrote on 10 Feb 2016 21:25
(address . bug-guix@gnu.org)
87si1048k6.fsf@gmail.com
Alex Kost <alezost@gmail.com> writes:
[...]
Toggle quote (2 lines)
> I don't understand what "w/wo user mods" means,

That "official" guix recipes in local repo may be modified.

Revised table:

** Sources of and ways to install packages in guixSD

| Recipe source | avail to | recipe upgrade | location | package install | profile | display packages | display generations |
|-----------------------+----------+----------------+------------+------------------------------------------------------------------+-----------------------------+----------------------------------------+-----------------------------|
| guix ??? | system | guix pull | /gnu/store | sudo guix system reconfigure <config.scm> | /run/current-system/profile | (1) M-x guix-installed-system-packages | M-x guix-system-generations |
| guix ??? | user | guix pull | /gnu/store | sudo guix package -i <package> | ~/.guix-profile | (1) M-x guix-installed-user-packages | M-x guix-generations |
| guix git repo | system | (2) git pull | PWD | [env]$ sudo ./pre-inst-env guix system reconfigure <configs.scm> | /current-system/profile | (1) M-x guix-installed-system-packages | M-x guix-system-generations |
| guix git repo | user | (2) git pull | PWD | [env]$ sudo ./pre-inst-env guix package -i <package> | ~/.guix-profile | (1) M-x guix-installed-user-packages | M-x guix-generations |
| <user-dir>/<user.scm> | system | N/A | <user-dir> | sudo guix system reconfigure <config.scm w/ user-package> | /run/current-system/profile | (1) M-x guix-installed-system-packages | M-x guix-system-generations |
| <user-dir>/<user.scm> | user | N/A | <user-dir> | (3) [env]$ sudo guix package -i <user-package> | ~/.guix-profile | M-x guix-installed-packages | M-x guix-generations |
|-----------------------+----------+----------------+------------+------------------------------------------------------------------+-----------------------------+----------------------------------------+-----------------------------|

Notes:
(1) proposed
(2) Recipes obtained this way may be modified by the user. Set up the guix git repo as described in the manual (info "(guix) Building from Git").
(3) Add <user-dir> to GUIX_PACKAGE_PATH as described in the manual (info "(guix) Package Modules")

Trying to help a new user get their bearings. What do you think?
A
A
Alex Kost wrote on 13 Feb 2016 21:37
(name . myglc2)(address . myglc2@gmail.com)(address . 22600@debbugs.gnu.org)
87ziv4fitl.fsf@gmail.com
myglc2 (2016-02-10 23:25 +0300) wrote:

Toggle quote (10 lines)
> Alex Kost <alezost@gmail.com> writes:
> [...]
>> I don't understand what "w/wo user mods" means,
>
> That "official" guix recipes in local repo may be modified.
>
> Revised table:
>
> ** Sources of and ways to install packages in guixSD

[...]

I received this table corrupted, I hope the following one will survive
the mail sending.

| Recipe source | avail to | recipe upgrade | location | package install | profile | display packages | display generations |
|-----------------------+----------+----------------+------------+------------------------------------------------------------------+-----------------------------+----------------------------------------+-----------------------------|
| guix ??? | system | guix pull | /gnu/store | sudo guix system reconfigure <config.scm> | /run/current-system/profile | (1) M-x guix-installed-system-packages | M-x guix-system-generations |
| guix ??? | user | guix pull | /gnu/store | sudo guix package -i <package> | ~/.guix-profile | (1) M-x guix-installed-user-packages | M-x guix-generations |
| guix git repo | system | (2) git pull | PWD | [env]$ sudo ./pre-inst-env guix system reconfigure <configs.scm> | /current-system/profile | (1) M-x guix-installed-system-packages | M-x guix-system-generations |
| guix git repo | user | (2) git pull | PWD | [env]$ sudo ./pre-inst-env guix package -i <package> | ~/.guix-profile | (1) M-x guix-installed-user-packages | M-x guix-generations |
| <user-dir>/<user.scm> | system | N/A | <user-dir> | sudo guix system reconfigure <config.scm w/ user-package> | /run/current-system/profile | (1) M-x guix-installed-system-packages | M-x guix-system-generations |
| <user-dir>/<user.scm> | user | N/A | <user-dir> | (3) [env]$ sudo guix package -i <user-package> | ~/.guix-profile | M-x guix-installed-packages | M-x guix-generations |
|-----------------------+----------+----------------+------------+------------------------------------------------------------------+-----------------------------+----------------------------------------+-----------------------------|

Toggle quote (7 lines)
> Notes:
> (1) proposed
> (2) Recipes obtained this way may be modified by the user. Set up the guix git repo as described in the manual (info "(guix) Building from Git").
> (3) Add <user-dir> to GUIX_PACKAGE_PATH as described in the manual (info "(guix) Package Modules")
>
> Trying to help a new user get their bearings. What do you think?

It looks ok to me except you use "sudo" everywhere. This may be
misleading as "sudo" is not needed when a user installs a package in a
his/her profile.

--
Alex
A
A
Alex Kost wrote on 22 Feb 2016 20:55
(name . myglc2)(address . myglc2@gmail.com)(address . 22600@debbugs.gnu.org)
87povoy0xy.fsf@gmail.com
Alex Kost (2016-02-09 22:21 +0300) wrote:

[...]
Toggle quote (6 lines)
> As I suggested in the previous mail, we can add "M-x guix-system-packages".
> Maybe it would be good to add "M-x guix-user-packages", or maybe name them:
>
> - guix-installed-system-packages (for /run/current-system/profile)
> - guix-installed-user-packages (for ~/.guix-profile)

These commands are added in commit cfb1c62.

--
Alex
?