PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

LỖI:không thể tải thư viện “/opt/PostgreSQL/9.0/lib/postgresql/plperl.so”:libperl.so:

Đã xảy ra lỗi ở trên khi tôi đang cố gắng tạo plperlu ngôn ngữ. Nó chỉ ra rằng thiếu thư viện libperl.so. Kiểm tra các bước được thực hiện để khắc phục sự cố này và tạo thành công ngôn ngữ plperlu trong PostgreSQL.

Phương pháp 1 (Tìm libperl.so và tạo liên kết mềm đến vị trí đó)

postgres=# create LANGUAGE plperlu;
ERROR: could not load library "/opt/PostgreSQL/9.0/lib/postgresql/plperl.so": libperl.so: cannot open shared object file: No such file or directory
postgres=# q

Bây giờ, hãy tìm kiếm tệp libperl.so trên hộp của bạn và thêm vị trí đó vào LD_LIBRARY PATH của bạn. Đừng quên chuyển người dùng sang postgres.

[root@localhost /]# find -name libperl.so
./usr/lib/perl5/5.10.0/i386-linux-thread-multi/CORE/libperl.so
./usr/lib/perl5/CORE/libperl.so
./usr/lib/perl5/5.10.0/i386-linux-thread-multi/CORE

[root@localhost /]# su - postgres

Đặt LD_LIBRARY_PATH

-bash-4.1$ export LD_LIBRARY_PATH=/usr/lib/perl5/5.10.0/i386-linux-thread-multi/CORE:$LD_LIBRARY_PATH

Khởi động lại cụm để thực hiện các thay đổi.

-bash-4.1$ pg_ctl restart
waiting for server to shut down....... done
server stopped
server starting

Bây giờ bạn đã sẵn sàng để tạo ngôn ngữ.

-bash-4.1$ psql
psql (9.0.1)
Type "help" for help.

postgres=# create LANGUAGE plperlu;
CREATE LANGUAGE

Phương pháp 2 (Bằng cách cài đặt ActivePerl mới nhất)

Bước 1:
Sau khi cài đặt ActivePerl, hãy đặt LD_LIBRARY_PATH.

postgres@localhost:/opt/ActivePerl-5.12/lib/CORE> export LD_LIBRARY_PATH=/opt/ActivePerl-5.12/lib/CORE:/opt/PostgreSQL/9.0/lib/postgresql

Bước 2:

postgres@localhost:/opt/PostgreSQL/9.0/lib/postgresql> ldd plperl.so 
linux-vdso.so.1 => (0x00007fff8cf79000)
libperl.so => /opt/ActivePerl-5.12/lib/CORE/libperl.so (0x00007fbd3d654000)
libnsl.so.1 => /lib64/libnsl.so.1 (0x00007fbd3d40a000)
libdl.so.2 => /lib64/libdl.so.2 (0x00007fbd3d206000)
libm.so.6 => /lib64/libm.so.6 (0x00007fbd3cfb0000)
libcrypt.so.1 => /lib64/libcrypt.so.1 (0x00007fbd3cd74000)
libutil.so.1 => /lib64/libutil.so.1 (0x00007fbd3cb71000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x00007fbd3c954000)
libc.so.6 => /lib64/libc.so.6 (0x00007fbd3c5f5000)
/lib64/ld-linux-x86-64.so.2 (0x00007fbd3dad8000)

Bước 3:

postgres@localhost:/opt/PostgreSQL/9.0/lib/postgresql> pg_ctl restart
postgres@localhost:/opt/PostgreSQL/9.0/lib/postgresql> psql
psql (9.0.2)
Type "help" for help.

postgres=# create language plperlu;
CREATE LANGUAGE

Đăng nhận xét của bạn.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trả lại Dấu thời gian Unix trong PostgreSQL

  2. Hiểu các ràng buộc kiểm tra trong PostgreSQL

  3. Thực hiện WHERE IN trên nhiều cột trong Postgresql

  4. SQL Điền bảng với dữ liệu ngẫu nhiên

  5. Rails 3, ActiveRecord, PostgreSQL - Lệnh .uniq không hoạt động?