From mboxrd@z Thu Jan 1 00:00:00 1970 From: Catonano Subject: Re: Is there a beginner's guide to using Guix with Scheme files? Date: Sun, 17 Apr 2016 15:52:59 +0200 Message-ID: References: Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=94eb2c081602df673a0530ae8f58 Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:38994) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1arn8I-0006wT-9X for help-guix@gnu.org; Sun, 17 Apr 2016 09:53:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1arn8G-0000sd-Gk for help-guix@gnu.org; Sun, 17 Apr 2016 09:53:02 -0400 Received: from mail-io0-x22e.google.com ([2607:f8b0:4001:c06::22e]:36826) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1arn8G-0000s9-95 for help-guix@gnu.org; Sun, 17 Apr 2016 09:53:00 -0400 Received: by mail-io0-x22e.google.com with SMTP id u185so173943330iod.3 for ; Sun, 17 Apr 2016 06:53:00 -0700 (PDT) In-Reply-To: List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: help-guix-bounces+gcggh-help-guix=m.gmane.org@gnu.org Sender: "Help-Guix" To: Zachary Kanfer Cc: help-guix@gnu.org --94eb2c081602df673a0530ae8f58 Content-Type: text/plain; charset=UTF-8 2016-04-17 6:15 GMT+02:00 Zachary Kanfer : > 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 ;-) --94eb2c081602df673a0530ae8f58 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


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 i= t, and run `guix package -f /path/to/that/file` to install the programs I w= ant 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 Gyo= u want.

You can have a scheme file specifying the disk la= yout, the users, the services and so on and that's what will be install= ed

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

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

I think what I want to sta= rt with is here (http://www.gnu.org/software/gui= x/manual/guix.html#Programming-Interface), but I'm not sure. Lookin= g at it is somewhat confusing, for a few reasons. I'm going to list wha= t I see when reading this in hopes that the documentation can be improved.<= br>

1. It starts by discussing how to "define new = packages". I would expect that I would only want to *use* packages, an= d 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 t= hat the person using the package will be the one who has prepared it for th= e distribution

The user most commonly will install packag= es provided by others. Volunteers, mainly
=C2=A0
<= div>

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
=C2=A0
= There are many properties I don't care about when I'm installing so= ftware (homepage, synopsis /and/ description), and things I don't want = to care about (arguments, inputs, build-system). To install a package on th= e command line, it's something simple like "apt-get install emacs&= quot;. To use Guix, I have to write a 20-line program with a bunch of setti= ngs?

No ;= -)

You just "guix package -i emacs" both on Gu= ixSD AND on the binary installation

Properties and inputs= are needed for building packages, not for using them (not that knowing abi= ut 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
=C2=A0

3. It goes on to discuss importing other people's package de= finitions (http://www.gnu.org/software/guix/manua= l/guix.html#Invoking-guix-import). But it doesn't say how to do thi= s 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 defi= nitions, 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
=C2=A0
<= div dir=3D"ltr">
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 writ= ten in scheme

The second installs an already built packag= e ;-)
=C2=A0
Am I missing a useful page somewhere= in the documentation? Do I have some wrong assumptions about how Guix is u= sed? Thanks for any help.

I don't know about the documentation= . As for wrong assumptions I hope I have made things a bit clearer ;-)
<= /div>
--94eb2c081602df673a0530ae8f58--