sql >> Databáze >  >> RDS >> PostgreSQL

Ruby 'pg' drahokam odkazující na špatnou kopii libpq.5.dylib (na OSX)

Jak příčina problému, tak snadné řešení se ukázaly, když jsem spustil bin/pg_config na příkazovém řádku.

pg_config generuje proměnné, které se používají k řízení kompilace a propojování. Zvláště zajímavé jsou LIBDIR a LDFLAGS. LIBDIR určuje umístění pro statické knihovny, zatímco LDFLAGS poskytuje umístění pro vyhledávání dynamických knihoven. V mém systému byl LIBDIR správně nastaven na /LibraryPostgreSQL/9.3/lib , ale LDFLAGS byl nastaven následovně:

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

Od libpq.5.dylib nebyl přítomen v žádném z těchto umístění, drahokam jej nenašel a místo toho našel starší verzi, která byla náhodou nainstalována na /usr/lib .

Jedním ze způsobů, jak to vyřešit, by bylo vložit správné umístění souboru do LDFLAGS, možná úpravou kódu v extconf.rb který vygeneruje konfigurační soubor. Mnohem jednodušší oprava v tomto případě je pouze přidat symbolický odkaz do /usr/local/lib do správného umístění souboru:

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

Pokud narazíte na podobný problém, prozkoumejte výstup pg_config a zjistěte, zda můžete umístit symbolický odkaz na správné umístění souboru do jednoho z adresářů, který je již specifikován LDFLAGS.




  1. Je ODP.NET vyžadován pro klienta Oracle 11g?

  2. Online upgrade schématu v MySQL Galera Cluster pomocí metody RSU

  3. Jak mohu dešifrovat hash hesla v PHP?

  4. Získejte DÉLKU DLOUHÉHO RAW