Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ec2 server postgres error "version `GLIBC_2.14' not found"

While trying to \i create_db.sql psql throws the error:

psql:create_db.sql:123: ERROR:  could not load library 
"/usr/lib64/pgsql/plpgsql.so": /lib64/libc.so.6: version 
`GLIBC_2.14' not found (required by /usr/lib64/pgsql/plpgsql.so)

Line 123 of create_db.sql is the last line of the file, at the end of a a function definition:

$$ language plpgsql;

Versions of stuff:

$ psql --version
psql (PostgreSQL) 9.2.7

$ /lib64/libc.so.6 --version
GNU C Library (GNU libc) stable release version 2.17, by Roland McGrath et al.
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.8.2 20131212 (Red Hat 4.8.2-7).
Compiled on a Linux 3.2.5 system on 2014-06-09.
Available extensions:
    The C stubs add-on version 2.1.2.
    crypt add-on version 2.1 by Michael Glad and others
    GNU Libidn by Simon Josefsson
    Native POSIX Threads Library by Ulrich Drepper et al
    BIND-8.2.3-T5B
    RT using linux kernel aio
libc ABIs: UNIQUE IFUNC
For bug reporting instructions, please see:
<http://www.gnu.org/software/libc/bugs.html>.

Do I need to have glibc exactly version 2.14 or should 2.17 work too?

like image 689
Lauren Avatar asked Aug 14 '14 18:08

Lauren


1 Answers

Your PostgreSQL install, or your OS install in general, is at least somewhat broken.

At a guess, you must've force-installed some RPM you found somewhere random instead of configuring repositories and using yum install to install PostgreSQL.

You don't need an exactly matching glibc version. It just has to declare that it's compatible with the required version by exposing a suitable GLIBC_ symbol .

e.g. on my Fedora 20, with glibc 2.18, I'd have no problems running programs compiled for glibc 2.14 because:

$ /lib64/libc.so.6 --version
GNU C Library (GNU libc) stable release version 2.18, by Roland McGrath et al.

$ nm /lib64/libc.so.6| grep GLIBC_2.14
0000000000000000 A GLIBC_2.14

my glibc declares that it's compatible with 2.14.

like image 109
Craig Ringer Avatar answered Nov 05 '22 09:11

Craig Ringer