unofficial mirror of help-guix@gnu.org 
 help / color / mirror / Atom feed
* Re: Help-Guix Digest, Vol 88, Issue 4
       [not found] <mailman.81.1677776445.12246.help-guix@gnu.org>
@ 2023-03-05  8:44 ` Gottfried
  2023-03-05 10:07   ` Wojtek Kosior via
  2023-03-06  1:35   ` Gary Johnson
  0 siblings, 2 replies; 11+ messages in thread
From: Gottfried @ 2023-03-05  8:44 UTC (permalink / raw)
  To: help-guix, Gary Johnson


[-- Attachment #1.1.1: Type: text/plain, Size: 2897 bytes --]

Hi Gary,

thank you very much for sharing your Emacs manifest.

I tried to do what you said.

I created a manifest for Emacs only.

After doing it, Guix asked me to set the PATH.

I did it and after that this Emacs Manifest changed my general profile.
It became my general profile.
I couldn’t use my other programmes any more.
So I had to do a rollback.

1.
I don’t know what I did wrong.

2.
AFAIK to create a manifest is not yet a profile.
I have to create a manifest and then to create a profile with it.
Am I right?


2.
If so, after creating a manifest, which commands do I have to use to 
make it a separate profile?

Probably to generate a manifest and make it a separate profile goes 
together, but I don’t know how to do it.


Kind regards

Gottfried


> Message: 1
> Date: Thu, 02 Mar 2023 10:10:38 -0500
> From: Gary Johnson <lambdatronic@disroot.org>
> To: Rodrigo Morales <moralesrodrigo1100@gmail.com>


> I do manage all of my Emacs packages with Guix. I list `emacs` and all
> of its packages in a manifest file (emacs.scm). It looks like this with
> my custom packages elided:
> 
> ```
> (use-modules ((gnu packages) #:select (specifications->manifest)))
> 
> (specifications->manifest
>   (list "emacs"
>         "emacs-adoc-mode"
>         "emacs-alsamixer-el"
>         "emacs-async"
>         "emacs-calibredb"
>         "emacs-cider"
>         "emacs-clojure-mode"
>         "emacs-company"
>         "emacs-crdt"
>         "emacs-csv-mode"
>         "emacs-elpher"
>         "emacs-emms"
>         "emacs-eww-lnum"
>         "emacs-exwm"
>         "emacs-flycheck"
>         "emacs-flymake-kondor"
>         "emacs-flyspell-correct"
>         "emacs-forge"
>         "emacs-geiser"
>         "emacs-geiser-guile"
>         "emacs-gnuplot"
>         "emacs-google-translate"
>         "emacs-helm"
>         "emacs-helm-ag"
>         "emacs-helm-descbinds"
>         "emacs-helm-swoop"
>         "emacs-htmlize"
>         "emacs-magit"
>         "emacs-markdown-mode"
>         "emacs-nov-el"
>         "emacs-ob-async"
>         "emacs-org"
>         "emacs-org-pomodoro"
>         "emacs-ox-gfm"
>         "emacs-paredit"
>         "emacs-pdf-tools"
>         "emacs-pinentry"
>         "emacs-rjsx-mode"
>         "emacs-shroud"
>         "emacs-telephone-line"
>         "emacs-treemacs"
>         "emacs-vterm"
>         "emacs-web-mode"
>         "emacs-which-key"
>         "mu"))
> ```
> 
> I actually split up all the user packages on my system into manifests
> and isntall each one into its own profile, which I then activate on
> startup. However, that's not really necessary for this example. You can
> install the manifest packages above into your user profile with this
> command:
> 
> ```
> guix package -m emacs.scm
> ```

>   ~Gary
> 

-- 

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3191 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

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

* Re: Help-Guix Digest, Vol 88, Issue 4
  2023-03-05  8:44 ` Help-Guix Digest, Vol 88, Issue 4 Gottfried
@ 2023-03-05 10:07   ` Wojtek Kosior via
  2023-03-05 13:27     ` Gottfried
  2023-03-06  1:35   ` Gary Johnson
  1 sibling, 1 reply; 11+ messages in thread
From: Wojtek Kosior via @ 2023-03-05 10:07 UTC (permalink / raw)
  To: Gottfried; +Cc: help-guix, Gary Johnson

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

Hi Gottfried

> I created a manifest for Emacs only.
> 
> After doing it, Guix asked me to set the PATH.
> 
> I did it and after that this Emacs Manifest changed my general profile.
> It became my general profile.
> I couldn’t use my other programmes any more.
> So I had to do a rollback.

When you do

    guix package -m path/to/manifest.scm

It shall *replace* the packages in your default profile
(~/.guix-profile) with those specified by the manifest.

But if you instead do

   guix package -p path/to/some/profile -m path/to/manifest.scm

It shall modify/initialize the profile you specified :)

Best,
Wojtek

-- (sig_start)
website: https://koszko.org/koszko.html
PGP: https://koszko.org/key.gpg
fingerprint: E972 7060 E3C5 637C 8A4F  4B42 4BC5 221C 5A79 FD1A

♥ R29kIGlzIHRoZXJlIGFuZCBsb3ZlcyBtZQ== | ÷ c2luIHNlcGFyYXRlZCBtZSBmcm9tIEhpbQ==
✝ YnV0IEplc3VzIGRpZWQgdG8gc2F2ZSBtZQ== | ? U2hhbGwgSSBiZWNvbWUgSGlzIGZyaWVuZD8=
-- (sig_end)


On Sun,  5 Mar 2023 08:44:15 +0000
Gottfried <gottfried@posteo.de> wrote:

> Hi Gary,
> 
> thank you very much for sharing your Emacs manifest.
> 
> I tried to do what you said.
> 
> I created a manifest for Emacs only.
> 
> After doing it, Guix asked me to set the PATH.
> 
> I did it and after that this Emacs Manifest changed my general profile.
> It became my general profile.
> I couldn’t use my other programmes any more.
> So I had to do a rollback.
> 
> 1.
> I don’t know what I did wrong.
> 
> 2.
> AFAIK to create a manifest is not yet a profile.
> I have to create a manifest and then to create a profile with it.
> Am I right?
> 
> 
> 2.
> If so, after creating a manifest, which commands do I have to use to 
> make it a separate profile?
> 
> Probably to generate a manifest and make it a separate profile goes 
> together, but I don’t know how to do it.
> 
> 
> Kind regards
> 
> Gottfried
> 
> 
> > Message: 1
> > Date: Thu, 02 Mar 2023 10:10:38 -0500
> > From: Gary Johnson <lambdatronic@disroot.org>
> > To: Rodrigo Morales <moralesrodrigo1100@gmail.com>  
> 
> 
> > I do manage all of my Emacs packages with Guix. I list `emacs` and all
> > of its packages in a manifest file (emacs.scm). It looks like this with
> > my custom packages elided:
> > 
> > ```
> > (use-modules ((gnu packages) #:select (specifications->manifest)))
> > 
> > (specifications->manifest
> >   (list "emacs"
> >         "emacs-adoc-mode"
> >         "emacs-alsamixer-el"
> >         "emacs-async"
> >         "emacs-calibredb"
> >         "emacs-cider"
> >         "emacs-clojure-mode"
> >         "emacs-company"
> >         "emacs-crdt"
> >         "emacs-csv-mode"
> >         "emacs-elpher"
> >         "emacs-emms"
> >         "emacs-eww-lnum"
> >         "emacs-exwm"
> >         "emacs-flycheck"
> >         "emacs-flymake-kondor"
> >         "emacs-flyspell-correct"
> >         "emacs-forge"
> >         "emacs-geiser"
> >         "emacs-geiser-guile"
> >         "emacs-gnuplot"
> >         "emacs-google-translate"
> >         "emacs-helm"
> >         "emacs-helm-ag"
> >         "emacs-helm-descbinds"
> >         "emacs-helm-swoop"
> >         "emacs-htmlize"
> >         "emacs-magit"
> >         "emacs-markdown-mode"
> >         "emacs-nov-el"
> >         "emacs-ob-async"
> >         "emacs-org"
> >         "emacs-org-pomodoro"
> >         "emacs-ox-gfm"
> >         "emacs-paredit"
> >         "emacs-pdf-tools"
> >         "emacs-pinentry"
> >         "emacs-rjsx-mode"
> >         "emacs-shroud"
> >         "emacs-telephone-line"
> >         "emacs-treemacs"
> >         "emacs-vterm"
> >         "emacs-web-mode"
> >         "emacs-which-key"
> >         "mu"))
> > ```
> > 
> > I actually split up all the user packages on my system into manifests
> > and isntall each one into its own profile, which I then activate on
> > startup. However, that's not really necessary for this example. You can
> > install the manifest packages above into your user profile with this
> > command:
> > 
> > ```
> > guix package -m emacs.scm
> > ```  
> 
> >   ~Gary
> >   
> 



[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 228 bytes --]

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

* Re: Help-Guix Digest, Vol 88, Issue 4
  2023-03-05 10:07   ` Wojtek Kosior via
@ 2023-03-05 13:27     ` Gottfried
  0 siblings, 0 replies; 11+ messages in thread
From: Gottfried @ 2023-03-05 13:27 UTC (permalink / raw)
  To: Wojtek Kosior; +Cc: help-guix, Gary Johnson


[-- Attachment #1.1.1: Type: text/plain, Size: 1104 bytes --]

Hi Wojtek,

thanks very much. With your help I managed to create the Emacs Profile.

I had to add still a name: "guix-profile" for it, than it worked.


gfp@Tuxedo ~$ gfp@Tuxedo ~$ guix package -p 
/home/gfp/Projekte/EmacsManifest/guix-profil -m 
/home/gfp/Projekte/EmacsManifest/emacs.scm

-----------------------------------------------------------------------
If I do a:

gfp@Tuxedo ~$ guix shell -p /home/gfp/Projekte/EmacsManifest/guix-profil

than I am in the profile:

gfp@Tuxedo ~ (env) $

but writing: "emacs" it opens my emacs in the main profile and not the 
emacs in this newly created profile.

Which command do I have to use to open emacs in this profile?


Kind regards

Gottfried


> When you do
> 
>      guix package -m path/to/manifest.scm
> 
> It shall *replace* the packages in your default profile
> (~/.guix-profile) with those specified by the manifest.
> 
> But if you instead do
> 
>     guix package -p path/to/some/profile -m path/to/manifest.scm
> 
> It shall modify/initialize the profile you specified :)
> 
> Best,
> Wojtek


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3191 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

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

* Re: Help-Guix Digest, Vol 88, Issue 4
  2023-03-05  8:44 ` Help-Guix Digest, Vol 88, Issue 4 Gottfried
  2023-03-05 10:07   ` Wojtek Kosior via
@ 2023-03-06  1:35   ` Gary Johnson
  2023-03-07 16:15     ` Gottfried
  2023-03-20  7:04     ` Gottfried
  1 sibling, 2 replies; 11+ messages in thread
From: Gary Johnson @ 2023-03-06  1:35 UTC (permalink / raw)
  To: Gottfried; +Cc: help-guix

Gottfried <gottfried@posteo.de> writes:

> thank you very much for sharing your Emacs manifest.
>
> I tried to do what you said.
>
> I created a manifest for Emacs only.
>
> After doing it, Guix asked me to set the PATH.
>
> I did it and after that this Emacs Manifest changed my general profile.
> It became my general profile.
> I couldn’t use my other programmes any more.
> So I had to do a rollback.
>
> 1. I don’t know what I did wrong.

You didn't do anything wrong. The command I provided will create the
next generation of your profile from the manifest file. Any packages not
included in the manifest will be missing from that generation. It sounds
like that's what happened in this case. If you want other packages
installed into your profile as well, you could add them to your manifest
file.

> 2. AFAIK to create a manifest is not yet a profile.
> I have to create a manifest and then to create a profile with it.
> Am I right?

Correct. A manifest is a file of Scheme code that lists the packages
which you would like to install into a profile (or environment).

(Well, technically the manifest is the Scheme object produced by that
code, but in practice we can think of the file as the manifest with
little loss of information.)

You can create a temporary environment which contains the packages in a
manifest with this command:

```
guix shell -m manifest.scm
```

To make this environment persistent, you have to create a profile like
so:

```
guix package -m manifest.scm
```

> 2. If so, after creating a manifest, which commands do I have to use to
> make it a separate profile?
>
> Probably to generate a manifest and make it a separate profile goes
> together, but I don’t know how to do it.

Note that `guix package` will create a new profile generation in your
user profile by default. To override this, you can specify a different
profile that you want the generation added to instead:

```
guix package -m manifest.scm -p $YOUR_NEW_PROFILE_DIR
```

One of the perhaps slightly odd things to remember with this command is
that $YOUR_NEW_PROFILE_DIR should repeat its final directory name twice.

Here's an example for creating a new emacs profile. In this setup, we
assume that you have the following directory structure in your home
directory:

~/
├── guix-manifests/
│   ├── emacs.scm
├── guix-profiles/
│   ├── emacs/

You would issue the following command to install a new profile
generation under the ~/guix-profiles/emacs/ directory, containing all
the packages defined in ~/guix-manifests/emacs.scm:

```
guix package -m ~/guix-manifests/emacs.scm -p ~/guix-profiles/emacs/emacs
```

To activate this profile (thereby making its contents available in your
shell environment), you would issue these commands:

```
GUIX_PROFILE="~/guix-profiles/emacs/emacs"
. "$GUIX_PROFILE"/etc/profile
export MANPATH="$GUIX_PROFILE/share/man${MANPATH:+:}$MANPATH"
export INFOPATH="$GUIX_PROFILE/share/info${INFOPATH:+:}$INFOPATH"
```

For ease of use, you should place this code in your ~/.bash_profile. In
this way, the profile will be activated at login time (for example,
through GDM) and will then be available in all of your shells as well as
any other programs that respect the environment variables you set (e.g.,
emacs).

Have fun and happy hacking!
  ~Gary

-- 
Protect yourself from surveillance: https://emailselfdefense.fsf.org
=======================================================================
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments

Why is HTML email a security nightmare? See https://useplaintext.email/

Please avoid sending me MS-Office attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html


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

* Re: Help-Guix Digest, Vol 88, Issue 4
  2023-03-06  1:35   ` Gary Johnson
@ 2023-03-07 16:15     ` Gottfried
  2023-03-08  1:58       ` 宋文武
  2023-03-20  7:04     ` Gottfried
  1 sibling, 1 reply; 11+ messages in thread
From: Gottfried @ 2023-03-07 16:15 UTC (permalink / raw)
  To: Gary Johnson; +Cc: help-guix


[-- Attachment #1.1.1: Type: text/plain, Size: 5937 bytes --]

Hi,

1.
> GUIX_PROFILE="~/guix-profiles/emacs/emacs"
>> . "$GUIX_PROFILE"/etc/profile

As unexperienced in Scheme I am asking
  if the second line beginning with the "dot" is separated for easier 
read, but everything is one command?

2.
I have got already many packages in my profile and
updating takes a long time.

So I am thinking of splitting of some packages to create several 
profiles and AFAIU updating with
sudo guix system reconfigure /etc/config.scm
it will take less time because it will not automatically update all my 
profiles at once. (Is this right?)

3.
I was creating a profile with "Musescore"
and a profile with "Emacs".
I want to create still other profiles.

4.
Now I still don’t understand everything concerning profiles.
If I enable all profiles at login time
how will it work?
How can I enter the different profiles?
How do I know in which profile I am and to switch to an other?

e.g. I have emacs installed in my main profile.
I have got a manifest with emacs with additional emacs packages.
When entering this separate profile with guix shell
I get to  guix shell (env)...
but when I entered:  "emacs"
it opened emacs with the package "Icicles" which I don’t have in my 
emacs manifest, only in my emacs in the main profile.
So I concluded, it is the emacs in my main profile and not the one in my 
emacs manifest profile.
How are both connected? Are they separated? (I understood it like this, 
because it is a different profile). But this emacs manifest doesn’t have 
a init.el file etc.
May be profiles are not completely separated in Guix like I understood 
until now.

My aim was to have a separate emacs profile then I can delete the emacs 
in my main profile. But If the separate Emacs profile uses the init.el 
file etc. from the emacs in my main profile, I can’t delete this emacs.
So how are both connected?

I wanted to create several profiles with certain packages
and then delete/uninstall those packages in my main profile to get less 
packages.
But I don’t know if this works, because it’s unclear to me how they are 
connected.

I hope you understand me
( I can’t describe my problems in terms of a developer’s language)

Kind regards,

Gottfried



Am 06.03.23 um 02:35 schrieb Gary Johnson:
> Gottfried <gottfried@posteo.de> writes:
> 
>> thank you very much for sharing your Emacs manifest.
>>
>> I tried to do what you said.
>>
>> I created a manifest for Emacs only.
>>
>> After doing it, Guix asked me to set the PATH.
>>
>> I did it and after that this Emacs Manifest changed my general profile.
>> It became my general profile.
>> I couldn’t use my other programmes any more.
>> So I had to do a rollback.
>>
>> 1. I don’t know what I did wrong.
> 
> You didn't do anything wrong. The command I provided will create the
> next generation of your profile from the manifest file. Any packages not
> included in the manifest will be missing from that generation. It sounds
> like that's what happened in this case. If you want other packages
> installed into your profile as well, you could add them to your manifest
> file.
> 
>> 2. AFAIK to create a manifest is not yet a profile.
>> I have to create a manifest and then to create a profile with it.
>> Am I right?
> 
> Correct. A manifest is a file of Scheme code that lists the packages
> which you would like to install into a profile (or environment).
> 
> (Well, technically the manifest is the Scheme object produced by that
> code, but in practice we can think of the file as the manifest with
> little loss of information.)
> 
> You can create a temporary environment which contains the packages in a
> manifest with this command:
> 
> ```
> guix shell -m manifest.scm
> ```
> 
> To make this environment persistent, you have to create a profile like
> so:
> 
> ```
> guix package -m manifest.scm
> ```
> 
>> 2. If so, after creating a manifest, which commands do I have to use to
>> make it a separate profile?
>>
>> Probably to generate a manifest and make it a separate profile goes
>> together, but I don’t know how to do it.
> 
> Note that `guix package` will create a new profile generation in your
> user profile by default. To override this, you can specify a different
> profile that you want the generation added to instead:
> 
> ```
> guix package -m manifest.scm -p $YOUR_NEW_PROFILE_DIR
> ```
> 
> One of the perhaps slightly odd things to remember with this command is
> that $YOUR_NEW_PROFILE_DIR should repeat its final directory name twice.
> 
> Here's an example for creating a new emacs profile. In this setup, we
> assume that you have the following directory structure in your home
> directory:
> 
> ~/
> ├── guix-manifests/
> │   ├── emacs.scm
> ├── guix-profiles/
> │   ├── emacs/
> 
> You would issue the following command to install a new profile
> generation under the ~/guix-profiles/emacs/ directory, containing all
> the packages defined in ~/guix-manifests/emacs.scm:
> 
> ```
> guix package -m ~/guix-manifests/emacs.scm -p ~/guix-profiles/emacs/emacs
> ```
> 
> To activate this profile (thereby making its contents available in your
> shell environment), you would issue these commands:
> 
> ```
> GUIX_PROFILE="~/guix-profiles/emacs/emacs"
> . "$GUIX_PROFILE"/etc/profile
> export MANPATH="$GUIX_PROFILE/share/man${MANPATH:+:}$MANPATH"
> export INFOPATH="$GUIX_PROFILE/share/info${INFOPATH:+:}$INFOPATH"
> ```
> 
> For ease of use, you should place this code in your ~/.bash_profile. In
> this way, the profile will be activated at login time (for example,
> through GDM) and will then be available in all of your shells as well as
> any other programs that respect the environment variables you set (e.g.,
> emacs).
> 
> Have fun and happy hacking!
>    ~Gary
> 

-- 

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3191 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

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

* Re: Help-Guix Digest, Vol 88, Issue 4
  2023-03-07 16:15     ` Gottfried
@ 2023-03-08  1:58       ` 宋文武
  0 siblings, 0 replies; 11+ messages in thread
From: 宋文武 @ 2023-03-08  1:58 UTC (permalink / raw)
  To: Gottfried; +Cc: Gary Johnson, help-guix

Gottfried <gottfried@posteo.de> writes:

> Hi,

Hello!

> 1.
>> GUIX_PROFILE="~/guix-profiles/emacs/emacs"
>>> . "$GUIX_PROFILE"/etc/profile
>
> As unexperienced in Scheme I am asking
>  if the second line beginning with the "dot" is separated for easier
>  read, but everything is one command?

Those 2 line are bash commands,
  GUIX_PROFILE="~/guix-profiles/emacs/emacs" will set a shell variable
  GUIX_PROFILE with a value of "$HOME/guix-profiles/emacs/emacs".

  . "$GUIX_PROFILE"/etc/profile will 'source' the /etc/profile in the
  $GUIX_PROFILE directory.

You can find them in 'info bash' at: "5 Shell Variables" and "4.1 Bash Shell Builtins".

>
> 2.
> I have got already many packages in my profile and
> updating takes a long time.
>
> So I am thinking of splitting of some packages to create several
> profiles and AFAIU updating with
> sudo guix system reconfigure /etc/config.scm
> it will take less time because it will not automatically update all my
> profiles at once. (Is this right?)

Yes, the system profile (via config.scm) and user profile already do a
split, and you can split the user profile into multiple profiles for
more control.

See 'info guix-cookbook' for "Guix Profiles in Practice".

>
> 3.
> I was creating a profile with "Musescore"
> and a profile with "Emacs".
> I want to create still other profiles.

No problem.
>
> 4.
> Now I still don’t understand everything concerning profiles.
> If I enable all profiles at login time
> how will it work?
Enable a profile mean source ('.' command in your first question) its
profile file to add its search-paths to the current shell environment:

  PATH for making binaries from profiles's bin directory available to the
  current shell.
  MANPATH for making manpages from profile's share/man dinectory
  available to the current shell's 'man' command.
  XDG_DATA_DIRS for making desktop applicatinons available to the
  current desktop environment (launcher, etc).
  And so on...

> How can I enter the different profiles?
If you enable all at login time (via ~/.bash_profile), there is no need
to switch.  If you didn't enable a profile, you can switch it with 'guix
shell -p' or '.' its profile.


> How do I know in which profile I am and to switch to an other?
You can run 'env' find out what profiles are activated now.

>
> e.g. I have emacs installed in my main profile.
> I have got a manifest with emacs with additional emacs packages.
> When entering this separate profile with guix shell
> I get to  guix shell (env)...
> but when I entered:  "emacs"
> it opened emacs with the package "Icicles" which I don’t have in my
> emacs manifest, only in my emacs in the main profile.
> So I concluded, it is the emacs in my main profile and not the one in
> my emacs manifest profile.
> How are both connected? Are they separated?
Run 'which emacs' return the emacs executable location, it maybe the one
in your main profile or the emacs profile.  There are some environment
variables / search-paths (EMACSLOADPATH) for emacs, emacs will load its
packages from this EMACSLOADPATH.  When combine profiles via source
('.') the search-paths are merged (see 'export' in the 'profile' bash
script),  so they're connected via those search-paths.

They can also be separated if you don't combine those search-paths.
eg: via 'guix shell --pure -p ...'


> But this emacs manifest doesn’t have a init.el file etc.
Emacs's init.el are at ~/.emacs.d/init.el (or ~/.emacs), it's out of
guix's control, so shared with every emacs.

> May be profiles are not completely separated in Guix like I understood
> until now.
Well, you can combine them (by default the system profile and user
profile are combined), or use them in a separated way.


Basic are shell, environment variables, and the effects of environment
variables.  Hope this helps!




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

* Re: Help-Guix Digest, Vol 88, Issue 4
  2023-03-06  1:35   ` Gary Johnson
  2023-03-07 16:15     ` Gottfried
@ 2023-03-20  7:04     ` Gottfried
  2023-03-21 14:42       ` Gary Johnson
  1 sibling, 1 reply; 11+ messages in thread
From: Gottfried @ 2023-03-20  7:04 UTC (permalink / raw)
  To: Gary Johnson, help-guix


[-- Attachment #1.1.1: Type: text/plain, Size: 4974 bytes --]

Hi,

thanks very much for your help.

I have got now 3 profiles: EmacsManifest, Musescore, Musik
in:  home/gfp/Projekte/

Now I want them to be activated at login time.

I still am not sure how to do that.

You  wrote:
I should place this code (?) in my /bash profile.

1.
How to do that?
underneath is the profile: EmacsManifest

> GUIX_PROFILE="~/guix-profiles/emacs/emacs"
>> . "$GUIX_PROFILE"/etc/profile
>> export MANPATH="$GUIX_PROFILE/share/man${MANPATH:+:}$MANPATH"
>> export INFOPATH="$GUIX_PROFILE/share/info${INFOPATH:+:}$INFOPATH"
>> ```
>> 
>> For ease of use, you should place this code in your ~/.bash_profile. In
>> this way, the profile will be activated at login time (for example,
>> through GDM) and will then be available in all of your shells as well as
>> any other programs that respect the environment variables you set (e.g.,
>> emacs).

2.
after that, could I uninstall the package emacs in my main profile?
Will my Emacs-manifest profile still be usable/is it independent,
or it will suffer through uninstalling emacs in my main profile?

My aim was to uninstall packages in my main profile and put them in 
separate profiles, so in updating my main profile with less packages
it doesn’t take so much time.

Kind regards

Gottfried



Am 06.03.23 um 02:35 schrieb Gary Johnson:
> Gottfried <gottfried@posteo.de> writes:
> 
>> thank you very much for sharing your Emacs manifest.
>>
>> I tried to do what you said.
>>
>> I created a manifest for Emacs only.
>>
>> After doing it, Guix asked me to set the PATH.
>>
>> I did it and after that this Emacs Manifest changed my general profile.
>> It became my general profile.
>> I couldn’t use my other programmes any more.
>> So I had to do a rollback.
>>
>> 1. I don’t know what I did wrong.
> 
> You didn't do anything wrong. The command I provided will create the
> next generation of your profile from the manifest file. Any packages not
> included in the manifest will be missing from that generation. It sounds
> like that's what happened in this case. If you want other packages
> installed into your profile as well, you could add them to your manifest
> file.
> 
>> 2. AFAIK to create a manifest is not yet a profile.
>> I have to create a manifest and then to create a profile with it.
>> Am I right?
> 
> Correct. A manifest is a file of Scheme code that lists the packages
> which you would like to install into a profile (or environment).
> 
> (Well, technically the manifest is the Scheme object produced by that
> code, but in practice we can think of the file as the manifest with
> little loss of information.)
> 
> You can create a temporary environment which contains the packages in a
> manifest with this command:
> 
> ```
> guix shell -m manifest.scm
> ```
> 
> To make this environment persistent, you have to create a profile like
> so:
> 
> ```
> guix package -m manifest.scm
> ```
> 
>> 2. If so, after creating a manifest, which commands do I have to use to
>> make it a separate profile?
>>
>> Probably to generate a manifest and make it a separate profile goes
>> together, but I don’t know how to do it.
> 
> Note that `guix package` will create a new profile generation in your
> user profile by default. To override this, you can specify a different
> profile that you want the generation added to instead:
> 
> ```
> guix package -m manifest.scm -p $YOUR_NEW_PROFILE_DIR
> ```
> 
> One of the perhaps slightly odd things to remember with this command is
> that $YOUR_NEW_PROFILE_DIR should repeat its final directory name twice.
> 
> Here's an example for creating a new emacs profile. In this setup, we
> assume that you have the following directory structure in your home
> directory:
> 
> ~/
> ├── guix-manifests/
> │   ├── emacs.scm
> ├── guix-profiles/
> │   ├── emacs/
> 
> You would issue the following command to install a new profile
> generation under the ~/guix-profiles/emacs/ directory, containing all
> the packages defined in ~/guix-manifests/emacs.scm:
> 
> ```
> guix package -m ~/guix-manifests/emacs.scm -p ~/guix-profiles/emacs/emacs
> ```
> 
> To activate this profile (thereby making its contents available in your
> shell environment), you would issue these commands:
> 
> ```
> GUIX_PROFILE="~/guix-profiles/emacs/emacs"
> . "$GUIX_PROFILE"/etc/profile
> export MANPATH="$GUIX_PROFILE/share/man${MANPATH:+:}$MANPATH"
> export INFOPATH="$GUIX_PROFILE/share/info${INFOPATH:+:}$INFOPATH"
> ```
> 
> For ease of use, you should place this code in your ~/.bash_profile. In
> this way, the profile will be activated at login time (for example,
> through GDM) and will then be available in all of your shells as well as
> any other programs that respect the environment variables you set (e.g.,
> emacs).
> 
> Have fun and happy hacking!
>    ~Gary
> 

-- 




[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3191 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

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

* Re: Help-Guix Digest, Vol 88, Issue 4
  2023-03-20  7:04     ` Gottfried
@ 2023-03-21 14:42       ` Gary Johnson
  2023-04-07 13:02         ` Gottfried
  0 siblings, 1 reply; 11+ messages in thread
From: Gary Johnson @ 2023-03-21 14:42 UTC (permalink / raw)
  To: Gottfried; +Cc: help-guix

Gottfried <gottfried@posteo.de> writes:

> I have got now 3 profiles: EmacsManifest, Musescore, Musik
> in:  home/gfp/Projekte/
>
> Now I want them to be activated at login time.
>
> I still am not sure how to do that.

To activate multiple profiles at login time, I created a shell script
called `~/sys/scripts/activate-profiles.sh`, containing the following code:

```
#!/bin/sh

GUIX_PROFILES=/home/gjohnson/sys/guix/profiles

for dir in $GUIX_PROFILES/*
do
    name=$(basename "$dir")
    profile=$dir/$name
    if [ -f "$profile"/etc/profile ]
    then
        GUIX_PROFILE="$profile"
        . "$GUIX_PROFILE"/etc/profile
        export MANPATH="$GUIX_PROFILE/share/man${MANPATH:+:}$MANPATH"
        export INFOPATH="$GUIX_PROFILE/share/info${INFOPATH:+:}$INFOPATH"
    fi
    unset profile
    unset name
done
```

Next, I added a `source` line to my `~/.bash_profile` file, which loads
the `activate-profiles.sh` script when I enter a login shell. This
script is also run when you log in to your graphical desktop session in
Guix.

```
# Activate all of my Guix profiles
source ~/sys/scripts/activate-profiles.sh
```

For you to use this approach, you should do the following:

1. Replace `GUIX_PROFILES=/home/gjohnson/sys/guix/profiles` in my
   `activate-profiles.sh` script with your profile directory, which
   seems to be this:

   `GUIX_PROFILES=/home/gfp/Projekte`

2. Place the `activate-profiles.sh` script somewhere in your home
   directory.

3. Replace `~/sys/scripts/activate-profiles.sh` in `~/.bash_profile`
   with the path to `activate-profiles.sh` on your system.

If you use `guix home`, you can certainly add the `source` line to
`~/.bash_profile` that way.

> 2. after that, could I uninstall the package emacs in my main profile?
> Will my Emacs-manifest profile still be usable/is it independent, or
> it will suffer through uninstalling emacs in my main profile?

With this code in place, whenever you log in to your machine, you will
have access to all the packages in your main user profile as well as all
the packages in your /home/gfp/Projekte profiles. Note that this may
lead to unpredictable behavior if you have the same package installed
into multiple profiles that are all activated simultaneously. My
recommendation is that you install each package into only one profile
when using this approach.

> My aim was to uninstall packages in my main profile and put them in
> separate profiles, so in updating my main profile with less packages
> it doesn’t take so much time.

Yes, that is precisely the purpose of this approach.

Happy hacking!
  Gary

-- 
Protect yourself from surveillance: https://emailselfdefense.fsf.org
=======================================================================
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments

Why is HTML email a security nightmare? See https://useplaintext.email/

Please avoid sending me MS-Office attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html


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

* Re: Help-Guix Digest, Vol 88, Issue 4
  2023-03-21 14:42       ` Gary Johnson
@ 2023-04-07 13:02         ` Gottfried
  2023-04-07 14:31           ` I am sorry " Gottfried
  0 siblings, 1 reply; 11+ messages in thread
From: Gottfried @ 2023-04-07 13:02 UTC (permalink / raw)
  To: Gary Johnson; +Cc: help-guix


[-- Attachment #1.1.1: Type: text/plain, Size: 5237 bytes --]

Hi,

thanks a lot for sharing.
This helps a lot.
Without help of you and other hackers I would be lost.
............................................................

Those profiles I have got at the moment

gfp@Tuxedo ~$ guix package --list-profiles

/home/gfp/Projekte/Calibre/guix-profil
	with one package Calibre

/home/gfp/Projekte/EmacsManifest/guix-profil
	with one package Emacs

/home/gfp/Projekte/GNUCash/guix-profil,
	with 2 packages:
	Gnucash
	homebank

/home/gfp/Projekte/Lilypond/guix-profil
	with many packages:
	lilypond,
	mercurial,
	timidity,
	frescobaldi,
	audio-to-midi,
	libsmf,
	ctrlr,
	muse-sequencer,
	fluidsynth,
	fluida-lv2,
	qsynth

/home/gfp/Projekte/Musescore/guix-profil
	with one package Musescore 4.0.2 (current version)

/home/gfp/Projekte/Musik/guix-profil
	with many packages:
	ardour,
	audacious,
	audacity,
	obs,
	vlc
	Musescore 3.6.2 (old version)

/home/gfp/Projekte/Photoflare/guix-profil
	with 2 packages
	photoflare
	imagemagick
	(later converseen, which is now in a own profile:
	 prefabricated by Csepp)

/home/gfp/Projekte/Scribus/guix-profil
	with 2 packages:
	scribus,
	xournal
	
/home/gfp/.config/guix/current

/home/gfp/.guix-profile

-----------------------------------------------------------
> Note that this may
>> lead to unpredictable behavior if you have the same package installed
>> into multiple profiles that are all activated simultaneously. My
>> recommendation is that you install each package into only one profile
>> when using this approach.

Now I have several problems with your approach.
1. I have more packages in one profile
2. Musescore has got an own profile,
	but Musescore 3.6.2 (old version) is in the profile "Musik"
	together with other packages, which should be upgraded.
	But Musescore 3.6.2 should not be upgraded.

..................................................................
What can I now do, that I can activate multiple profiles at login time?
Is there a way to exclude the profile "Musik" because this profile I 
have to upgrade with:

guix package -p /home/gfp/Projekte/Musik/guix-profil -m 
/home/gfp/Projekte/Musik/musik.scm

or to add it in the script
....................................................................

Kind regards

Gottfried


Am 21.03.23 um 15:42 schrieb Gary Johnson:
> Gottfried <gottfried@posteo.de> writes:
> 
>> I have got now 3 profiles: EmacsManifest, Musescore, Musik
>> in:  home/gfp/Projekte/
>>
>> Now I want them to be activated at login time.
>>
>> I still am not sure how to do that.
> 
> To activate multiple profiles at login time, I created a shell script
> called `~/sys/scripts/activate-profiles.sh`, containing the following code:
> 
> ```
> #!/bin/sh
> 
> GUIX_PROFILES=/home/gjohnson/sys/guix/profiles
> 
> for dir in $GUIX_PROFILES/*
> do
>      name=$(basename "$dir")
>      profile=$dir/$name
>      if [ -f "$profile"/etc/profile ]
>      then
>          GUIX_PROFILE="$profile"
>          . "$GUIX_PROFILE"/etc/profile
>          export MANPATH="$GUIX_PROFILE/share/man${MANPATH:+:}$MANPATH"
>          export INFOPATH="$GUIX_PROFILE/share/info${INFOPATH:+:}$INFOPATH"
>      fi
>      unset profile
>      unset name
> done
> ```
> 
> Next, I added a `source` line to my `~/.bash_profile` file, which loads
> the `activate-profiles.sh` script when I enter a login shell. This
> script is also run when you log in to your graphical desktop session in
> Guix.
> 
> ```
> # Activate all of my Guix profiles
> source ~/sys/scripts/activate-profiles.sh
> ```
> 
> For you to use this approach, you should do the following:
> 
> 1. Replace `GUIX_PROFILES=/home/gjohnson/sys/guix/profiles` in my
>     `activate-profiles.sh` script with your profile directory, which
>     seems to be this:
> 
>     `GUIX_PROFILES=/home/gfp/Projekte`
> 
> 2. Place the `activate-profiles.sh` script somewhere in your home
>     directory.
> 
> 3. Replace `~/sys/scripts/activate-profiles.sh` in `~/.bash_profile`
>     with the path to `activate-profiles.sh` on your system.
> 
> If you use `guix home`, you can certainly add the `source` line to
> `~/.bash_profile` that way.
> 
>> 2. after that, could I uninstall the package emacs in my main profile?
>> Will my Emacs-manifest profile still be usable/is it independent, or
>> it will suffer through uninstalling emacs in my main profile?
> 
> With this code in place, whenever you log in to your machine, you will
> have access to all the packages in your main user profile as well as all
> the packages in your /home/gfp/Projekte profiles. Note that this may
> lead to unpredictable behavior if you have the same package installed
> into multiple profiles that are all activated simultaneously. My
> recommendation is that you install each package into only one profile
> when using this approach.
> 
>> My aim was to uninstall packages in my main profile and put them in
>> separate profiles, so in updating my main profile with less packages
>> it doesn’t take so much time.
> 
> Yes, that is precisely the purpose of this approach.
> 
> Happy hacking!
>    Gary
> 

-- 




[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3191 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

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

* I am sorry Re: Help-Guix Digest, Vol 88, Issue 4
  2023-04-07 13:02         ` Gottfried
@ 2023-04-07 14:31           ` Gottfried
  2023-04-15  2:08             ` Tracker
  0 siblings, 1 reply; 11+ messages in thread
From: Gottfried @ 2023-04-07 14:31 UTC (permalink / raw)
  To: Gary Johnson; +Cc: help-guix


[-- Attachment #1.1.1: Type: text/plain, Size: 6894 bytes --]

Hi,
I am sorry, I mixed up two questions.
I was already one thought ahead.

1. Question about activating all profiles at login time
2. Question updating all profiles at once.

1.
to avtivate all profiles at once
You wrote that it would be better to have only one package in one profil.
So I would have to use each package in a separate profil

Musescore version 4.0.2
and Musescore version 3.6.2
are in different profiles,
so I guess it shouldn’t be a problem
What do you say?

2.
To update all profiles at once
this is a different question, which I have to deal as well.

Is there a way to do it?

Is there a way to exclude the profile "Musik" because this profile I
  have to upgrade with:

  guix package -p /home/gfp/Projekte/Musik/guix-profil -m
  /home/gfp/Projekte/Musik/musik.scm

  or put Musescore 3.6.2 in a separate profil,
but still the question remains, that this profil should then not be 
included in the update process.

  Kind regards

Gottfried



Am 07.04.23 um 15:02 schrieb Gottfried:
> Hi,
> 
> thanks a lot for sharing.
> This helps a lot.
> Without help of you and other hackers I would be lost.
> ............................................................
> 
> Those profiles I have got at the moment
> 
> gfp@Tuxedo ~$ guix package --list-profiles
> 
> /home/gfp/Projekte/Calibre/guix-profil
>      with one package Calibre
> 
> /home/gfp/Projekte/EmacsManifest/guix-profil
>      with one package Emacs
> 
> /home/gfp/Projekte/GNUCash/guix-profil,
>      with 2 packages:
>      Gnucash
>      homebank
> 
> /home/gfp/Projekte/Lilypond/guix-profil
>      with many packages:
>      lilypond,
>      mercurial,
>      timidity,
>      frescobaldi,
>      audio-to-midi,
>      libsmf,
>      ctrlr,
>      muse-sequencer,
>      fluidsynth,
>      fluida-lv2,
>      qsynth
> 
> /home/gfp/Projekte/Musescore/guix-profil
>      with one package Musescore 4.0.2 (current version)
> 
> /home/gfp/Projekte/Musik/guix-profil
>      with many packages:
>      ardour,
>      audacious,
>      audacity,
>      obs,
>      vlc
>      Musescore 3.6.2 (old version)
> 
> /home/gfp/Projekte/Photoflare/guix-profil
>      with 2 packages
>      photoflare
>      imagemagick
>      (later converseen, which is now in a own profile:
>       prefabricated by Csepp)
> 
> /home/gfp/Projekte/Scribus/guix-profil
>      with 2 packages:
>      scribus,
>      xournal
> 
> /home/gfp/.config/guix/current
> 
> /home/gfp/.guix-profile
> 
> -----------------------------------------------------------
>> Note that this may
>>> lead to unpredictable behavior if you have the same package installed
>>> into multiple profiles that are all activated simultaneously. My
>>> recommendation is that you install each package into only one profile
>>> when using this approach.
> 
> Now I have several problems with your approach.
> 1. I have more packages in one profile
> 2. Musescore has got an own profile,
>      but Musescore 3.6.2 (old version) is in the profile "Musik"
>      together with other packages, which should be upgraded.
>      But Musescore 3.6.2 should not be upgraded.
> 
> ..................................................................
> What can I now do, that I can activate multiple profiles at login time?
> Is there a way to exclude the profile "Musik" because this profile I 
> have to upgrade with:
> 
> guix package -p /home/gfp/Projekte/Musik/guix-profil -m 
> /home/gfp/Projekte/Musik/musik.scm
> 
> or to add it in the script
> ....................................................................
> 
> Kind regards
> 
> Gottfried
> 
> 
> Am 21.03.23 um 15:42 schrieb Gary Johnson:
>> Gottfried <gottfried@posteo.de> writes:
>>
>>> I have got now 3 profiles: EmacsManifest, Musescore, Musik
>>> in:  home/gfp/Projekte/
>>>
>>> Now I want them to be activated at login time.
>>>
>>> I still am not sure how to do that.
>>
>> To activate multiple profiles at login time, I created a shell script
>> called `~/sys/scripts/activate-profiles.sh`, containing the following 
>> code:
>>
>> ```
>> #!/bin/sh
>>
>> GUIX_PROFILES=/home/gjohnson/sys/guix/profiles
>>
>> for dir in $GUIX_PROFILES/*
>> do
>>      name=$(basename "$dir")
>>      profile=$dir/$name
>>      if [ -f "$profile"/etc/profile ]
>>      then
>>          GUIX_PROFILE="$profile"
>>          . "$GUIX_PROFILE"/etc/profile
>>          export MANPATH="$GUIX_PROFILE/share/man${MANPATH:+:}$MANPATH"
>>          export 
>> INFOPATH="$GUIX_PROFILE/share/info${INFOPATH:+:}$INFOPATH"
>>      fi
>>      unset profile
>>      unset name
>> done
>> ```
>>
>> Next, I added a `source` line to my `~/.bash_profile` file, which loads
>> the `activate-profiles.sh` script when I enter a login shell. This
>> script is also run when you log in to your graphical desktop session in
>> Guix.
>>
>> ```
>> # Activate all of my Guix profiles
>> source ~/sys/scripts/activate-profiles.sh
>> ```
>>
>> For you to use this approach, you should do the following:
>>
>> 1. Replace `GUIX_PROFILES=/home/gjohnson/sys/guix/profiles` in my
>>     `activate-profiles.sh` script with your profile directory, which
>>     seems to be this:
>>
>>     `GUIX_PROFILES=/home/gfp/Projekte`
>>
>> 2. Place the `activate-profiles.sh` script somewhere in your home
>>     directory.
>>
>> 3. Replace `~/sys/scripts/activate-profiles.sh` in `~/.bash_profile`
>>     with the path to `activate-profiles.sh` on your system.
>>
>> If you use `guix home`, you can certainly add the `source` line to
>> `~/.bash_profile` that way.
>>
>>> 2. after that, could I uninstall the package emacs in my main profile?
>>> Will my Emacs-manifest profile still be usable/is it independent, or
>>> it will suffer through uninstalling emacs in my main profile?
>>
>> With this code in place, whenever you log in to your machine, you will
>> have access to all the packages in your main user profile as well as all
>> the packages in your /home/gfp/Projekte profiles. Note that this may
>> lead to unpredictable behavior if you have the same package installed
>> into multiple profiles that are all activated simultaneously. My
>> recommendation is that you install each package into only one profile
>> when using this approach.
>>
>>> My aim was to uninstall packages in my main profile and put them in
>>> separate profiles, so in updating my main profile with less packages
>>> it doesn’t take so much time.
>>
>> Yes, that is precisely the purpose of this approach.
>>
>> Happy hacking!
>>    Gary


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3191 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

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

* Re: I am sorry Re: Help-Guix Digest, Vol 88, Issue 4
  2023-04-07 14:31           ` I am sorry " Gottfried
@ 2023-04-15  2:08             ` Tracker
  0 siblings, 0 replies; 11+ messages in thread
From: Tracker @ 2023-04-15  2:08 UTC (permalink / raw)
  To: Gottfried; +Cc: help-guix

Gottfried <gottfried@posteo.de> writes:

> Hi,
> I am sorry, I mixed up two questions.
> I was already one thought ahead.
>
> 1. Question about activating all profiles at login time
> 2. Question updating all profiles at once.
>
> 1.
> to avtivate all profiles at once
> You wrote that it would be better to have only one package in one profil.
> So I would have to use each package in a separate profil
>
> Musescore version 4.0.2
> and Musescore version 3.6.2
> are in different profiles,
> so I guess it shouldn’t be a problem
> What do you say?

No, I think you misunderstood me.

I have multiple packages in each of my profiles. This is fine. I would
not make one profile per package. That seems like an abuse of the system
somehow.

The point of a profile is to create an environment in which a particular
group of packages is installed. That's it.

By default, each user on Guix System has one user profile. All packages
that they install are placed into it. This is easy to manage. Some
people (like myself) choose to create additional profiles. Many people
do this in order to separate out a group of packages that they don't
want installed (or upgraded) all the time. I do it because occasionally
one of my packages breaks when I am upgrading my system. By splitting
all of my packages up into a few different profiles by category, if one
package fails to upgrade, then that profile doesn't upgrade, but all of
my other profiles do. This allows me to install the newest software for
everything outside of the broken profile. Then I focus on fixing the
broken package and just upgrade the broken profile. Easy peasy.

> 2.
> To update all profiles at once
> this is a different question, which I have to deal as well.
>
> Is there a way to do it?
>
> Is there a way to exclude the profile "Musik" because this profile I
>  have to upgrade with:
>
>  guix package -p /home/gfp/Projekte/Musik/guix-profil -m
>  /home/gfp/Projekte/Musik/musik.scm
>
>  or put Musescore 3.6.2 in a separate profil,
> but still the question remains, that this profil should then not be
> included in the update process.

I believe I already provided you with the code for updating profiles and
activating them, but here it is again for reference:

```update-profiles.sh
#!/bin/sh

GUIX_MANIFESTS=$HOME/sys/guix/manifests
GUIX_PROFILES=$HOME/sys/guix/profiles

for dir in $GUIX_PROFILES/*
do
    name=$(basename "$dir")
    manifest=$GUIX_MANIFESTS/$name.scm
    profile=$dir/$name
    if [ -r $manifest ]
    then
        guix package --manifest="$manifest" --profile="$profile"
    fi
    unset profile
    unset manifest
    unset name
done
```

```activate-profiles.sh
#!/bin/sh

GUIX_PROFILES=$HOME/sys/guix/profiles

for dir in $GUIX_PROFILES/*
do
    name=$(basename "$dir")
    profile=$dir/$name
    if [ -f "$profile"/etc/profile ]
    then
        GUIX_PROFILE="$profile"
        . "$GUIX_PROFILE"/etc/profile
        export MANPATH="$GUIX_PROFILE/share/man${MANPATH:+:}$MANPATH"
        export INFOPATH="$GUIX_PROFILE/share/info${INFOPATH:+:}$INFOPATH"
    fi
    unset profile
    unset name
done
```

These scripts both loop over my manifests or profiles directories,
running the upgrade or activate commands on each one. If you want to
exclude a profile from being upgraded with this script, you can just
take away its manifest's read permissons like so:

```
chmod -r $HOME/sys/guix/manifests/my-excluded-manifest.scm
```

Good luck,
  Gary

-- 
GPG Key ID: C4FBEDBD
Use `gpg --search-keys tracker@disroot.org' to find me
Protect yourself from surveillance: https://emailselfdefense.fsf.org
=======================================================================
()  ascii ribbon campaign - against html e-mail
/\  www.asciiribbon.org   - against proprietary attachments

Why is HTML email a security nightmare? See https://useplaintext.email/

Please avoid sending me MS-Office attachments.
See http://www.gnu.org/philosophy/no-word-attachments.html


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

end of thread, other threads:[~2023-04-24  5:10 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <mailman.81.1677776445.12246.help-guix@gnu.org>
2023-03-05  8:44 ` Help-Guix Digest, Vol 88, Issue 4 Gottfried
2023-03-05 10:07   ` Wojtek Kosior via
2023-03-05 13:27     ` Gottfried
2023-03-06  1:35   ` Gary Johnson
2023-03-07 16:15     ` Gottfried
2023-03-08  1:58       ` 宋文武
2023-03-20  7:04     ` Gottfried
2023-03-21 14:42       ` Gary Johnson
2023-04-07 13:02         ` Gottfried
2023-04-07 14:31           ` I am sorry " Gottfried
2023-04-15  2:08             ` Tracker

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).