PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Permata Ruby 'pg' menautkan ke salinan libpq.5.dylib yang salah (di OSX)

Penyebab masalah dan solusi mudah menjadi jelas ketika saya menjalankan bin/pg_config di baris perintah.

pg_config menghasilkan variabel yang digunakan untuk mengontrol kompilasi dan penautan. Yang menarik adalah LIBDIR dan LDFLAGS. LIBDIR menentukan lokasi untuk perpustakaan statis, sementara LDFLAGS menyediakan lokasi untuk mencari perpustakaan dinamis. Di sistem saya, LIBDIR disetel dengan benar ke /LibraryPostgreSQL/9.3/lib , tetapi LDFLAGS disetel sebagai berikut:

LDFLAGS = -L../../../src/common -L/usr/local/lib -L/opt/local/20140109/lib -Wl,-dead-strip-dylibs

Sejak libpq.5.dylib tidak ada di salah satu lokasi ini, permata gagal menemukannya, dan malah menemukan versi lama yang kebetulan dipasang di /usr/lib .

Salah satu cara untuk memperbaikinya adalah dengan menyuntikkan lokasi file yang benar ke LDFLAGS, mungkin dengan memodifikasi kode di extconf.rb yang menghasilkan file konfigurasi. Namun, perbaikan yang jauh lebih mudah dalam kasus ini adalah dengan menambahkan symlink di /usr/local/lib ke lokasi file yang benar:

/usr/local/lib> ln -s /Library/PostgreSQL/9.3/lib/libpq.5.dylib libpq.5.dylib

Jika Anda mengalami masalah serupa, periksa saja output pg_config , dan lihat apakah Anda dapat menempatkan symlink ke lokasi file yang benar di salah satu direktori yang telah ditentukan oleh LDFLAGS.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Perbaikan Partisi di PostgreSQL 11

  2. Memilih baris yang diurutkan oleh beberapa kolom dan berbeda di kolom lainnya

  3. Gambaran Umum Prosedur Tersimpan Baru di PostgreSQL 11

  4. Bidang gabungan CTE rekursif dengan orang tua dari titik sewenang-wenang

  5. Java SQL ERROR:Nama_Tabel Relasi tidak ada