Câu hỏi L ERI: không thể tải thư viện “/usr/lib64/pgsql/hstore.so”: /lib64/libc.so.6: phiên bản `GLIBC_2.14 'không tìm thấy


Tôi đang cố gắng kích hoạt hstore trên cơ sở dữ liệu PostgreSQL của tôi đang chạy trên AMI Linux của Amazon. Tôi đã nhảy qua hàng tấn rào cản và kết thúc với lỗi này mà tôi không thể vượt qua:

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

tôi chạy ldd --version để lấy phiên bản GLIBC của tôi và nó trả về ldd (GNU libc) 2.17.

Các giải pháp duy nhất mà tôi đã đề cập

  1. Đang chạy yum update, điều này không có ý nghĩa gì nhiều vì hệ thống của tôi dường như đang chạy một phiên bản mới hơn so với yêu cầu.

  2. Biên dịch lại chương trình dựa trên phiên bản glibc trên hệ thống của bạn, điều mà tôi không hiểu lắm. Tôi sẽ phải biên dịch lại chương trình nào? PostgreSQL?

Điều này đã khiến tôi phát điên trong nhiều ngày và tôi đã chạy vào một góc. Bất kỳ trợ giúp nào cũng được đánh giá rất cao!


1
2018-03-12 01:21


gốc


Vâng; Bạn nên biên dịch lại postgres - Ramhound
Còn có những giải pháp nào nữa ko? Đây là một máy db sản xuất khổng lồ cho một dịch vụ mà cần phải được lên 24/7 - D-Nice
Bạn đã thử tạo một ảnh chụp nhanh và thực hiện giải pháp đầu tiên, bởi vì nếu vấn đề dll của nó, bạn sẽ gặp phải thời gian chết. - Ramhound


Các câu trả lời:


Lỗi là trên hstore chia sẻ thư viện, do đó, nó có lẽ là người duy nhất cần biên dịch với phiên bản GLIBC của bạn. Phần chứa trong gói postgres của bạn rõ ràng được biên dịch với phiên bản 2.14, trong khi gói của bạn là 2.17.

Thông thường hstore nên được thỏa mãn với một phiên bản cấp cao hơn, nhưng việc kiểm tra nó rõ ràng là "bằng 2,14" thay vì "lớn hơn hoặc bằng 2,14."

Bài viết Tính năng nổi bật của PostgreSQL: hstore mô tả cách cài đặt hstore thư viện từ mã nguồn:

Sau khi tải xuống mã nguồn và cài đặt lõi, hãy thực hiện   các lệnh sau.

cd $PG_SOURCE_ROOT
cd contrib/hstore
make install

Tại thời điểm này tất cả các thư viện và tập tin liên quan đến hstore   được cài đặt trong $ INSTALL_FOLDER / share / extension.

$ ls $INSTALL_FOLDER/share/extension
hstore--1.0--1.1.sql  hstore--1.1.sql  hstore--unpackaged--1.0.sql  hstore.control

Sau đó kết nối với máy chủ Postgres của bạn và kết thúc cài đặt hstore   với lệnh CREATE EXTENSION.

postgres=# CREATE EXTENSION hstore;
CREATE EXTENSION
postgres=# \dx hstore
                         List of installed extensions
   Name  | Version | Schema |                   Description                    
--------+---------+--------+--------------------------------------------------
 hstore | 1.1     | public | data type for storing sets of (key, value) pairs
(1 row)

Với một máy khách psql, '\ dx' cho phép kiểm tra danh sách các phần mở rộng   đã được cài đặt trên máy chủ của bạn.


0
2018-03-15 19:31





Nhận một hstore.so mới hơn của bạn là cũ cho hệ thống bạn đang chạy. Hoặc cố gắng tìm một gói compat-glibc để dán keo.


-1
2018-03-12 18:36



Cảm ơn, điều này có vẻ đầy hứa hẹn. Tôi đã không thể tìm thấy bất kỳ bản sao độc lập nào của hstore.so trên web. Tôi nghi ngờ rằng tôi có thể đi về nó một cách sai lầm - làm thế nào bạn sẽ đề nghị cập nhật chỉ tập tin hstore.so? - D-Nice