From: zimoun <zimon.toutoune@gmail.com>
To: Bruno Haible <bruno@clisp.org>
Cc: 41038@debbugs.gnu.org
Subject: bug#41038: gcc creates binaries that don't find their shared libraries
Date: Mon, 4 May 2020 10:50:06 +0200 [thread overview]
Message-ID: <CAJ3okZ2byK8EXghs453Zy=+gLYemLAgcM+DGG14MgQ3sSOWtkg@mail.gmail.com> (raw)
In-Reply-To: <2050118.Ql0zV9tn6O@omega>
Dear Bruno,
Thank you for your feedback.
On Mon, 4 May 2020 at 01:10, Bruno Haible <bruno@clisp.org> wrote:
> > Another way to do software development is with ‘guix environment’:
> >
> > https://guix.gnu.org/manual/en/html_node/Development.html
> >
> > For example, if you want to hack on Gettext, run:
> >
> > guix environment gettext
> >
> > That spawns a shell containing all the development tools and environment
> > variables to hack on gettext.
>
> Sounds very interesting. But for the moment, I use guix only as a
> test platform.
Note that Guix (as package manager) provides 3 nice features for
development as a test platform: manifest, profile and channel.
1. Manifests allow you to specify the packages you want to install.
For example, this command installs make, gcc-toolchain and gdb in the
default profile (~/.guix-profile).
guix package -m /path/to/my/manifest.scm
--8<---------------cut here---------------start------------->8---
(specifications->manifest
'("make" "gcc-toolchain" "gdb"))
--8<---------------cut here---------------end--------------->8---
And note that "version" or "outputs" (debug) can be specified. Well,
manifest can be used with almost all the Guix commands. And manifests
compose: "-m m1.scm -m m2.scm".
https://guix.gnu.org/manual/devel/en/guix.html#profile_002dmanifest
2. Profiles allow different versions of the same tool without any
conflict. For example, let consider you would like to develop using
GCC@9 for one project and GCC@8 for another; then:
guix install gcc-toolchain@9 -p /path/to/my/gcc-9
guix install gcc-toolchain@8 -p /path/to/my/gcc-8
Then, for example let prepend the environment variables defined by the
packages gcc-toolchain@9.
eval `guix package --search-paths=prefix -p /path/to/gcc-9`
which gcc
Note that profiles compose too (see --allow-collisions; warning).
Moreover, the regular packages used to develop need time to time to be
temporary extended; without being really "installed":
guix environment -m /path/to/my/manifest-dev-9.scm --ad-hoc libfoo
And options like '--pure' or '--container' are very useful for
testing. And when finished, 'libfoo' becomes a dead link in the store
(guix gc --list-dead) and so would be garbage collected if needed; the
command "guix environment" is very handy when testing and developing,
iMHO.
3. Channels allow to track the exact version of the tools. For
example, the version used:
guix describe -f channels > /path/to/my/channel.scm
Then weeks (or month) or on another machine, it is possible to
re-install the same packages, for example:
guix pull -C /path/to/my/channel.scm
guix package -m /path/to/my/manifest.scm -p /path/to/my/olds
Note that it is not necessary required to pull back at one specific
Guix version for re-installing packages of this very specific Guix
version. It is possible to temporarily re-state another Guix version
without modifying the current one (see Inferior):
guix time-machine -C /path/to/my/channel.scm \
-- package -m /path/to/my/manifest.scm -p /path/to/my/olds
This is equivalent to the 2 commands above but without "updating" the
current Guix.
I do not know if it is useful. Or if it helps to describe Guix as a
test platform. The manual is hairy -- from my point of view -- and
because Guix re-frames good ol' concepts, it is not easy to find the
way.
Best regards,
simon
next prev parent reply other threads:[~2020-05-04 8:51 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-02 23:55 bug#41038: gcc creates binaries that don't find their shared libraries Bruno Haible
2020-05-03 21:07 ` Ludovic Courtès
2020-05-03 23:09 ` Bruno Haible
2020-05-04 8:50 ` zimoun [this message]
2020-05-04 9:06 ` zimoun
2020-05-04 9:30 ` Ludovic Courtès
2020-05-04 9:59 ` zimoun
2020-05-04 19:52 ` Ludovic Courtès
2020-05-06 17:42 ` bug#41038: [PATCH] doc: Reword "The GCC toolchain" zimoun
2020-05-15 16:59 ` zimoun
2020-05-15 19:42 ` Nicolas Goaziou
2020-05-16 14:57 ` zimoun
2020-05-16 15:19 ` Ludovic Courtès
2020-05-03 22:12 ` bug#41038: gcc creates binaries that don't find their shared libraries Danny Milosavljevic
2020-05-05 9:30 ` Ludovic Courtès
2020-05-05 11:17 ` Bruno Haible
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAJ3okZ2byK8EXghs453Zy=+gLYemLAgcM+DGG14MgQ3sSOWtkg@mail.gmail.com' \
--to=zimon.toutoune@gmail.com \
--cc=41038@debbugs.gnu.org \
--cc=bruno@clisp.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
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).