Le Mon, 27 Jul 2020 06:52:52 -0500,
firstname.lastname@example.org a écrit :
I would like to upgrade guile-json in my local store.
I start with
$guix package -u (didn't do anything)
If guile-json is not installed in your default profile, that's
expected. Otherwise, maybe it was your first guix pull? Make sure you
have ~/.config/guix/current/bin *first* in your $PATH and run "hash
guix" to invalidate your shell's cache for the guix binary location.
Make sure "type guix" returns ~/.config/guix/current/bin/guix.
Modifying the template at
I create the file guile-json.scm:
Looking at the log file, the final lines are:
checking for pkg-config... no
configure: checking for guile 3.0
configure: checking for guile 2.2
configure: checking for guile 2.0
No Guile development packages were found.
Please verify that you have Guile installed. If you installed Guile
from a binary distribution, please verify that you have also installed
the development packages. If you installed it yourself, you might
need to adjust your PKG_CONFIG_PATH; see the pkg-config man page for
I am on Debian 9 working with guile v 2.2.7, dev files are installed:
apt-get install guile-2.0-dev
Reading package lists... Done
Building dependency tree
Reading state information... Done
guile-2.0-dev is already the newest version (2.0.13+1-4).
Guix does not interact with your system, and ensures that it does not
use anything from it when building. Otherwise, the resulting package's
content might depend on the content of the system that built it, and we
wouldn't be able to ensure reproducibility across all the linux
Instead, Guix builds packages in its own container system, completely
isolated from the system, your environment variables, etc... In order
to ensure guile is present in this container, you must declare it as a
dependency (we call that an "input"). You'll also need pkg-config, so
the package definition would look like this:
With the necessary imports at the beginning of the file. You can have a
look at the actual definition we use in Guix with:
guix edit guile-json
Another possibility, as guile-json is available in Guix (we have 1.2.0,
3.5.0 and 4.0.1 currently) is to use the available recipe for guile-json
but with a different source, like this:
guix install email@example.com --with-source=https://...
Not tested and if something changed in the build instructions, it might
break, but it's certainly easier than creating your own definition from
scratch. I specify the version since it's the closest to the version
you want (in fact the recipe has not changed for guile-json 4, which
would be the one used if you don't specify a version).
Note that you'll need guile itself in your profile too in order for
guile-json to be useful.
In my .bashrc I set the variable such that at the terminal prompt:
Where did I go wrong?
As said above, guix just doesn't care about your environment :)