Tihiroの頭を休めるIT教室

少しだけ頭使って後は根性

LD_LIBRARY_PATHを設定しているのに、プロセスで認識されない。

概要

MacではSIPとかいうセキュリティ機能で環境変数LD_LIBRARY_PATHが無効化?されている模様。

環境は

です。

現象

環境変数LD_LIBRARY_PATHに設定した値が、Mac上で実行したプロセスで認識されない。

例えば、PostgreSQLoracle_fdwを利用しようとする際、OCIのライブラリが存在するディレクトリをLD_LIBRARY_PATHに設定して起動する必要があります。が、しかし。MacSIPが有効となっていると、LD_LIBRARY_PATHがPostgreSQLから認識されないため、ライブラリの読み込みエラーが発生します。

ちなみにプロセスが認識している環境変数

ps プロセスID -E

で確認できます。

対策

  1. SIPを無効化する。
  2. 諦める。現実は非情である。

まとめ

SIPなんてものを知らなかったので3時間ほど無駄にしました。非情に悲しい。