help-guix
[Top][All Lists]
Advanced

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

Re: Help-Guix Digest, Vol 88, Issue 4


From: Gottfried
Subject: Re: Help-Guix Digest, Vol 88, Issue 4
Date: Tue, 7 Mar 2023 16:15:03 +0000

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: OpenPGP_0x61FAF349C9FB7F94.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


reply via email to

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