Discussion:
Guix - installation script
(too old to reply)
Christopher Baines
2017-08-25 18:33:51 UTC
Permalink
Raw Message
On Mon, 31 Jul 2017 23:49:50 +0100
I've found your project very interesting. I've played with
installation instruction but it has a lot of different steps, for
convenience purpose I've wrote installation script which goes through
all points of your guide.
As far as I could say, there is no any official installation script
for Guix on existing OS. I would like take an opportunity to maintain
this process.
If you could review it (Github) and give me some feedback I would be
appreciated.
https://github.com/Hellseher/wds/blob/master/wds-guix-install.sh
I haven't tried this yet, but it looks awesome!

while I don't speak from the official maintainers, I'd be interested in
seeing this being a part of Guix itself, which in my mind
would enable things like distributing it as an installation
method, and prominently mentioning it in the documentation. Would you
(as the author) be ok with this?
Ludovic Courtès
2017-08-26 12:57:48 UTC
Permalink
Raw Message
Hello!
Post by Christopher Baines
On Mon, 31 Jul 2017 23:49:50 +0100
I've found your project very interesting. I've played with
installation instruction but it has a lot of different steps, for
convenience purpose I've wrote installation script which goes through
all points of your guide.
As far as I could say, there is no any official installation script
for Guix on existing OS. I would like take an opportunity to maintain
this process.
If you could review it (Github) and give me some feedback I would be
appreciated.
https://github.com/Hellseher/wds/blob/master/wds-guix-install.sh
I haven't tried this yet, but it looks awesome!
while I don't speak from the official maintainers, I'd be interested in
seeing this being a part of Guix itself, which in my mind
would enable things like distributing it as an installation
method, and prominently mentioning it in the documentation. Would you
(as the author) be ok with this?
This looks useful indeed! Perhaps what we could do is ship it along
with Guix, mention it in the “Binary Installation” section, and yet keep
the text of the instructions in that section, so that users have the
choice of using the script (and understanding what it does), or
following the instructions.

Thoughts?

Ludo’.
Hellseher
2017-08-26 20:51:12 UTC
Permalink
Raw Message
Hi,

That's great, thank you!

I'll go through all suggestions and make required changes as soon as
possible.

Do you want to move that script to separate stand along repository to
make it easy for other to review it?


Regards,

Sharlatan
Post by Ludovic Courtès
Hello!
Post by Christopher Baines
On Mon, 31 Jul 2017 23:49:50 +0100
I've found your project very interesting. I've played with
installation instruction but it has a lot of different steps, for
convenience purpose I've wrote installation script which goes through
all points of your guide.
As far as I could say, there is no any official installation script
for Guix on existing OS. I would like take an opportunity to maintain
this process.
If you could review it (Github) and give me some feedback I would be
appreciated.
https://github.com/Hellseher/wds/blob/master/wds-guix-install.sh
I haven't tried this yet, but it looks awesome!
while I don't speak from the official maintainers, I'd be interested in
seeing this being a part of Guix itself, which in my mind
would enable things like distributing it as an installation
method, and prominently mentioning it in the documentation. Would you
(as the author) be ok with this?
This looks useful indeed! Perhaps what we could do is ship it along
with Guix, mention it in the “Binary Installation” section, and yet keep
the text of the instructions in that section, so that users have the
choice of using the script (and understanding what it does), or
following the instructions.
Thoughts?
Ludo’.
Christopher Baines
2017-08-27 22:36:17 UTC
Permalink
Raw Message
On Sat, 26 Aug 2017 21:51:12 +0100
Post by Hellseher
Hi,
That's great, thank you!
I'll go through all suggestions and make required changes as soon as
possible.
Do you want to move that script to separate stand along repository to
make it easy for other to review it?
What might work well is for you to send the whole script to guix-devel
in an email. Then people can read through and review it.

I'll try to make some time to review and test this in the coming week.
Christopher Baines
2017-09-02 16:04:22 UTC
Permalink
Raw Message
On Sun, 27 Aug 2017 23:36:17 +0100
Post by Christopher Baines
On Sat, 26 Aug 2017 21:51:12 +0100
Post by Hellseher
Hi,
That's great, thank you!
I'll go through all suggestions and make required changes as soon
as possible.
Do you want to move that script to separate stand along repository
to make it easy for other to review it?
What might work well is for you to send the whole script to guix-devel
in an email. Then people can read through and review it.
I'll try to make some time to review and test this in the coming week.
I've tried running this in a Debian VM, and I've nearly managed to get
Guix installed.

From my experience, I've got some suggestions for the script.

Firstly, I see this as installing GNU Guix, not GuixSD, as I understand
GuixSD to be an operating system, and this script won't install an OS,
just Guix within your existing operating system.

For the ascii art, I tweaked it by removing the SD, and adding some
separation between the i and x to make it more readable.
_____ _ _ _ _ _____ _
/ ____| \ | | | | | / ____| (_)
| | __| \| | | | | | | __ _ _ _ __ __
| | |_ | . ` | | | | | | |_ | | | | |\ \/ /
| |__| | |\ | |__| | | |__| | |_| | | > <
\_____|_| \_|\____/ \_____|\__,_|_|/_/\_\


Just requiring one of curl and wget would be good, either by removing
the need to use curl (it wasn't on the Debian system I was testing
with), or making it possible to use either would work.

I think the requirement on which could be removed by using the bash
builtin type.

Also, for checking dependencies, currently when it fails, the entire
script stops as command exits with a status of 1. Something like this
would work though:

if ! command -v "$c" &>/dev/null; then
warn+=("$c")
fi

I think running guix package -i at the end might be a bit too much.
Maybe it would be better to suggest running a less permanent command,
e.g. guix environment --ad-hoc hello -- hello, and directing them to
IRC or the mailing list if they have problems?

Thanks again for writing this :)
Hellseher
2017-09-07 18:11:58 UTC
Permalink
Raw Message
Hi,

Sorry for delayed replay, it's busy time at work/home.

I'll check and fix it as soon as possibly, but you always can pull
request it on a GitHub.

You also mentioned to send it to guix-***@gnu.org, which format do you
prefer?


Regards,

HS
Post by Christopher Baines
On Sun, 27 Aug 2017 23:36:17 +0100
Post by Christopher Baines
On Sat, 26 Aug 2017 21:51:12 +0100
Post by Hellseher
Hi,
That's great, thank you!
I'll go through all suggestions and make required changes as soon
as possible.
Do you want to move that script to separate stand along repository
to make it easy for other to review it?
What might work well is for you to send the whole script to guix-devel
in an email. Then people can read through and review it.
I'll try to make some time to review and test this in the coming week.
I've tried running this in a Debian VM, and I've nearly managed to get
Guix installed.
From my experience, I've got some suggestions for the script.
Firstly, I see this as installing GNU Guix, not GuixSD, as I understand
GuixSD to be an operating system, and this script won't install an OS,
just Guix within your existing operating system.
For the ascii art, I tweaked it by removing the SD, and adding some
separation between the i and x to make it more readable.
_____ _ _ _ _ _____ _
/ ____| \ | | | | | / ____| (_)
| | __| \| | | | | | | __ _ _ _ __ __
| | |_ | . ` | | | | | | |_ | | | | |\ \/ /
| |__| | |\ | |__| | | |__| | |_| | | > <
\_____|_| \_|\____/ \_____|\__,_|_|/_/\_\
Just requiring one of curl and wget would be good, either by removing
the need to use curl (it wasn't on the Debian system I was testing
with), or making it possible to use either would work.
I think the requirement on which could be removed by using the bash
builtin type.
Also, for checking dependencies, currently when it fails, the entire
script stops as command exits with a status of 1. Something like this
if ! command -v "$c" &>/dev/null; then
warn+=("$c")
fi
I think running guix package -i at the end might be a bit too much.
Maybe it would be better to suggest running a less permanent command,
e.g. guix environment --ad-hoc hello -- hello, and directing them to
IRC or the mailing list if they have problems?
Thanks again for writing this :)
Christopher Baines
2017-09-07 18:25:49 UTC
Permalink
Raw Message
On Thu, 7 Sep 2017 19:11:58 +0100
Post by Hellseher
Hi,
Sorry for delayed replay, it's busy time at work/home.
No problem :)
Post by Hellseher
I'll check and fix it as soon as possibly, but you always can pull
request it on a GitHub.
you prefer?
A patch produced by Git. There are a few ways of doing this, e.g. `git
format-patch`, or `git send-email`.

What I'd recommend is cloning the guix repository, putting the install
script in to the scripts/ directory (this might not be the best place,
but its a good start), and then commiting. You should then be able to
run `git format-patch HEAD^`, which will generate a file you can send
to the list.
Pjotr Prins
2017-10-02 06:15:24 UTC
Permalink
Raw Message
A script that would install the binary install package of Guix would
be very useful. It should unpack the tarball into /gnu/store and
/var/guix (checking nothing is there), set the keys and (optionally)
the build users. Ideally we should have:

wget install.sh
sudo sh install.sh
- fetchin' guix...
- unpacking guix...
- installing guix...
- fetching keys...
- set build users...
- running guix pull...
guix package -i hello
(binary installs...)

They keys of main substitute servers should just work.

I just went through helping someone install Guix remotely and it is
*too* painful. He is an experienced devop(!) It took hours, mostly
because he forgot to set the keys correctly (Guix gives no proper
feedback).

With immediate gratification people can install software - including
mine - and get into Guix itself later.

Nix used to have such an installer - it was quite good. It even had
the one-click installer.

The install.sh file can actually include the tarball - as one
download.

Pj.
Catonano
2017-12-05 10:55:30 UTC
Permalink
Raw Message
what did happen with this ?

Was there any progress ?
m***@gmail.com
2017-12-11 22:31:04 UTC
Permalink
Raw Message
Post by Pjotr Prins
A script that would install the binary install package of Guix would
be very useful. It should unpack the tarball into /gnu/store and
/var/guix (checking nothing is there), set the keys and (optionally)
wget install.sh
sudo sh install.sh
- fetchin' guix...
- unpacking guix...
- installing guix...
- fetching keys...
- set build users...
- running guix pull...
guix package -i hello
(binary installs...)
They keys of main substitute servers should just work.
I just went through helping someone install Guix remotely and it is
*too* painful. He is an experienced devop(!) It took hours, mostly
because he forgot to set the keys correctly (Guix gives no proper
feedback).
[...]

I don't see how we can recommend Guix with a clear conscience if we
don't automate these tedious steps, at least for a few popular
distributions.

FWIW, the last time I grappled with a binary install (guix-0.9.0 in Mar
2016 on Debian), I found a makefile to be the most handy way to automate
install/uninstall. I'm not posting it because it doesn't work w/ Guix
0.15.0, but happy to provide to anyone interested. - George

Loading...