all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Is there a beginner's guide to using Guix with Scheme files?
@ 2016-04-17  4:15 Zachary Kanfer
  2016-04-17 13:52 ` Catonano
  2016-04-17 15:13 ` Ludovic Courtès
  0 siblings, 2 replies; 6+ messages in thread
From: Zachary Kanfer @ 2016-04-17  4:15 UTC (permalink / raw)
  To: help-guix

[-- Attachment #1: Type: text/plain, Size: 1804 bytes --]

I recently installed Guix, and I must admit I'm feeling somewhat lost. My
goal is to not run `guix package -i` manually, but have a scheme file with
my entire system configuration in it, and run `guix package -f
/path/to/that/file` to install the programs I want on my computer.

I think what I want to start with is here (
http://www.gnu.org/software/guix/manual/guix.html#Programming-Interface),
but I'm not sure. Looking at it is somewhat confusing, for a few reasons.
I'm going to list what I see when reading this in hopes that the
documentation can be improved.

1. It starts by discussing how to "define new packages". I would expect
that I would only want to *use* packages, and that this would be done by
the person adding the package to the software repository.

2. The example given looks like a very complicated way of installing a
simple package. There are many properties I don't care about when I'm
installing software (homepage, synopsis /and/ description), and things I
don't want to care about (arguments, inputs, build-system). To install a
package on the command line, it's something simple like "apt-get install
emacs". To use Guix, I have to write a 20-line program with a bunch of
settings?

3. It goes on to discuss importing other people's package definitions (
http://www.gnu.org/software/guix/manual/guix.html#Invoking-guix-import).
But it doesn't say how to do this in a Scheme file. I want my setup to be
in a Scheme file, not in a bunch of commands I have to manually run.

4. It discusses running `guix build` to use the package definitions. This
appears to be different than `guix package -i`, but I'm at a loss to say
how.

Am I missing a useful page somewhere in the documentation? Do I have some
wrong assumptions about how Guix is used? Thanks for any help.

-Zachary

[-- Attachment #2: Type: text/html, Size: 2189 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Is there a beginner's guide to using Guix with Scheme files?
  2016-04-17  4:15 Is there a beginner's guide to using Guix with Scheme files? Zachary Kanfer
@ 2016-04-17 13:52 ` Catonano
  2016-04-18  4:06   ` Zachary Kanfer
  2016-04-17 15:13 ` Ludovic Courtès
  1 sibling, 1 reply; 6+ messages in thread
From: Catonano @ 2016-04-17 13:52 UTC (permalink / raw)
  To: Zachary Kanfer; +Cc: help-guix

[-- Attachment #1: Type: text/plain, Size: 3895 bytes --]

2016-04-17 6:15 GMT+02:00 Zachary Kanfer <zkanfer@gmail.com>:

> I recently installed Guix, and I must admit I'm feeling somewhat lost. My
> goal is to not run `guix package -i` manually, but have a scheme file with
> my entire system configuration in it, and run `guix package -f
> /path/to/that/file` to install the programs I want on my computer.
>


Running "guiy package -i ..."

is for the binary installation. That is when you install guix as a package
in a previously existing hosting system

Otherwise, you can install GuixSD and it offers exaclty what Gyou want.

You can have a scheme file specifying the disk layout, the users, the
services and so on and that's what will be installed

You probably want to start from these instructions to have it installed
https://www.gnu.org/software/guix/manual/html_node/System-Installation.html

Then, when you wiill want to arrange a scheme file with the list of
packages to be installed, you can come back here ;-)

>
>
> I think what I want to start with is here (
> http://www.gnu.org/software/guix/manual/guix.html#Programming-Interface),
> but I'm not sure. Looking at it is somewhat confusing, for a few reasons.
> I'm going to list what I see when reading this in hopes that the
> documentation can be improved.
>
> 1. It starts by discussing how to "define new packages". I would expect
> that I would only want to *use* packages, and that this would be done by
> the person adding the package to the software repository.
>

Not necessarily. Arranging the build of a package can be demanding. Way
more demanding that just using the package. So it's not settled that the
person using the package will be the one who has prepared it for the
distribution

The user most commonly will install packages provided by others.
Volunteers, mainly


>
> 2. The example given looks like a very complicated way of installing a
> simple package.
>

That's exactly what I wrote. Those instructions are not aimed to casual
users wanting to USE a package. They are meant for the volunteers who
arrange the build of a package, so making it available to ALL the users of
the distribution


> There are many properties I don't care about when I'm installing software
> (homepage, synopsis /and/ description), and things I don't want to care
> about (arguments, inputs, build-system). To install a package on the
> command line, it's something simple like "apt-get install emacs". To use
> Guix, I have to write a 20-line program with a bunch of settings?
>

No ;-)

You just "guix package -i emacs" both on GuixSD AND on the binary
installation

Properties and inputs are needed for building packages, not for using them
(not that knowing abiut those in detrimental, though)

Anyway, if your model is

"apt-get install emacs"

I don't see why

"guix package -i emacs"

is so unsatisfying to you. They are not dramatically different


>
> 3. It goes on to discuss importing other people's package definitions (
> http://www.gnu.org/software/guix/manual/guix.html#Invoking-guix-import).
> But it doesn't say how to do this in a Scheme file. I want my setup to be
> in a Scheme file, not in a bunch of commands I have to manually run.
>

The instructions about how to import other people definitions, are exactly
meant to edit a scheme file ;-)

Only, that scheme file is not made to install a package. It's made to build
it


> 4. It discusses running `guix build` to use the package definitions. This
> appears to be different than `guix package -i`, but I'm at a loss to say
> how.
>

The first builds a package based on a definition written in scheme

The second installs an already built package ;-)


> Am I missing a useful page somewhere in the documentation? Do I have some
> wrong assumptions about how Guix is used? Thanks for any help.
>

I don't know about the documentation. As for wrong assumptions I hope I
have made things a bit clearer ;-)

[-- Attachment #2: Type: text/html, Size: 6455 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Is there a beginner's guide to using Guix with Scheme files?
  2016-04-17  4:15 Is there a beginner's guide to using Guix with Scheme files? Zachary Kanfer
  2016-04-17 13:52 ` Catonano
@ 2016-04-17 15:13 ` Ludovic Courtès
  2016-04-18  4:19   ` Zachary Kanfer
  1 sibling, 1 reply; 6+ messages in thread
From: Ludovic Courtès @ 2016-04-17 15:13 UTC (permalink / raw)
  To: Zachary Kanfer; +Cc: help-guix

Zachary Kanfer <zkanfer@gmail.com> skribis:

> I recently installed Guix, and I must admit I'm feeling somewhat lost. My
> goal is to not run `guix package -i` manually, but have a scheme file with
> my entire system configuration in it, and run `guix package -f
> /path/to/that/file` to install the programs I want on my computer.

I think you’re looking for ‘--manifest’ rather than ‘-f’:

  https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-package.html#profile_002dmanifest

That probably explains why the rest of the documentation you looked at
felt inappropriate.  :-)

HTH,
Ludo’.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Is there a beginner's guide to using Guix with Scheme files?
  2016-04-17 13:52 ` Catonano
@ 2016-04-18  4:06   ` Zachary Kanfer
  0 siblings, 0 replies; 6+ messages in thread
From: Zachary Kanfer @ 2016-04-18  4:06 UTC (permalink / raw)
  To: Catonano; +Cc: help-guix

[-- Attachment #1: Type: text/plain, Size: 4663 bytes --]

Thanks for the response. I think one of the things I was confused about was
that yes, the "average" user doesn't have to create packages, but can just
make manifests. There isn't much discussion of manifests in the
documentation, and I just missed it.

But manifests are required for me to use Guix. If my best option is running
`guix package -i emacs`, that's no advantage for me over `apt-get install
emacs`. Your mileage may differ; this is my opinion. I'm similarly not
installing GuixSD right now, but am using it on top of Ubuntu.

On Sun, Apr 17, 2016 at 9:52 AM, Catonano <catonano@gmail.com> wrote:

>
>
> 2016-04-17 6:15 GMT+02:00 Zachary Kanfer <zkanfer@gmail.com>:
>
>> I recently installed Guix, and I must admit I'm feeling somewhat lost. My
>> goal is to not run `guix package -i` manually, but have a scheme file with
>> my entire system configuration in it, and run `guix package -f
>> /path/to/that/file` to install the programs I want on my computer.
>>
>
>
> Running "guiy package -i ..."
>
> is for the binary installation. That is when you install guix as a package
> in a previously existing hosting system
>
> Otherwise, you can install GuixSD and it offers exaclty what Gyou want.
>
> You can have a scheme file specifying the disk layout, the users, the
> services and so on and that's what will be installed
>
> You probably want to start from these instructions to have it installed
> https://www.gnu.org/software/guix/manual/html_node/System-Installation.html
>
> Then, when you wiill want to arrange a scheme file with the list of
> packages to be installed, you can come back here ;-)
>
>>
>>
>> I think what I want to start with is here (
>> http://www.gnu.org/software/guix/manual/guix.html#Programming-Interface),
>> but I'm not sure. Looking at it is somewhat confusing, for a few reasons.
>> I'm going to list what I see when reading this in hopes that the
>> documentation can be improved.
>>
>> 1. It starts by discussing how to "define new packages". I would expect
>> that I would only want to *use* packages, and that this would be done by
>> the person adding the package to the software repository.
>>
>
> Not necessarily. Arranging the build of a package can be demanding. Way
> more demanding that just using the package. So it's not settled that the
> person using the package will be the one who has prepared it for the
> distribution
>
> The user most commonly will install packages provided by others.
> Volunteers, mainly
>
>
>>
>> 2. The example given looks like a very complicated way of installing a
>> simple package.
>>
>
> That's exactly what I wrote. Those instructions are not aimed to casual
> users wanting to USE a package. They are meant for the volunteers who
> arrange the build of a package, so making it available to ALL the users of
> the distribution
>
>
>> There are many properties I don't care about when I'm installing software
>> (homepage, synopsis /and/ description), and things I don't want to care
>> about (arguments, inputs, build-system). To install a package on the
>> command line, it's something simple like "apt-get install emacs". To use
>> Guix, I have to write a 20-line program with a bunch of settings?
>>
>
> No ;-)
>
> You just "guix package -i emacs" both on GuixSD AND on the binary
> installation
>
> Properties and inputs are needed for building packages, not for using them
> (not that knowing abiut those in detrimental, though)
>
> Anyway, if your model is
>
> "apt-get install emacs"
>
> I don't see why
>
> "guix package -i emacs"
>
> is so unsatisfying to you. They are not dramatically different
>
>
>>
>> 3. It goes on to discuss importing other people's package definitions (
>> http://www.gnu.org/software/guix/manual/guix.html#Invoking-guix-import).
>> But it doesn't say how to do this in a Scheme file. I want my setup to be
>> in a Scheme file, not in a bunch of commands I have to manually run.
>>
>
> The instructions about how to import other people definitions, are exactly
> meant to edit a scheme file ;-)
>
> Only, that scheme file is not made to install a package. It's made to
> build it
>
>
>> 4. It discusses running `guix build` to use the package definitions. This
>> appears to be different than `guix package -i`, but I'm at a loss to say
>> how.
>>
>
> The first builds a package based on a definition written in scheme
>
> The second installs an already built package ;-)
>
>
>> Am I missing a useful page somewhere in the documentation? Do I have some
>> wrong assumptions about how Guix is used? Thanks for any help.
>>
>
> I don't know about the documentation. As for wrong assumptions I hope I
> have made things a bit clearer ;-)
>

[-- Attachment #2: Type: text/html, Size: 7576 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Is there a beginner's guide to using Guix with Scheme files?
  2016-04-17 15:13 ` Ludovic Courtès
@ 2016-04-18  4:19   ` Zachary Kanfer
  2016-04-18  7:17     ` Ricardo Wurmus
  0 siblings, 1 reply; 6+ messages in thread
From: Zachary Kanfer @ 2016-04-18  4:19 UTC (permalink / raw)
  To: Ludovic Courtès; +Cc: help-guix

[-- Attachment #1: Type: text/plain, Size: 1478 bytes --]

Yes, this is *exactly* what I was looking for. Thanks incredibly.

It took me a while to realize that the package module for racket was
"scheme". I figured this out after getting an error with "racket", and then
looking at the "location" field of the output of `guix package -s racket`.
I assume the package module for any package is the last token in
"gnu/modules/<package-here>.scm? Are there packages not rooted in
"gnu/modules"?

Is there more documentation on manifest files? It would be really helpful
to, for example, be able to see the definition of `use-package-modules` or
`packages->manifest`. Is this information I can access in Emacs through
geiser? Or perhaps a webpage with more such information? Thanks.


On Sun, Apr 17, 2016 at 11:13 AM, Ludovic Courtès <ludo@gnu.org> wrote:

> Zachary Kanfer <zkanfer@gmail.com> skribis:
>
> > I recently installed Guix, and I must admit I'm feeling somewhat lost. My
> > goal is to not run `guix package -i` manually, but have a scheme file
> with
> > my entire system configuration in it, and run `guix package -f
> > /path/to/that/file` to install the programs I want on my computer.
>
> I think you’re looking for ‘--manifest’ rather than ‘-f’:
>
>
> https://www.gnu.org/software/guix/manual/html_node/Invoking-guix-package.html#profile_002dmanifest
>
> That probably explains why the rest of the documentation you looked at
> felt inappropriate.  :-)
>
> HTH,
> Ludo’.
>

[-- Attachment #2: Type: text/html, Size: 2137 bytes --]

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: Is there a beginner's guide to using Guix with Scheme files?
  2016-04-18  4:19   ` Zachary Kanfer
@ 2016-04-18  7:17     ` Ricardo Wurmus
  0 siblings, 0 replies; 6+ messages in thread
From: Ricardo Wurmus @ 2016-04-18  7:17 UTC (permalink / raw)
  To: Zachary Kanfer; +Cc: help-guix


Zachary Kanfer <zkanfer@gmail.com> writes:

> Yes, this is *exactly* what I was looking for. Thanks incredibly.
>
> It took me a while to realize that the package module for racket was
> "scheme". I figured this out after getting an error with "racket", and then
> looking at the "location" field of the output of `guix package -s racket`.
> I assume the package module for any package is the last token in
> "gnu/modules/<package-here>.scm? Are there packages not rooted in
> "gnu/modules"?

All package modules can be found at “gnu/packages/”.  A package is just
a value bound to a name, so a single module can hold one or many
packages.  An example for a module with a great number of packages is
“gnu/packages/python.scm”.

~~ Ricardo

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-04-18  7:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-17  4:15 Is there a beginner's guide to using Guix with Scheme files? Zachary Kanfer
2016-04-17 13:52 ` Catonano
2016-04-18  4:06   ` Zachary Kanfer
2016-04-17 15:13 ` Ludovic Courtès
2016-04-18  4:19   ` Zachary Kanfer
2016-04-18  7:17     ` Ricardo Wurmus

Code repositories for project(s) associated with this external index

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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.