sql >> データベース >  >> RDS >> PostgreSQL

libpq.5.dylibの間違ったコピーにリンクしているRuby'pg'gem(OSX上)

    bin/pg_configを実行すると、問題の原因と簡単な解決策の両方が明らかになりました。 コマンドラインで。

    pg_config コンパイルとリンクを制御するために使用される変数を生成します。特に興味深いのは、LIBDIRとLDFLAGSです。 LIBDIRは静的ライブラリの場所を指定し、LDFLAGSは動的ライブラリを検索する場所を提供します。私のシステムでは、LIBDIRが/LibraryPostgreSQL/9.3/libに正しく設定されていました 、ただし、LDFLAGSは次のように設定されています:

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

    libpq.5.dylib以降 これらの場所のいずれにも存在しなかったため、gemはそれを見つけることができず、代わりに/usr/libにたまたまインストールされた古いバージョンを見つけました。 。

    これを修正する1つの方法は、おそらくextconf.rbのコードを変更することにより、正しいファイルの場所をLDFLAGSに挿入することです。 設定ファイルを生成します。ただし、この場合のはるかに簡単な修正は、/usr/local/libにシンボリックリンクを追加することです。 正しいファイルの場所へ:

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

    同様の問題が発生した場合は、pg_configの出力を調べてください。 、およびLDFLAGSによってすでに指定されているディレクトリの1つに正しいファイルの場所へのシンボリックリンクを配置できるかどうかを確認します。




    1. Oracleですべてのテーブルを一覧表示する方法

    2. 選択した結果をOracleで転置する

    3. SQL Serverで前月の最初と最後の日(タイムスタンプ付き)を取得する方法

    4. クエリストア:挿入に対するインデックスの影響を表示する