help-guix
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: How to add custom channels to ISO


From: Elais Player
Subject: Re: How to add custom channels to ISO
Date: Tue, 03 Aug 2021 14:41:42 -0600
User-agent: mu4e 1.4.15; emacs 28.0.50


I don't know if it's something that should be put in the manual because I'm not really sure about the security implications of adding the channels file to the store. Though honestly I think its a neat solution because doing things this way you don't even have to create a =channels.scm= file. You can use the =scheme-file= procedure to just embed scheme code in a file like object and deliver it to the destination. Also when I asked on the IRC [1] ludo raised some concerns because there may be some issues with creating the =/etc/guix/= directory but I haven't run into any on three machines where I've done this.

Also glad I could help.

[1] https://logs.guix.gnu.org/guix/2020-12-04.log
phodina <phodina@protonmail.com> writes:

Thanks Elais. This is exactly what I need.

Also you're right regarding the ISO running out of space (memory) as I ran =guix pull= once before the store was setup and mounted on the target system.

Also pinning the channels is useful to get "identical" os installed across the machines.

This might be a neat code excerpt and note in the manual perhaps. Would you agree?

Of course, once the system is setup then there is =guix deploy=.




‐‐‐‐‐‐‐ Original Message ‐‐‐‐‐‐‐

On Friday, July 30th, 2021 at 6:15 PM, Elais Player <elais@fastmail.com> wrote:

You could add the custom channels file as an

=extra-special-file=1 in the =os-configuration=.

It would look something like this:

#+BEGIN_SRC scheme

(define %my-installation-os

(operating-system

(inherit installation-os)

(services

(cons*

(extra-special-file

"/etc/guix/channels.scm"

(local-file "/path/to/my/channels.scm"))

(operating-system-services installation-os)))))

#+END_SRC

Plus side is you now have a global channels file from which all

you need to do is run =guix pull= to have all your channels up to

date. You may also want to pin those channels to certain commits

just in case. Down side is running =guix pull= will start filling

up your disk or memory on an ISO and you can easily run out of

space. (I would advise not running =guix pull= until after

partitioning and setting up the target system), and this file will

be added to the store (but if you're creating a channels file in

=/etc= shouldn't matter honestly).

phodina via help-guix@gnu.org writes:

> Hello,
>
> I'm migrating to a newer machine and I'm taking my GuixSD
>
> configuration with me.
>
> So the first logical step I did was to create an ISO image > based
>
> on this section 1. As I use my custom channel with modified
>
> packages I added them to the configuration to make them
>
> available on the new machine.
>
> Or so I thought. I booted and partitioned the new machine > then
>
> ran
>
> guix system init /root/configurations.scm /mnt to install > Guix
>
> there.
>
> However, after reboot turns out that the packages are not > from
>
> my channel but from public Guix repository without
>
> modifications.
>
> Therefore my question is if it's possible to specify also
>
> channels in the configuration file so that they are used > during
>
> installation?
>
> Reading the manual I came to a nice command guix system > describe
>
> 2 which gives me the current configuration with the
>
> channels. Could that be used to build an ISO which would then
>
> also know about the additional channels?
>
> Kind regards
>
> Petr



reply via email to

[Prev in Thread] Current Thread [Next in Thread]