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 wrote: > > > 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 ;-) >