help-guix
[Top][All Lists]
Advanced

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

Re: readline problem


From: Ricardo Wurmus
Subject: Re: readline problem
Date: Mon, 17 Jan 2022 12:57:54 +0100
User-agent: mu4e 1.6.10; emacs 27.2

jsmith via <help-guix@gnu.org> writes:

> Hi,
> For some code that was previously working I receive the error:
>
> ERROR: In procedure dlopen:
> In procedure dlopen: file
> "/gnu/store/35apwp40n8rnlqyxf7hagwr250nw754w-guile-dbi-2.1.8/lib/libguile-dbi.so",
> message
> "/gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6:
> version `GLIBC_2.33' not found (required by
> /gnu/store/z0kk97dcbcj6s8crm3qiwsyz4ry0zqxw-guile-2.2.7/lib/libguile-2.2.so.1)"
>
> I installed glibc_2.33

You should not do this.  It has no effect as Guix will not look around
for what version of glibc (or any other library for that matter) you
might have installed in some profile.  When building software, the
absolute file names of libraries are embedded in the binary — including
the GNU C library.

The problem you describe looks like you have a mixture of packages that
have been linked with different versions of the GNU C library, which
indicates that you used different versions of Guix to build/install
them.

Here an older version of the C library is loaded first because some
package you have is linked with that older version.  Then at a later
point a package demands to use features that only a newer version of the
C library provides, but the older version that has been loaded cannot
satisfy the request.  This problem is not specific to Guix and is shared
by all systems that use dynamic linking.  There is no way to load
different variants of the same library in the same process.

The solution is to make sure that all software that has to work together
uses the same variants of any libraries.  Guix by default only keeps one
variant per library in its set of package definitions, so by using the
same version of Guix for all packages that are used simultaneously will
bypass the problem.

There are different ways out of this problem:

a) use a manifest to ensure that all packages in your profile are
installed with the exact same version of Guix and thus use the same
variants for all libraries

b) upgrade all your packages with the same version of Guix.

c) use a temporary isolated environment, e.g. with “guix shell -C”

Hope this helps!

-- 
Ricardo



reply via email to

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