all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* readline problem
@ 2022-01-15  8:13 jsmith via
  2022-01-17 11:57 ` Ricardo Wurmus
  0 siblings, 1 reply; 4+ messages in thread
From: jsmith via @ 2022-01-15  8:13 UTC (permalink / raw)
  To: help-guix

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 and if I guix package --list-installed it appears to be installed.
output:
glibc 2.33 out /gnu/store/mf8mfvw5gzq3dqblk98zqll3x7vx96c5-glibc-2.33
readline 8.1.1 out /gnu/store/3lr629jcjk0zds5nzaq9vplqgaggz0pg-readline-8.1.1

I did a guix pull, guix package -u, source profile so I am working with the latest.
Any suggestions?
Thanks
Jim

Sent with [ProtonMail](https://protonmail.com/) Secure Email.

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

* Re: readline problem
  2022-01-15  8:13 readline problem jsmith via
@ 2022-01-17 11:57 ` Ricardo Wurmus
  2022-01-18 11:20   ` Wiktor Żelazny
  0 siblings, 1 reply; 4+ messages in thread
From: Ricardo Wurmus @ 2022-01-17 11:57 UTC (permalink / raw)
  To: jsmith; +Cc: help-guix


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


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

* Re: readline problem
  2022-01-17 11:57 ` Ricardo Wurmus
@ 2022-01-18 11:20   ` Wiktor Żelazny
  2022-01-18 14:51     ` Ricardo Wurmus
  0 siblings, 1 reply; 4+ messages in thread
From: Wiktor Żelazny @ 2022-01-18 11:20 UTC (permalink / raw)
  To: Ricardo Wurmus; +Cc: jsmith, help-guix

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

On Mon, Jan 17, 2022 at 12:57:54PM +0100, Ricardo Wurmus wrote:
>
> jsmith via <help-guix@gnu.org> writes:
>
> > 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)"

Hey, this sounds just like the problem I reported earlier this month.

   /gnu/store/bb27inmp90vyx59q1453zl1rs9h73kjd-guile-wrapper/bin/guile: /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6: version `GLIBC_2.33' not found (required by /gnu/store/3lsrx30nl5cacva8a8rd2xy08xlszx14-libx11-1.7.2/lib/libX11.so.6)
   /gnu/store/bb27inmp90vyx59q1453zl1rs9h73kjd-guile-wrapper/bin/guile: /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6: version `GLIBC_2.33' not found (required by /gnu/store/2sgw9si0va897m6mvgwmv9ilx6szqxc8-libxau-1.0.9/lib/libXau.so.6)
   /gnu/store/bb27inmp90vyx59q1453zl1rs9h73kjd-guile-wrapper/bin/guile: /gnu/store/fa6wj5bxkj5ll1d7292a70knmyl7a0cr-glibc-2.31/lib/libc.so.6: version `GLIBC_2.33' not found (required by /gnu/store/7x63qm1byi8j72rd4nkv01nbpqvrr80s-libbsd-0.10.0/lib/libbsd.so.0)

> 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.

Is this possible at all? Aren’t builds atomic, and isn’t guix version
change considered an input change, so that builds by various guix
versions are prevented by design from being mixed while linking?

> Here an older version of the C library is loaded first because some
> package you have is linked with that older version.

Again, could it be a system-wide version: the system build with guix X,
guix upgraded to X+1, user package built with guix X+1, while the system
is still at guix X, so that the package links to system-wide libc build
with guix X?

> 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

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

My bug is produced when I use a manifest and an isolated environment. I
also discovered that I’m getting the same errors while loading profiles.
Rebuilding profiles (with a newer guix as they’re not time-machined with
some exceptions) fixes this.

WŻ

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 963 bytes --]

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

* Re: readline problem
  2022-01-18 11:20   ` Wiktor Żelazny
@ 2022-01-18 14:51     ` Ricardo Wurmus
  0 siblings, 0 replies; 4+ messages in thread
From: Ricardo Wurmus @ 2022-01-18 14:51 UTC (permalink / raw)
  To: Wiktor Żelazny; +Cc: jsmith, help-guix


Wiktor Żelazny <wz@freeshell.de> writes:

> [[PGP Signed Part:Undecided]]
> On Mon, Jan 17, 2022 at 12:57:54PM +0100, Ricardo Wurmus wrote:
>>
>> jsmith via <help-guix@gnu.org> writes:
>>
>> > 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)"
>
> Hey, this sounds just like the problem I reported earlier this month.

Can you please tell us the issue number?

>> 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.
>
> Is this possible at all? Aren’t builds atomic, and isn’t guix version
> change considered an input change, so that builds by various guix
> versions are prevented by design from being mixed while linking?

Builds are isolated, of course, but it’s common that people who don’t
use manifests end up building a profile that consists of a colorful
mosaic of packages from different versions of Guix.

  guix install foo
  guix pull
  guix install bar
  guix pull
  guix install baz

With enough time between the last action and “guix pull”, “foo”, “bar”,
and “baz” could all be linked with different libraries.  This is usually
not even a problem, unless they all have to be used in the same process,
e.g. if “bar” is a plugin to the “foo” programming language.

-- 
Ricardo


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

end of thread, other threads:[~2022-01-18 15:56 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-01-15  8:13 readline problem jsmith via
2022-01-17 11:57 ` Ricardo Wurmus
2022-01-18 11:20   ` Wiktor Żelazny
2022-01-18 14:51     ` Ricardo Wurmus

Code repositories for project(s) associated with this inbox:

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.